背景技術(shù):
在視頻編碼中,量化是將視頻信號的采樣(通常而言,經(jīng)變換的殘差采樣)從較細的粒度范圍上的表示轉(zhuǎn)換成較粗粒度范圍上的表示的過程。在許多情況下,可以將量化認為是從有效地連續(xù)可變范圍上的值轉(zhuǎn)換成大體上離散的范圍上的值。例如,如果輸入信號中的經(jīng)變換的殘差yuv或rgb采樣每個是由從0到255(8比特)范圍上的值表示的,則量化器可以將這些值轉(zhuǎn)換成是由從0到15(4比特)范圍上的值表示的。經(jīng)量化的范圍上的最小和最大的可能值0和15仍然表示與在未量化的輸入范圍上的最小和最大的可能值相同(或大致相同)的最小和最大的采樣幅值,但是現(xiàn)在其間的粒度等級更少。即,減小了步長。因此,從視頻的每幀中丟失了一些細節(jié),但是由于產(chǎn)生了較少的每幀比特,所以信號更小。量化有時是根據(jù)量化參數(shù)(qp)來表達的,其中較低的qp表示較細的粒度而較高的qp表示較粗的粒度。
應(yīng)當(dāng)注意的是:量化具體指的是將表示每個給定采樣的值從較細粒度范圍上的表示轉(zhuǎn)換成較粗粒度范圍上的表示的過程。通常而言,這指的是在轉(zhuǎn)換域中量化殘差信號的每個系數(shù)的顏色通道中的一個或多個顏色通道,例如,每個rgb(紅、綠、藍)系數(shù)或更常見的yuv(分別是亮度和兩個色度通道)。例如,在從0到255范圍上的y值輸入可以被量化為從0到15的范圍,并且類似地,對于u和v,或在可替代的顏色空間中的rgb(盡管通常而言,應(yīng)用至每個顏色通道的量化不一定相同)。每單位面積的采樣數(shù)量被稱為分辨率,并且是分別的概念。術(shù)語量化不用于指代分辨率的改變,而是指代每采樣粒度的改變。
視頻編碼在考慮到經(jīng)編碼的信號的大小的多個應(yīng)用中被使用,例如,當(dāng)通過諸如互聯(lián)網(wǎng)之類的基于分組的網(wǎng)絡(luò)發(fā)送諸如現(xiàn)場視頻通話的流之類的實時視頻流時。使用較細粒度的量化產(chǎn)生每幀中的較少的失真(較少的信息被丟掉),但導(dǎo)致在經(jīng)編碼的信號中的較高的比特率。相反地,使用較粗粒度的量化產(chǎn)生較低的比特率,但是引入了更多的每幀失真。
一些編碼解碼器允許在幀區(qū)域內(nèi)定義一個或多個子區(qū)域,在所述子區(qū)域中,可以將量化參數(shù)設(shè)置成比幀的剩余區(qū)域更低的值(更細的量化粒度)。這樣的子區(qū)域常常被稱為“興趣區(qū)域”(roi),而在roi之外的剩余區(qū)域常常被稱為“背景”。該技術(shù)允許在每幀的感覺上更重要的和/或預(yù)期要發(fā)生更多活動的區(qū)域上花費更多的比特,而在幀的較不重要的部分上浪費較少的比特,因此在由較粗粒度所節(jié)省的比特率和由較細量化所獲得的質(zhì)量之間提供了更加智能的平衡。例如,在視頻通話中,視頻通常采用“頭部特寫”拍攝的形式,在靜態(tài)的背景下包括用戶的頭部、面部、和肩膀。因此,在要將編碼視頻作為諸如voip通話之類的視頻通話的一部分來發(fā)送的情況下,roi可以與用戶的頭部或頭部和肩膀周圍的區(qū)域相對應(yīng)。
在一些情況下,僅僅將roi定義為幀區(qū)域內(nèi)的固定的形狀、大小、和位置,例如,假設(shè)主要活動(例如,視頻通話中的面部)傾向于大致發(fā)生在幀的中央矩形內(nèi)。在其他情況下,用戶可以手動選擇roi。近來,已經(jīng)提出了基于應(yīng)用于目標視頻的面部識別算法而自動地將roi定義為出現(xiàn)在視頻中的人的面部周圍的區(qū)域的技術(shù)。
技術(shù)實現(xiàn)要素:
然而,現(xiàn)有技術(shù)的范圍是受限制的。理想的是找到用于自動地定義其中要應(yīng)用較細量化的一個或多個興趣區(qū)域的可替代的技術(shù),所述技術(shù)能夠?qū)⒃诟杏X上可能相關(guān)的其他類型的活動考慮在內(nèi),而不僅僅是“頭部特寫”,由此跨較寬范圍的場景在質(zhì)量與比特率之間取得的更合適的平衡。
近來,骨骼追蹤系統(tǒng)已經(jīng)變得可用,其使用骨骼追蹤算法和一個或多個骨骼追蹤傳感器(例如,紅外深度傳感器)來追蹤用戶的一個或多個骨骼特征。通常而言,這些是用于姿勢控制的,例如,用于控制計算機游戲。然而,在本文中應(yīng)當(dāng)理解的是,這樣的系統(tǒng)可以具有為了量化的目的而自動地定義視頻內(nèi)的一個或多個興趣區(qū)域的應(yīng)用。
根據(jù)在本文中所公開的一個方面,提供了一種設(shè)備,其包括:用于對表示由相機所捕獲的場景的視頻圖像的視頻信號進行編碼的編碼器,以及用于控制所述編碼器的控制器。所述編碼器包括用于作為所述編碼的一部分而執(zhí)行對所述視頻信號的量化的量化器。所述控制器被配置為從骨骼追蹤算法接收骨骼追蹤信息,所述骨骼追蹤信息與在所述場景中出現(xiàn)的用戶的一個或多個骨骼特征相關(guān)?;诖?,所述控制器在所述視頻圖像中定義與所述用戶的一個或多個身體區(qū)域相對應(yīng)的一個或多個興趣區(qū)域,并且自適應(yīng)量化以在所述一個或多個興趣區(qū)域內(nèi)使用比在所述一個或多個興趣區(qū)域之外更精細的量化粒度。
所述興趣區(qū)域可以在空間上彼此不包含或者可以重疊。例如,被定義為討論中的方案的一部分的身體區(qū)域中的每個身體區(qū)域:(a)用戶的整個身體;(b)用戶的頭部、軀干、和手臂;(c)用戶的頭部、胸部、和手臂;(d)用戶的頭部和肩膀;(e)用戶的頭部;(f)用戶的軀干;(g)用戶的胸部;(h)用戶的腹部;(i)用戶的手臂和手;(j)用戶的肩膀;或(k)用戶的手。
在多個不同的興趣區(qū)域的情況下,較細的粒度量化可以同時在興趣區(qū)域中的一些或全部興趣區(qū)域中應(yīng)用,和/或可以在某些時刻在興趣區(qū)域中的一些或全部興趣區(qū)域中應(yīng)用(包括在不同的時刻利用較細的粒度對興趣區(qū)域中的不同的興趣區(qū)域進行量化的可能性)。選擇興趣區(qū)域中的哪個興趣區(qū)域以進行較細的量化可以是基于比特率約束而動態(tài)地自適應(yīng)的,例如,所述比特率約束是由經(jīng)編碼的視頻要在其上傳輸?shù)男诺赖漠?dāng)前帶寬所限制的。在實施例中,給身體區(qū)域分配了優(yōu)先級順序,且選擇是根據(jù)不同的興趣區(qū)域與之對應(yīng)的身體部位的優(yōu)先級順序來執(zhí)行的。例如,當(dāng)可用帶寬較高時,則可以以較細的粒度來量化與(a)所述用戶的整個身體相對應(yīng)的roi;而當(dāng)可用帶寬較低時,則所述控制器可以選擇將在與(b)用戶的頭部、軀干、和手臂,或(c)用戶的頭部、軀干、和手臂,或(d)用戶的頭部和肩膀,或甚至僅(e)用戶的頭部相對應(yīng)的roi中應(yīng)用較細的粒度。
在可替代的或額外的實施例中,所述控制器可以被配置為自適應(yīng)所述量化以在所述興趣區(qū)域中的不同的興趣區(qū)域內(nèi)使用不同等級的量化粒度,其每個都比在所述興趣區(qū)域之外的更細??梢愿鶕?jù)所述不同的興趣區(qū)域與之對應(yīng)的所述身體部位的優(yōu)先級的順序來設(shè)置不同的等級。例如,可以利用第一、最高的量化粒度來對頭部進行編碼;而可以利用一個或多個第二、稍微較粗的量化粒度等級來對手、手臂、肩膀、胸部、和/或軀干進行編碼;并且可以利用比第二個更粗但是仍然比roi之外的更細的第三等級的量化粒度來對身體的剩余部分進行編碼。
提供了該發(fā)明內(nèi)容以用簡化的形式引入在以下的具體實施方式中進一步描述的概念的選擇。本發(fā)明內(nèi)容并不旨在排他性地標識所請求保護的主題的關(guān)鍵特征或本質(zhì)特征,也并不旨在幫助確定所請求保護的主題的范圍。所要求保護的主題不限于解決了在背景技術(shù)部分中所述的缺點中的任何一個或全部缺點的實現(xiàn)。
附圖說明
為了幫助理解本公開并示出可以如何實施實施例,將作為示例而對附圖進行參考,其中:
圖1是通信系統(tǒng)的示意性框圖,
圖2是編碼器的示意性框圖,
圖3是解碼器的示意性框圖,
圖4是不同的量化參數(shù)值的示意圖,
圖5a示意性表示了在所捕獲的視頻圖像中定義多個roi,
圖5b是在所捕獲的視頻圖像中的roi的另一示意性表示,
圖5c是在所捕獲的視頻圖像中的roi的另一示意性表示,
圖5d是在所捕獲的視頻圖像中的roi的另一示意性表示,
圖6是用戶設(shè)備的示意性框圖,
圖7是用戶與用戶設(shè)備進行交互的示意圖,
圖8a是對輻射圖案的示意圖,
圖8b是被輻射圖案輻射的用戶的示意性前視圖,以及
圖9是所檢測的用戶的骨骼點的示意圖。
具體實施方式
圖1示出了通信系統(tǒng)114,其包括網(wǎng)絡(luò)101、以第一用戶終端102為形式的第一設(shè)備、以及以第二用戶終端108為形式的第二設(shè)備。在實施例中,第一用戶終端102和第二用戶終端108每個可以采用智能電話、平板計算機、膝上型計算機或臺式計算機、或者連接至電視屏幕的游戲操縱桿或機頂盒的形式。網(wǎng)絡(luò)101例如可以包括諸如互聯(lián)網(wǎng)之類的廣域互聯(lián)網(wǎng)絡(luò)、和/或諸如公司或大學(xué)之類的組織內(nèi)的廣域內(nèi)聯(lián)網(wǎng)、和/或諸如移動蜂窩網(wǎng)絡(luò)之類的任何其他類型的網(wǎng)絡(luò)。網(wǎng)絡(luò)101可以包括基于分組的網(wǎng)絡(luò),例如互聯(lián)網(wǎng)協(xié)議(ip)網(wǎng)絡(luò)。
第一用戶終端102被設(shè)置為捕獲場景113的現(xiàn)場視頻圖像以實時地對視頻進行編碼,并且經(jīng)由通過網(wǎng)絡(luò)101所建立的連接而將經(jīng)編碼的視頻實時地傳輸至第二用戶終端108。場景113至少有時包括,在場景113中出現(xiàn)的(人)用戶100(這在實施例中意味著,出現(xiàn)在場景113中的用戶100的至少一部分)。例如,場景113可以包括待編碼并且作為現(xiàn)場視頻通話或視頻會議(在多個目標用戶終端的情況下)的一部分而傳輸至第二用戶終端108的“頭部特寫”(正面的頭部和肩膀)。在這里,通過“實時”指的是,當(dāng)被捕獲的事件仍然在進行中時發(fā)生編碼和傳輸,以使得視頻的較早的部分被傳輸同時較遲的部分仍然在被編碼,并且同時,待編碼和傳輸?shù)母t的部分仍然在場景中以連續(xù)的流進行。因此應(yīng)當(dāng)注意的是,“實時”不排除小的延遲。
第一(進行發(fā)送的)用戶終端102包括相機103、可操作地耦合至相機103的編碼器104、以及用于連接至網(wǎng)絡(luò)101的網(wǎng)絡(luò)接口107,網(wǎng)絡(luò)接口107包括可操作地耦合至編碼器104的至少一個發(fā)射機。編碼器104被設(shè)置為從相機103接收輸入視頻信號,其包括表示如由相機103所捕獲的場景的視頻圖像的采樣。編碼器104被配置為對該信號進行編碼以便將其壓縮以供傳輸,如稍后將更加詳細地討論的。發(fā)射機107被設(shè)置為從編碼器104接收經(jīng)編碼的視頻,并且經(jīng)由通過網(wǎng)絡(luò)101所建立的信道將其傳輸至第二終端102。在實施例中,該傳輸包括經(jīng)編碼的視頻的實時流式傳輸,例如作為現(xiàn)場視頻通話的正在進行的部分。
根據(jù)本公開的實施例,用戶終端102還包括可操作地耦合至編碼器104的控制器112,并且被配置為由此在所捕獲的視頻的區(qū)域內(nèi)設(shè)置一個或多個興趣區(qū)域(roi)并控制在roi內(nèi)部和外部的量化參數(shù)(qp)兩者。特別地,控制器112能夠控制編碼器104以在一個或多個roi內(nèi)使用與在背景中不同的qp。
此外,用戶終端102包括一個或多個專用骨骼追蹤傳感器105,以及可操作地耦合至骨骼追蹤傳感器的骨骼追蹤算法106。例如,一個或多個骨骼追蹤傳感器105可以包括如稍后關(guān)于圖7-9所討論的諸如紅外(ir)深度傳感器之類的深度傳感器,和/或另一種形式的專用骨骼追蹤相機(與用于捕獲所編碼的視頻的相機103分離的相機),例如,其可以基于捕獲可見光或諸如ir之類的非可見光來工作,并且其可以是諸如立體相機或全深度感知(測距)相機之類的2d相機或3d相機。
編碼器104、控制器112、和骨骼追蹤算法106中的每個都可以以軟件代碼為形式,所述軟件代碼在用戶終端102的一個或多個存儲介質(zhì)(例如,諸如硬盤之類的磁存儲介質(zhì)或者諸如eeprom或“閃速”存儲器之類的電子介質(zhì))上實施,并且被設(shè)置為用于在用戶終端102的一個或多個處理器上執(zhí)行??商娲?,不排除這些組件104、112、106中的一個或多個組件可以以專用硬件、或軟件與專用硬件的組合來實現(xiàn)。還應(yīng)當(dāng)注意的是,盡管已經(jīng)將其描述為用戶終端102的一部分,但是在相機103的實施例中,骨骼追蹤傳感器105和/或骨骼追蹤算法106可以是在經(jīng)由有線或無線連接與用戶終端103進行通信的一個或多個分別的外圍設(shè)備中實現(xiàn)的。
骨骼追蹤算法106被配置為使用從骨骼追蹤傳感器105所接收的傳感輸入來生成追蹤用戶100的一個或多個骨骼特征的骨骼追蹤信息。例如,骨骼追蹤信息可以追蹤用戶100的一個或多個關(guān)節(jié)的位置,例如用戶的肩膀、手肘、手腕、頸部、髖關(guān)節(jié)、膝蓋、和/或腳踝中的一個或多個;和/或可以追蹤由人類身體的一個或多個骨骼形成的線或向量,例如由用戶的前臂、上臂、頸部、大腿、小腿、頭部到頸部、頸部到腰部(胸部)、和/或腰部到骨盆(腹部)中一個或多個所形成的向量。在一些潛在的實施例中,骨骼追蹤算法106可以可選地被配置為基于應(yīng)用至來自與用于捕獲正被編碼的圖像相同的相機103的、正被編碼的同一視頻圖像的圖像識別來增加對該骨骼追蹤信息的確定??商娲?,骨骼追蹤僅僅基于來自骨骼追蹤傳感器105的輸入。無論哪種方式,骨骼追蹤都是至少部分地基于分別的骨骼追蹤傳感器105的。
在現(xiàn)有技術(shù)中,骨骼追蹤算法本身是可用的。例如,xboxone軟件開發(fā)工具箱(sdk)包括骨骼追蹤算法,其中,應(yīng)用開發(fā)者可以訪問基于來自kinect外圍設(shè)備的傳感輸入的接收骨骼追蹤信息。在實施例中,用戶終端102是xboxone游戲操縱桿,骨骼追蹤傳感器105是在kinect傳感器外圍設(shè)備中實現(xiàn)的傳感器,并且骨骼追蹤算法是xboxonesdk的骨骼追蹤算法。然而這僅僅是示例,并且其他骨骼追蹤算法和/或傳感器也是可能的。
控制器112被配置為從骨骼追蹤算法106接收骨骼追蹤信息,并且由此識別在所捕獲的視頻圖像內(nèi)的用戶的一個或多個對應(yīng)的身體區(qū)域,與其他的區(qū)域相比,這些區(qū)域具有更多感知重要性,并且因此其保證了將更多的比特花費在編碼上。從而,控制器112在所捕獲的視頻圖像內(nèi)定義了覆蓋(或大約覆蓋)這些身體區(qū)域的一個或多個對應(yīng)的興趣區(qū)域(roi)。接著,控制器112自適應(yīng)正由編碼器104執(zhí)行的編碼的量化參數(shù)(qp)以使得在roi內(nèi)應(yīng)用比在roi外更細的量化。稍后將更加詳細地對其進行討論。
在實施例中,出于接收顯式的基于姿勢的用戶輸入的目的,已經(jīng)將骨骼追蹤傳感器105和算法106提供為“自然用戶界面”(nui),其中,用戶通過其有意識地且故意地選擇控制用戶終端102,例如,為了控制計算機游戲。然而,根據(jù)本公開的實施例,為了另一目的而采用nui,以在編碼視頻時隱式地自適應(yīng)量化。在事件于場景113中發(fā)生期間,用戶僅僅如他或她無論如何會做的那樣自然地行為,例如在視頻通話期間正常地談話和打手勢,并且無需注意他或她的動作正在影響量化。
在接收側(cè),第二(進行接收的)用戶終端108包括屏幕111、可操作地耦合至屏幕111的解碼器110、以及用于連接至網(wǎng)絡(luò)101的網(wǎng)絡(luò)接口109,所述網(wǎng)絡(luò)接口109包括可操作地耦合至解碼器110的至少一個接收機。經(jīng)編碼的視頻信號是經(jīng)由在第一用戶終端102的發(fā)射機107與第二用戶終端108的接收機109之間建立的信道、通過網(wǎng)絡(luò)101而傳輸?shù)?。接收機109接收經(jīng)編碼的信號并將其供應(yīng)至解碼器110。解碼器110解碼經(jīng)編碼的視頻信號,并且將經(jīng)解碼的視頻信號供應(yīng)至屏幕111以供播出。在實施例中,視頻是作為實時流(例如,作為現(xiàn)場視頻通話的傳入部分)來接收和播出的。
應(yīng)當(dāng)注意的是:出于說明性的目的,第一終端102被描述為包括發(fā)送側(cè)組件103、104、105、106、107、112的進行發(fā)送的終端,而第二終端108被描述為包括接收側(cè)組件109、110、111的進行接收的終端;但在實施例中,第二終端108還可以包括發(fā)送側(cè)組件(具有或沒有骨骼追蹤),并且還可以對視頻進行編碼并將其發(fā)送至第一終端102,并且第一終端102還可以包括用于對來自第二終端109的視頻進行解碼、接收、和播出的接收側(cè)組件。還應(yīng)當(dāng)注意的是,出于說明性的目的,已經(jīng)在向給定的進行接收的終端108發(fā)送視頻的方面描述了本文中的公開;但在實施例中,第一終端102可以實際上將經(jīng)編碼的視頻例如作為視頻會議的一部分而發(fā)送至第二進行接收的用戶終端108中的一個或多個。
圖2示出了編碼器104的示例性實現(xiàn)。編碼器104包括:減法階段201,其具有被設(shè)置為從相機103接收原始(未編碼的)采樣視頻信號的第一輸入端;預(yù)測編碼模塊207,其具有耦合至減法階段201的第二輸入端的輸出端;轉(zhuǎn)換階段202(例如,dct轉(zhuǎn)換),其具有可操作地耦合至減法階段201的輸出端的輸入端;量化器203,其具有可操作地耦合至轉(zhuǎn)換階段202的輸出端的輸入端;無損壓縮模塊204(例如,熵編碼器),其具有耦合至量化器203的輸出端的輸入端;逆量化器205,其具有同樣可操作地耦合至量化器203的輸入端;以及逆轉(zhuǎn)換階段206(例如,逆dct),其具有可操作地耦合至逆量化器205的輸入端以及可操作地耦合至預(yù)測編碼模塊207的輸入端的輸出端。
在操作中,將來自相機103的輸入信號的每一幀劃分成多個塊(或宏塊等——“塊”將在本文中作為通用術(shù)語來使用,其可以指代具有任何給定標準的塊或宏塊)。減法階段201的輸入端從輸入信號接收待編碼的塊(目標塊),并且在其與在如經(jīng)由來自預(yù)測編碼模塊207的輸入所接收的在相同幀(幀內(nèi)編碼)或不同幀(幀間編碼)中的另一個塊大小部分(參考部分)的經(jīng)變換、量化、逆量化、和逆變換的版本之間執(zhí)行減法,其表示當(dāng)在解碼側(cè)被解碼時該參考部分將如何表現(xiàn)。在幀內(nèi)編碼的情況下,該參考部分常常是另一相鄰的塊,而在幀間編碼的情況下(運動預(yù)測),該參考部分不一定被約束為整數(shù)數(shù)量的塊的偏移,并且概括而言,運動向量(在參考部分和目標塊之間的空間偏移,例如以x和y坐標表示)可以是在每個方向上的任何數(shù)量的像素或者甚至是部分整數(shù)數(shù)量的像素。
從目標塊減去參考部分產(chǎn)生了殘差信號——即,目標塊與在解碼器110處該目標塊從其預(yù)測的相同的幀和不同的幀中的參考部分之間的差。該想法不絕對根據(jù)目標塊來進行編碼,而是根據(jù)目標塊與相同或不同幀中的另一部分的像素之間的差來進行編碼。該差傾向于小于目標塊的絕對表示,并且因此采用更少的比特來在經(jīng)編碼的信號中進行編碼。
每個目標塊的殘差采樣從減法階段201的輸出端被輸出至變換階段202的輸入端,從而被變換以產(chǎn)生對應(yīng)的經(jīng)變換的殘差采樣。變換的任務(wù)是從空間域表示(通常是以笛卡爾x和y坐標表示)變換成變換域表示(通常是空間-頻率域表示,有時僅被稱為頻域)。即,在空間域中,每個顏色通道(例如,rgb中的每個或yuv中的每個)是根據(jù)諸如x和y坐標之類的空間坐標來表示的,其中,每個采樣表示在不同坐標處的相應(yīng)像素的幅值;而在頻域中,每個顏色通道是根據(jù)具有維數(shù)1/距離的空間頻率來表示的,其中,每個采樣表示相應(yīng)空間頻率項的系數(shù)。例如,該變換可以是離散余弦變換(dct)。
經(jīng)變換的殘差采樣從變換階段202的輸出端被輸出至量化器203的輸入端,從而被量化成經(jīng)量化的、經(jīng)變換的殘差采樣。如先前所討論的,量化是從在較高粒度范圍上的表示轉(zhuǎn)換成較低粒度范圍上的表示的過程,即將輸入值的較大的集合映射至較小的集合。量化是有損形式的壓縮,即細節(jié)被“丟掉”。然而,其也減小了需要表示每個采樣的比特數(shù)。
經(jīng)量化的、經(jīng)變換的殘差采樣從量化器203的輸出端被輸出至無損壓縮階段204的輸入端,無損壓縮階段204被設(shè)置為對該信號執(zhí)行進一步的無損編碼,例如熵編碼。熵編碼通過以下方式來工作:利用由較少數(shù)量的比特組成的碼字對較常出現(xiàn)的采樣值進行編碼,并且利用由較多數(shù)量的比特組成的碼字對較少出現(xiàn)的采樣值進行編碼。通過這樣做,與使用一組固定長度的碼字用于所有可能的采樣值的情況相比,有可能利用平均更少數(shù)量的比特來對數(shù)據(jù)進行編碼。變換202的目的在于:與在空間域中相比,在變換域(例如,頻域)中,更多的采樣通常傾向于量化成零或小的值。當(dāng)在經(jīng)量化的采樣中出現(xiàn)更多的零或很多相同的小值時,這些值可以由無損壓縮階段204高效地編碼。
無損壓縮階段204被設(shè)置為向發(fā)射機107輸出經(jīng)編碼的采樣,以(經(jīng)由第二終端108的接收機110)通過網(wǎng)絡(luò)101向在第二(進行接收的)終端108上的解碼器110發(fā)送。
量化器203的輸出還被饋送回對經(jīng)量化的采樣進行逆量化的逆量化器205,并且逆量化器205的輸出被供應(yīng)至逆變換階段206的輸入端,逆變換階段206對變換202執(zhí)行求逆(例如,逆dct)以產(chǎn)生每個塊的經(jīng)逆量化的、經(jīng)逆變換的版本。由于量化是有損過程,因此經(jīng)逆量化的、經(jīng)逆變換的塊中的每個塊將包含相對于輸入信號中對應(yīng)的原始塊的一些失真。這表示解碼器110將看見的。接著,預(yù)測編碼模塊207可以使用其來生成針對輸入視頻信號中進一步的目標塊的殘差(即,預(yù)測編碼根據(jù)下一個目標塊與解碼器110將看見的、所述目標塊從其預(yù)測的對應(yīng)的參考部分之間的殘差來進行編碼)。
圖3示出了解碼器110的示例實現(xiàn)。解碼器110包括:無損解壓階段301,其具有被設(shè)置為從接收機109接收經(jīng)編碼的視頻信號的采樣的輸入端;逆量化器302,其具有可操作地耦合至無損階段301的輸出端的輸入端;以及逆變換階段303(例如,逆dct),其具有可操作地耦合至逆量化器302的輸出端的輸入端;以及預(yù)測模塊304,其具有可操作地耦合至逆變換階段303的輸出端的輸入端。
在操作中,逆量化器302對所接收的(經(jīng)編碼的殘差)采樣求逆,并且將這些經(jīng)去量化的采樣供應(yīng)至逆變換階段303的輸入端。逆變換階段303對經(jīng)去量化的采樣執(zhí)行變換202的逆(例如,逆dct),以產(chǎn)生每個塊的經(jīng)逆量化的、經(jīng)逆變換的版本,即以將每個塊變換到空間域。在該階段處應(yīng)當(dāng)注意的是,這些塊仍然是殘差信號的塊。將這些殘差的、空間域的塊從逆變換階段303的輸出端供應(yīng)至預(yù)測模塊304的輸入端。預(yù)測模塊304使用經(jīng)逆量化的、經(jīng)逆變換的殘差塊來在空間域中從其殘差加上來自同一幀(幀內(nèi)預(yù)測)或不同幀(幀)的其對應(yīng)的參考部分的已經(jīng)解碼的版本來預(yù)測每個目標塊。在幀間編碼的情況下(運動預(yù)測),目標塊與參考部分之間的偏移是由相應(yīng)的運動向量指定的,所述運動向量也被包含在經(jīng)編碼的信號中。在幀內(nèi)編碼的情況下,通常根據(jù)預(yù)先確定的圖案來確定將哪個塊作為參考塊來使用,但是可替代地,也可以在經(jīng)編碼的信號中以信號發(fā)送。
現(xiàn)在更加詳細地討論在編碼側(cè)的控制器112的控制下的量化器203的操作。
量化器203用于從控制器112接收對一個或多個興趣區(qū)域(roi)的指示,并(至少有時)將與外部不同的量化參數(shù)(qp)值應(yīng)用在roi中。在實施例中,量化器203用于將不同的qp值應(yīng)用在多個roi中的不同的roi中。也可以將對roi和對應(yīng)的qp值的指示以信號發(fā)送至解碼器110,因此對應(yīng)的逆量化可以由逆量化器302來執(zhí)行。
圖4示出了量化的概念。量化參數(shù)(qp)是對在量化中所使用的步長的指示。低的qp意味著在具有較細的漸變(即,采樣可以采用的可能的值中的更近間隔的步長)的范圍上所表示的經(jīng)量化的采樣(因此與輸入信號相比,更少的量化);而高的qp意味著在具有較粗的漸變(采樣可以采用的可能的值中的更寬間隔的步長)的范圍上表示的經(jīng)量化的采樣(因此與輸入信號相比,更多的量化)。低的qp信號比高的qp信號產(chǎn)生更多的比特,這是因為需要較大數(shù)量的比特來表示每個值。應(yīng)當(dāng)注意的是,步長通常在整個范圍上是規(guī)律的(均勻間隔的),但是它不一定要在所有可能的實施例中都這樣。在步長非均勻改變的情況下,例如,增加/減小可以意味著步長的平均(例如,平均值)的增加/減小,或僅僅范圍的某些區(qū)域中的步長的增加/減小。
根據(jù)編碼器,可以以多種方式指定roi。在一些編碼器中,一個或多個roi中的每個roi可以被限制為被定義成矩形(例如,僅在水平和豎直邊界方面),或者在其他編碼器中,有可能可以基于逐塊(或逐宏塊等)來定義哪個個體的塊(或宏塊)形成了roi的一部分。在一些實施例中,量化器203支持針對每個個體的塊(或宏塊)所指定的相應(yīng)的qp值。在該情況下,將針對每個塊(或宏塊等)的qp值作為經(jīng)編碼的信號的一部分以信號發(fā)送至解碼器。
如先前所提及的,在編碼側(cè)的控制器被配置為從骨骼追蹤算法106接收骨骼追蹤信息,并且出于編碼的目的而基于此來動態(tài)地定義roi,以便與在感覺上最重要的一個或多個相應(yīng)的身體特征相對應(yīng),并且從而針對roi而設(shè)置qp值。在實施例中,控制器112可以僅僅自適應(yīng)roi的大小、形狀、和/或位置,其中在roi的內(nèi)部使用固定的qp值并且在外部使用另一(較高的)固定值。在該情況下,量化是僅僅根據(jù)在哪里應(yīng)用較低的qp(較細的量化)以及在哪里不應(yīng)用較低的qp來自適應(yīng)的??商娲兀刂破?12可以被配置為自適應(yīng)roi和qp值兩者,即,以便在roi內(nèi)部所應(yīng)用的qp也是動態(tài)自適應(yīng)的變量(并且潛在地,外部的qp也是這樣)。
通過動態(tài)地自適應(yīng)指的是“實時的”,即響應(yīng)于正在進行的條件的;以便用戶100在場景113內(nèi)移動或者進出于場景113,當(dāng)前的編碼狀態(tài)相應(yīng)地自適應(yīng)。因此,視頻的編碼根據(jù)用戶100再被記錄時正在做什么和/或在視頻被捕獲到時間處他或她在哪里而自適應(yīng)。
因此,存在在本文中所描述的一種技術(shù),其使用來自nui傳感器105的信息來執(zhí)行骨骼追蹤并計算興趣區(qū)域(roi),接著,在編碼器中自適應(yīng)qp以使得興趣區(qū)域以比該幀的剩余部分更好的質(zhì)量來進行編碼。如果roi是幀的小部分,則這可以節(jié)省帶寬。
在實施例中,控制器112是編碼器104的比特率控制器(應(yīng)當(dāng)注意的是,編碼器104和控制器112的示圖僅是示意性的,并且控制器112可以被等同地認為是編碼器104的一部分)。比特率控制器112負責(zé)控制將影響經(jīng)編碼的視頻信號的比特率的編碼的一個或多個屬性,以便滿足某些比特率約束。量化是這樣的屬性:較低的qp(較細的量化)每單位時間的視頻產(chǎn)生較多的比特,而較高的qp(較粗的量化)每單位時間的視頻產(chǎn)生較少的比特。
例如,比特率控制器112可以被配置為動態(tài)地確定進行發(fā)送的終端102與進行接收的終端108之間的信道上可用的帶寬的測量,并且比特率約束是由此限制的最大比特率預(yù)算——其被設(shè)置等于最大可用帶寬或被確定為其的某函數(shù)??商娲?,比特率約束可以是較復(fù)雜的比率失真優(yōu)化(rdo)過程的結(jié)果,而不是簡單的最大值。對于本領(lǐng)域的技術(shù)人員而言,各種rdo過程的細節(jié)將是熟悉的。無論以哪種方式,在實施例中,控制器112被配置為當(dāng)自適應(yīng)roi和/或相應(yīng)的qp值時,將對比特率的這樣的約束考慮在內(nèi)。
例如,當(dāng)帶寬條件較差時和/或如果rdo算法指示當(dāng)前花費在量化roi上的比特率具有很小的益處,則控制器112可以選擇較小的roi或者限制給身體部位分配的roi的數(shù)量;但是,如果帶寬條件好和/或rdo算法指示其是有益的,則控制器112可以選擇較大的roi或?qū)oi分配給更多的身體部位??商娲鼗蝾~外地,如果帶寬條件差和/或rdo算法指示在量化上花費更多當(dāng)前不是有益的,則控制器112可以針對roi選擇較小的qp值;但是,如果帶寬條件較好和/或rdo算法指示其是有益的,則控制器112可以針對roi選擇較大的qp。
例如,在voip通話視頻通信中,經(jīng)常不得不在圖像的質(zhì)量和所使用的網(wǎng)絡(luò)帶寬之間進行權(quán)衡。本公開的實施例嘗試最大化正被發(fā)送的視頻的所感覺到的質(zhì)量,同時將帶寬保持在可行的等級。
此外,在實施例中,與其他潛在的方法相比,使用骨骼追蹤可以時更高效的。嘗試在場景中分析用戶正在做什么可能在計算上是非常昂貴的。然而,一些設(shè)備已經(jīng)針對諸如骨骼追蹤之類的某些圖像功能而預(yù)留了處理資源,例如專用硬件或經(jīng)預(yù)留的處理器循環(huán)。如果這些用于基于骨骼追蹤而對用戶的運動進行分析,則這可以緩解在正在用于運行編碼器(例如,作為voip客戶端或進行視頻通話的其他這樣的通信客戶端應(yīng)用的一部分)的通用處理資源上的處理負擔(dān)。
例如,如在圖6中所示出的,進行發(fā)送的用戶終端102可以包括專用圖形處理器(gpu)602和通用處理器(例如,cpu)601,其中圖形處理器602是針對包括骨骼追蹤的某些圖形處理操作而預(yù)留的。在實施例中,骨骼追蹤算法106可以被設(shè)置為在圖形處理器602上運行,而編碼器104可以被設(shè)置為在通用處理器601上運行(例如,作為voip客戶端或者在通用處理器上運行的其他這樣的視頻通話客戶端的一部分)。此外,在實施例中,用戶終端102可以包括“系統(tǒng)空間”和分離的“應(yīng)用空間”,其中,這些空間被映射到分離的gpu和cpu核心和不同的存儲器資源上。在這樣的情況下,骨骼追蹤算法106可以被設(shè)置為在系統(tǒng)空間中運行,而包括編碼器104的通信應(yīng)用(例如,voip客戶端)在應(yīng)用空間中運行。這樣的用戶終端的示例是xboxone,盡管其他可能的設(shè)備也可以使用類似的設(shè)置。
現(xiàn)在更加詳細地討論骨骼追蹤和對應(yīng)的roi選擇的一些示例性實現(xiàn)。
圖7示出了示例設(shè)置,其中,骨骼追蹤傳感器105用于檢測骨骼追蹤信息。在該示例中,骨骼追蹤傳感器105和捕獲正被編碼的進行中的視頻的相機103都被并入到連接至用戶終端102的同一外圍設(shè)備703中,其中用戶終端102包括編碼器104,例如作為voip客戶端應(yīng)用的一部分。例如,用戶終端102可以采用連接至電視機702的游戲操縱桿的形式,其中用戶100通過電視702觀看voip通話的傳入的視頻。然而,應(yīng)當(dāng)理解的是,該示例不是限制性的。
在實施例中,骨骼追蹤傳感器105是活動傳感器,其包括用于發(fā)射非可見(例如,ir)輻射的投影儀704和用于感測反射回來的相同類型的非可見輻射的對應(yīng)的感測元件706。投影儀704被設(shè)置為將非可見輻射投射至傳感器單元706的前部,以使得當(dāng)從場景113中的對象(例如,用戶100)反射回時,非可見輻射能夠由感測元件706檢測到。
感測元件706包括構(gòu)成的1d感測元件的2d陣列,以便在兩個維度上感測非可見輻射。此外,投影儀704被配置為以預(yù)先確定的輻射圖案來投射非可見輻射。當(dāng)從諸如用戶100之類的3d對象反饋回來時,該圖案的失真允許感測元件706不僅用于在傳感器陣列的平面中的兩個維度上感測用戶100,而且還用于感測用戶身體上的各種點相對于感測元件706的深度。
圖8a示出了由投影儀706所發(fā)射的示例輻射圖案800。如在圖8a中所示出的,輻射圖案在至少兩個維度上拉伸并且是對稱地不均勻的,其包括具有交變強度的多個對稱布置的區(qū)域。作為示例,圖8a的輻射圖案包括大致上均勻的輻射點陣列。在該實施例中,輻射圖案是紅外(ir)輻射圖案,并且能夠由感測元件706檢測到。應(yīng)當(dāng)注意的是,圖8a的輻射圖案是示例性的,并且還設(shè)想使用其他可替代的輻射圖案。
該輻射圖案800是由投影儀704投射到傳感器706的前部的。傳感器706捕獲非可見輻射圖案的圖像,如在其視野中所投射的。這些圖像由骨骼追蹤算法106處理,以便計算用戶的身體在傳感器706的視野中的深度,有效地構(gòu)建用戶100的三維表示,并且在實施例中由此也允許識別不同的用戶和這些用戶的相應(yīng)的不同的骨骼點。
圖8b示出了如通過相機103和骨骼追蹤傳感器105的感測元件706所看見的用戶100的前視圖。如圖所示,用戶100正在利用伸向骨骼追蹤傳感器105的他或她的左手來擺姿勢。用戶的頭向前伸出超過他或她的軀干,并且軀干在右臂的前面。由投影儀704將輻射圖案800投射到用戶上。當(dāng)然,用戶可以以其他方式來擺姿勢。
如在圖8b中所示出的,用戶100因此正以使所投射的輻射圖案800失真的形式來擺姿勢,如由骨骼追蹤傳感器105的感測元件706所檢測到的,其中,相對于投影到距離投影儀704較近的用戶的部分的輻射的部分(即,在該情況下,使得輻射圖案800的點較不分開),投射到進一步遠離投影儀704的用戶100的部分的輻射圖案800的部分被有效拉伸的(即,在該情況下,使得輻射圖案的點更加分離),其中拉伸的量與距投影儀704的距離成比例,并且其中,投射到用戶很后方的輻射圖案800的一部分對于感測元件706是有效地不可見的。因為輻射圖案800是對稱地不均勻的,所以由用戶的姿勢導(dǎo)致的其失真可以用于分辨姿勢,以通過骨骼追蹤算法106處理如由骨骼追蹤傳感器105的感測元件706所捕獲的失真的輻射圖案的圖像的方式來識別用戶100的骨骼特征。例如,可以通過測量在用戶的身體100的區(qū)域內(nèi)所檢測到的輻射圖案800的點之間的距離來確定用戶的身體100的區(qū)域與感測元件706之間的距離。
應(yīng)當(dāng)注意的是,盡管在圖8a和8b中,輻射圖案800被示出為可見的,但這純粹是為了幫助理解,并且實際上在實施例中,如投影到用戶100上的輻射圖案800將對于人眼而言是不可見的。
參考圖9,從骨骼追蹤傳感器105的感測元件706所檢測到的傳感器數(shù)據(jù)由骨骼追蹤算法106來處理,以檢測用戶100的一個或多個骨骼特征。通過供軟件開發(fā)者所使用的應(yīng)用程序接口(api)的方式,使得所述結(jié)果從骨骼追蹤算法106到編碼器104的控制器112可用。
骨骼追蹤算法106從骨骼追蹤傳感器105的感測元件706接收傳感器數(shù)據(jù),并且對其進行處理以確定在骨骼追蹤傳感器105的視野中的用戶的數(shù)量,并以使用在本領(lǐng)域中公知的骨骼檢測技術(shù)來識別針對每個用戶的相應(yīng)的一組骨骼點。每個骨骼點表示人類關(guān)節(jié)相對于正由相機103分別地捕獲的視頻的大致位置。
在一個示例實施例中,骨骼追蹤算法106能夠針對骨骼追蹤傳感器105的視野中每個用戶而檢測到多達二十個相應(yīng)的骨骼點(取決于用戶的身體在視野中出現(xiàn)了多少)。每個骨骼點與二十個所識別的人類關(guān)節(jié)中的一個關(guān)節(jié)相對應(yīng),其中,當(dāng)用戶(或多個用戶)在傳感器的視野中移動時,每個關(guān)節(jié)都在空間和時間上變化?;谌缬晒趋雷粉檪鞲衅?05所檢測的用戶的三維姿勢,計算這些關(guān)節(jié)在時間上的任何時刻的位置。在圖9中示出了這二十個關(guān)節(jié)點:左踝關(guān)節(jié)922b、右踝關(guān)節(jié)922a、左肘906b、右肘906a、左腳924b、右腳924a、左手902b、右手902a、頭910、臀部間的中心916、左臀918b、右臀918a、左膝920b、右膝920a、肩膀間的中心912、左肩908b、右肩908a、中間脊柱914、左手腕904b、和右手腕704a。
在一些實施例中,骨骼點還可以具有追蹤狀態(tài):對于清楚可見的關(guān)節(jié),其可以被顯式地追蹤,當(dāng)關(guān)節(jié)不是清楚可見的但骨骼追蹤算法在推斷其位置時和/或不被追蹤時,其可被推斷。在進一步的實施例中,可以給所檢測的骨骼點提供相應(yīng)的置信度值以指示對應(yīng)的關(guān)節(jié)已經(jīng)被正確地檢測的可能性。置信度值低于某一閾值的點可以被排除,其不由控制器進一步使用以確定任何roi。
骨骼點和來自相機103的視頻相關(guān)聯(lián),以使得如由骨骼追蹤算法106在特定的時間所報告的骨骼點的位置與視頻在該時刻的幀(圖像)內(nèi)的對應(yīng)的人類關(guān)節(jié)的位置相對應(yīng)。骨骼追蹤算法106將這些所檢測的骨骼點作為骨骼追蹤信息供應(yīng)至控制器從而以供使用。針對視頻數(shù)據(jù)的每一幀,由骨骼追蹤信息所供應(yīng)的骨骼點包括骨骼點在該幀內(nèi)的位置,例如,被表達為關(guān)于視頻幀大小為邊界的坐標系統(tǒng)的笛卡爾坐標(x,y)??刂破?12接收針對用戶100的所檢測的骨骼點,并且被配置為從其確定該用戶的多個可視的身體特性,即,具體的身體部位或區(qū)域。因此,由控制器112基于骨骼追蹤信息來檢測身體的部位或身體的區(qū)域,其每個都是通過從由骨骼追蹤算法106所提供的一個或多個骨骼點外推的方式而檢測的,并且與來自相機103的視頻的對應(yīng)視頻幀內(nèi)的區(qū)域相對應(yīng)(即,被定義為前述坐標系統(tǒng)中的區(qū)域)。
應(yīng)當(dāng)注意的是,這些可視的身體特性在它們表示在現(xiàn)實中可以看見并且在所捕獲的視頻中可以辨別的用戶身體的特征的意義上是可視的;然而,在實施例中,它們在由相機103所捕獲的視頻數(shù)據(jù)中“看”不見;相反,控制器112基于由骨骼追蹤算法106和傳感器105所提供的骨骼點的布置(并且不基于例如對該幀的圖像處理)來外推這些特征在來自相機103的視頻的幀內(nèi)的(大致)相對位置、形狀、和大小。例如,控制器112可以通過將每個身體部位近似為具有根據(jù)與該身體部位緊密相關(guān)的骨骼點的所檢測的布置來計算的位置和大小(以及可選地,朝向)的矩形(或類似圖形)來這么做。
在本文中所公開的技術(shù)使用先進的活動骨骼追蹤視頻捕獲設(shè)備的能力(與常規(guī)的視頻相機103相比),例如在上文中所討論的那些能力,以計算一個或多個興趣區(qū)域(roi)。因此,在實施例中應(yīng)當(dāng)注意的是,骨骼追蹤至少在以下兩方面與常規(guī)的面部或圖像識別算法不同:骨骼追蹤算法106在3d空間而不是2d空間中工作;并且骨骼追蹤算法106在紅外空間而不是可視顏色空間(rgb、yuv等)中工作。如所討論的,在實施例中,先進的骨骼追蹤設(shè)備105(例如,kinect)使用紅外傳感器來產(chǎn)生深度幀和身體幀,連同通常的顏色幀。該身體幀可以用于計算roi。roi的坐標可以被映射在來自相機103的顏色幀的坐標空間中,并且與顏色幀一起被傳遞至編碼器。接著,編碼器在其算法中使用這些坐標來決定其在幀的不同區(qū)域中使用的qp,以便適應(yīng)期望的輸出比特率。
roi可以是矩形的集合,或者它們可以是諸如頭部、上軀干等之類的具體的身體部位周圍的區(qū)域。如所討論的,所公開的技術(shù)使用視頻編碼器(軟件或硬件)來在輸入幀的不同的區(qū)域中生成不同的qp,其中經(jīng)編碼的輸出幀在roi內(nèi)比roi外更銳利。在實施例中,控制器112可以被配置為向roi中的不同的roi分配不同的優(yōu)先級,以使得當(dāng)對比特率施加的約束增加時(例如,當(dāng)可用帶寬下降時),利用比背景更低的qp所量化的狀態(tài)以優(yōu)先級相反的順序而降低??商娲鼗蝾~外地,可以存在幾個不同等級的roi,即一個區(qū)域可以比另一個區(qū)域具有更多興趣。例如,如果更多的人在幀中,則其全部都具有比背景更多的興趣,但是當(dāng)前正在說話的人比其他人具有更多的興趣。
關(guān)于圖5a-5b討論一些示例。這些圖中的每個圖都示出了所捕獲的場景113的圖案的幀500,其包括用戶100的圖像(或至少用戶100的一部分)。在幀區(qū)域內(nèi),控制器112基于骨骼追蹤信息定義了一個或多個roi501,其每個對應(yīng)于相應(yīng)的一個身體區(qū)域(即,如在所捕獲的圖像中出現(xiàn)的,覆蓋或大致覆蓋相應(yīng)的身體區(qū)域)。
圖5a示出了在其中roi中的每個roi都是僅僅由水平和豎直的邊界所定義的矩形(僅僅具有水平的和豎直的邊緣)的示例。在給定的示例中,存在與三個相應(yīng)的身體區(qū)域相對應(yīng)地定義的三個roi:第一roi501a,其與用戶100的頭部相對應(yīng);第二roi501b,其與用戶100的頭部、軀干、和手臂(包括手)相對應(yīng);以及第三roi501c,其與用戶100的整個身體相對應(yīng)。因此,應(yīng)當(dāng)注意的是,如在示例中所示出的,roi和它們對應(yīng)的身體區(qū)域可以重疊。在本文中所指的身體區(qū)域無需與單塊骨骼相對應(yīng),也無需與彼此排除的身體部位相對應(yīng),而是更一般地指代基于骨骼追蹤信息所識別的身體的任何區(qū)域。實際上,在實施例中,不同的身體區(qū)域是分等級的,從可能感興趣的最寬的身體區(qū)域(例如,整個身體)縮小到可能感興趣的最特定的身體區(qū)域(例如,頭部,其包括面部)。
圖5b示出了類似的示例,但是在該示例中,roi不限于是矩形,而是可以被定義為任意形狀(在逐塊的基礎(chǔ)上,例如,逐宏塊)。
在圖5a和5b中的每個的示例中,與頭部相對應(yīng)的第一roi501a是最高優(yōu)先級的roi;與頭部、軀干、和手臂相對應(yīng)的第二roi501b是次最高優(yōu)先級的roi;而與整個身體相對應(yīng)的第三roi501c是最低優(yōu)先級的roi。這可以意味著如下所述的兩件事中的一個或兩者。
首先,當(dāng)比特率約束條件變得更嚴格(例如,信道上可用網(wǎng)絡(luò)帶寬降低)時,優(yōu)先級可以定義從利用低qp(低于背景)進行量化來對roi降級的順序。例如,在嚴格的比特率約束下,只有頭部區(qū)域501被給予了低的qp,而其他的roi501b、501c是利用與背景(即,非roi)區(qū)域相同的高的qp來量化的;而在中間比特率約束下,頭部、軀干、和手臂區(qū)域501b(其包含頭部區(qū)域501a)被給予了低的qp,而剩余的整個身體roi501c是利用與背景相同的高的qp來量化的;而在最不嚴格的比特率約束下,整個區(qū)域501c(其包含頭部、軀干和手臂501a、501b)被給予了低的qp。在一些實施例中,在最嚴格的比特率約束下,甚至頭部區(qū)域501a都可以利用高的背景qp來量化。因此應(yīng)當(dāng)注意的是,如在該示例中所示出的,其中據(jù)說在roi中使用較細的量化,這可以意味著僅僅有時。然而,還應(yīng)當(dāng)注意的是,出于本申請的目的,roi的意思是給定了與在圖像中所使用的最高的qp(或更一般地,最粗糙的量化)區(qū)域相比較低的qp(或更一般地,較細的量化)的區(qū)域(至少在一些場合)。在本公開的上下文中,僅僅出于與控制量化不同的目的而定義的區(qū)域不被認為是roi。
作為諸如501a、501b、和501c之類的roi的不同優(yōu)先級的第二應(yīng)用,可以向區(qū)域中的每個區(qū)域分配不同的qp,以使得利用不同等級的粒度(每個粒度都比在roi之外使用的最粗糙的等級更細,但不是所有都是最細的粒度)來量化不同的區(qū)域。例如,可以利用第一最低的qp來量化頭部區(qū)域501a;可以利用第二中間低的qp來量化身體和手臂區(qū)域(501b的剩余部分);而可以利用比第二qp更高但是仍然比在外部使用的更低的第三稍微低的qp來量化身體區(qū)域的剩余部分(501c的剩余部分)。因此應(yīng)當(dāng)注意的是,如在該示例中所示出的,roi可以重疊。在該情況下,在重疊的roi也具有與其相關(guān)聯(lián)的不同的量化等級的情況下,規(guī)則可以定義哪個qp優(yōu)先;例如,在這里的示例情況下,最高優(yōu)先級區(qū)域501a的qp(最低的qp)被應(yīng)用在包括其重疊的地方的整個最高優(yōu)先級區(qū)域501a,而次最高的qp僅被應(yīng)用在其從屬區(qū)域501b的剩余的整個部分上,以此類推。
圖5c示出了其中定義了更多roi的另一示例。在這里,定義了:與頭部對應(yīng)的第一roi501a、與胸部對應(yīng)的第二roi501d、與右臂(包括手)對應(yīng)的第三roi501e、與左臂(包括手)對應(yīng)的第四roi501f、與腹部對應(yīng)的第五roi501g、與右腿(包括腳)對應(yīng)的第六roi501h、以及與左腿(包括腳)對應(yīng)的第七roi501i。在圖5c中所描繪的示例中,每個roi501是由像在圖5a中一樣的由水平和豎直的邊界所定義的矩形,但是可替代地,可以更自由地定義roi501,例如,像圖5b一樣。
再一次,在實施例中,可以以如在上文中所討論的類似的方式向不同的roi501a和501d-i分配彼此相關(guān)的某些優(yōu)先級(但是被應(yīng)用至不同的身體區(qū)域)。例如,可以給予頭部區(qū)域501a最高優(yōu)先級、手臂區(qū)域501e-f次最高優(yōu)先級、胸部區(qū)域501d是在那之后的次最高、接著是腿和/或腹部。在實施例中,這可以定義當(dāng)比特率約束變得更具限制性時(例如,當(dāng)可用帶寬減少時),roi的低qp狀態(tài)降低的順序。可替代地或額外地,這可以指根據(jù)它們的相對感覺重要性,可以向roi中的不同的roi分配不同的qp等級。
圖5d示出了又一示例,在該情況下定義了:與頭部相對應(yīng)的第一roi501a,與胸部相對應(yīng)的第二roi501d、與腹部相對應(yīng)的第三roi、與右上臂相對應(yīng)的第四roi501j、與左上臂相對應(yīng)的第五roi501k、與右下臂相對應(yīng)的第六roi501l、與左下臂相對應(yīng)的第七roi501m、與右手相對應(yīng)的第八roi501n、與左手相對應(yīng)的第九roi501o、與右大腿相對應(yīng)的第十roi501p、與左大腿相對應(yīng)的第十一roi501q、與右小腿相對應(yīng)的第十二roi501r、與左小腿相對應(yīng)的第十三roi501s、與右腳相對應(yīng)的第十四roi501t、與左腳相對應(yīng)的第十五roi501u。在圖5d中所描繪的示例中,每個roi501都是由四條邊界所定義的矩形,但不一定限制于像在圖5c中那樣的水平和豎直邊界??商娲?,可以允許將每個roi501定義為如由連接任何四個點的四條邊界所定義的任何四邊形,或由連接任何三個或任意更多個點的任何三條或更多條邊界所定義的任何多邊形;或者每個roi501可以被約束為具有像在圖5a中那樣的水平和豎直邊界的矩形;或相反地,每個roi501可以像在圖5b中那樣能夠自由定義。此外,像其之前的示例一樣,在實施例中,可以給roi501a、501d、501g、501j-u中的每個roi分配相應(yīng)的優(yōu)先級。例如,頭部區(qū)域501a可以是最高優(yōu)先級,手區(qū)域501n、501o是次最高優(yōu)先級,下臂區(qū)域501l、501m是在其后的次最高優(yōu)先級,以此類推。
然而應(yīng)當(dāng)注意的是,在使用多個roi的情況下,不一定要在所有可能的實施例中與其一同實現(xiàn)分配不同的優(yōu)先級。例如,如果所討論的編碼解碼器不支持如在圖5b中的任何能夠自由定義的roi形狀,則與如在圖5a中在用戶100周圍畫單個roi相比,圖5c和5d中的roi定義將仍然表示更比特率高效的實現(xiàn)。即,像圖5c和5d那樣的示例允許對用戶100的圖像進行更選擇性的覆蓋,在roi不能在逐塊的基礎(chǔ)上被任意地定義(例如,不能逐宏塊地定義)的情況下,這不浪費那么多的比特在背景附近進行量化。
在進一步的實施例中,在遠離roi的區(qū)域中,質(zhì)量可以降低。即,控制器被配置為在量化粒度的粗糙度方面從一個或多個興趣區(qū)域中的至少一個朝向外部應(yīng)用連續(xù)的增加。該粗糙度方面的增加(在質(zhì)量方面的降低)可以是逐漸的或基于步長的。在其的一個可能的實現(xiàn)中,編碼解碼器被設(shè)計以使得當(dāng)定義roi時,由量化器203隱式地理解qp要在roi與背景之間減弱??商娲?,可以由控制器112通過在最高優(yōu)先級roi與背景之間定義一系列中間優(yōu)先級roi(例如,從覆蓋某一身體部位的中心的主要roi朝向在圖像邊緣處的背景向外擴展的一組同心的roi)來顯式地實施類似的效果。
在另一實施例中,控制器112被配置為應(yīng)用彈簧模型以使得當(dāng)一個或多個興趣區(qū)域基于骨骼追蹤信息而跟隨一個或多個對應(yīng)的身體區(qū)域時,所述一個或多個興趣區(qū)域的運動平滑。即,roi的從一幀到下一幀的運動是基于彈性彈簧模型而受到約束的,而不是簡單地針對每一幀而獨立地確定roi。在實施例中,可以將彈性彈簧模型定義為如下形式:
其中,m(“質(zhì)量”)、k(“剛度”)和d(“阻尼”)是可配置的常數(shù),而x(位移)和t(時間)是變量。即,平移的加速度與該平移的位移和速度的加權(quán)和成正比的模型。
例如,roi可以由幀內(nèi)的一個或多個點參數(shù)化,即,roi的位置或邊界的一個或多個點。當(dāng)roi移動時,這樣的點的位置將移動,因為其跟隨對應(yīng)的身體部位。因此,所討論的點可以被描述為在時間t2具有第二位置(“期望的位置(desiredposition)”),該第二位置是在之后的幀中覆蓋身體部位的roi的參數(shù),以及在時間t1具有第一位置(“當(dāng)前位置(currentposition)”),該第一位置是在先前的幀中覆蓋同一身體部位的roi的參數(shù)。可以通過如下所述的更新“當(dāng)前位置”來生成具有平滑運動的當(dāng)前的roi,其中經(jīng)更新的“當(dāng)前位置”是當(dāng)前roi的參數(shù):
velocity=0
previoustime=0
currentposition=<some_constant_initial_value>
updateposition(desiredposition,time)
{
x=currentposition–desiredposition;
force=-stiffness*x–damping*m_velocity;
acceleration=force/mass;
dt=time–previoustime;
velocity+=acceleration*dt;
currentposition+=velocity*dt;
previoustime=time;
}
應(yīng)當(dāng)理解的是,僅僅作為示例描述了以上的實施例。
例如,已經(jīng)根據(jù)某編碼器實現(xiàn)描述了上文,所述編碼器實現(xiàn)包括變換202、量化203、預(yù)測編碼207、201、和無損編碼204;但在可替代的實施例中,在本文中所公開的教導(dǎo)還可以應(yīng)用于不一定包括所有這些階段的其他編碼器。例如,自適應(yīng)qp的技術(shù)可以應(yīng)用于沒有變換、預(yù)測、和/或無損壓縮,而可能僅僅包括量化器的編碼器。此外,應(yīng)當(dāng)注意的是,qp不是用于表達量化粒度的唯一可能的參數(shù)。
此外,盡管自適應(yīng)是動態(tài)的,但是,不一定在所有可能的實施例中都是該情況,其中視頻必須被實時地編碼、發(fā)送、和/或播放(盡管這必定是一個應(yīng)用)。例如,可替代地,用戶終端102可以記錄視頻,并且還記錄與視頻同步的骨骼追蹤,并且接著使用其在之后的日子執(zhí)行編碼(例如,用于存儲在諸如外圍存儲器秘鑰或加密鎖之類的存儲器設(shè)備上),或者附加至電子郵件。
此外,應(yīng)當(dāng)理解的是,上文的身體區(qū)域和roi僅僅是示例,并且與具有不同范圍的其他身體區(qū)域相對應(yīng)的roi是可能的,如形狀不同的roi。同樣,對某些身體區(qū)域的不同定義是可能的。例如,在對與手臂相對應(yīng)的roi進行引用的情況下,在實施例中這可以包括或可以不包括諸如手和/或肩膀之類的從屬特征。類似地,在本文中對與腿部相對應(yīng)的roi進行引用的情況下,這可以包括或可以不包括諸如腳之類的從屬特征。
此外,盡管在上文中已經(jīng)在帶寬的更高效的使用、或處理資源的更高效的使用方面描述了優(yōu)點,但是這些優(yōu)點不是限制性的。作為另一示例應(yīng)用,所公開的技術(shù)可以用于將“肖像”效果應(yīng)用至圖像。專業(yè)的相機具有“肖像模式”,在該模式下,鏡頭聚焦在主體的面部上,而背景被模糊。這被稱為肖像攝影,并且其傳統(tǒng)上需要昂貴的相機鏡頭和專業(yè)的攝影師。本公開的實施例可以通過使用qp和roi而在視頻通話中對視頻達到相同或相似的效果。一些實施例甚至可以做到比當(dāng)前的肖像攝影所做的更多:通過增加隨著從roi向外的距離,逐漸地增加模糊等級,因此離主體最遠的像素比離主體較近的相似更加模糊。
此外,應(yīng)當(dāng)注意的是,在上文的描述中,骨骼追蹤算法106基于來自與相機103分離的、一個或多個分別的、專用的骨骼追蹤傳感器105的傳感輸入(即,使用來自骨骼追蹤傳感器105的傳感數(shù)據(jù)而不是由來自相機103的編碼器104所編碼的視頻數(shù)據(jù))來執(zhí)行骨骼追蹤。然而,其他實施例是可能的。例如,骨骼追蹤算法106可以實際上被配置為基于來自用于捕獲正被編碼的視頻的同一相機103的視頻數(shù)據(jù)來進行操作,但是在該情況下,仍然使用至少一些專用的或預(yù)留的圖形處理資源來實現(xiàn)骨骼追蹤算法106,所述專用的或預(yù)留的圖形處理資源是與在其上實現(xiàn)編碼器104的通用處理資源分離的,例如,骨骼追蹤算法106是在圖形處理器602上實現(xiàn)的,而編碼器104是在通用處理器601上實現(xiàn)的,或者骨骼追蹤算法106是在系統(tǒng)空間中實現(xiàn)的,而編碼器104是在應(yīng)用空間中實現(xiàn)的。因此,比在上文的描述中所描述的更加一般地,骨骼追蹤算法106可以被設(shè)置為使用除了相機103和/或編碼器104之外的至少一些分離的硬件(除了用于捕獲正在編碼的視頻的相機103的分離的骨骼追蹤傳感器),和/或除了編碼器104之外的分別的處理資源。
盡管已經(jīng)用特定于結(jié)構(gòu)特征和/或方法動作的語言描述了本主題,但是應(yīng)當(dāng)理解的是,在所附權(quán)利要求中定義的主題不一定限于在上文中所描述的具體的特征或動作。相反,在上文中所描述的具體的特征和動作是作為實現(xiàn)權(quán)利要求的示例形式而公開的。