本發(fā)明涉及視頻譯碼和壓縮的領(lǐng)域,且確切地說,涉及用于在顯示鏈路上發(fā)射的視頻壓縮,例如顯示鏈路視頻壓縮。
背景技術(shù):
可將數(shù)字視頻能力并入到多種多樣的顯示器中,包含數(shù)字電視、個(gè)人數(shù)字助理(PDA)、膝上型計(jì)算機(jī)、臺式監(jiān)測器、數(shù)碼相機(jī)、數(shù)字記錄裝置、數(shù)字媒體播放器、視頻游戲裝置、視頻游戲機(jī)、蜂窩或衛(wèi)星無線電電話、視頻電話會議裝置及類似者。顯示鏈路用于將顯示器連接到適當(dāng)源裝置。顯示鏈路的帶寬要求與顯示器的分辨率成比例,且因此,高分辨率顯示器需要大帶寬顯示鏈路。一些顯示鏈路不具有支撐高分辨率顯示器的帶寬。可使用視頻壓縮減少帶寬要求,使得可使用較低帶寬顯示鏈路將數(shù)字視頻提供到高分辨率顯示器。
其它人已試著利用對像素?cái)?shù)據(jù)的圖像壓縮。然而,此類方案有時(shí)并不視覺上無損,或可能在常規(guī)顯示裝置中實(shí)施起來困難且昂貴。
視頻電子標(biāo)準(zhǔn)協(xié)會(VESA)已開發(fā)了顯示流壓縮(DSC)作為用于顯示鏈路視頻壓縮的標(biāo)準(zhǔn)。例如DSC的顯示鏈路視頻壓縮技術(shù)應(yīng)(尤其)提供視覺無損的圖片質(zhì)量(即,圖片具有質(zhì)量等級,使得用戶不能斷定壓縮為作用中的)。顯示鏈路視頻壓縮技術(shù)還應(yīng)提供用常規(guī)硬件實(shí)時(shí)實(shí)施起來簡單且廉價(jià)的方案。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的系統(tǒng)、方法和裝置各自具有若干創(chuàng)新方面,其中沒有單個(gè)方面單獨(dú)負(fù)責(zé)本文中所揭示的合乎需要的屬性。
在一個(gè)方面中,提供一種顯示鏈路視頻壓縮的方法,其包括:對視頻數(shù)據(jù)的切片內(nèi)的塊進(jìn)行譯碼,所述切片包括所述視頻數(shù)據(jù)的一或多個(gè)塊;將對應(yīng)于所述塊的位存儲在緩沖器中;確定指示所述塊在所述切片內(nèi)的位置的信息;以及至少部分地基于所述塊在所述切片內(nèi)的所述位置而確定所述緩沖器的滿度。
在另一方面,一種用于顯示鏈路視頻壓縮的設(shè)備包括:處理器,其經(jīng)配置以對視頻數(shù)據(jù)的切片的塊進(jìn)行譯碼,所述切片包括所述視頻數(shù)據(jù)的一或多個(gè)塊;緩沖器,其經(jīng)配置以存儲對應(yīng)于所述塊的位;以及操作性地耦合到所述視頻譯碼裝置和所述緩沖器的處理器。所述處理器進(jìn)一步經(jīng)配置以確定指示所述塊在所述切片內(nèi)的位置的信息,且至少部分地基于所述塊在所述切片內(nèi)的所述位置而確定所述緩沖器的滿度。
在另一方面,一種非暫時(shí)性計(jì)算機(jī)可讀存儲媒體含有指令,所述指令在執(zhí)行時(shí)致使裝置的處理器:對視頻數(shù)據(jù)的切片內(nèi)的塊進(jìn)行譯碼,所述切片包括一或多個(gè)視頻數(shù)據(jù)塊;將對應(yīng)于所述塊的位存儲在緩沖器中;確定指示所述塊在所述切片內(nèi)的位置的信息;以及至少部分地基于所述塊在所述切片內(nèi)的所述位置而確定所述緩沖器的滿度。
在另一方面,提供一種視頻譯碼裝置,其包含:用于對視頻數(shù)據(jù)的切片內(nèi)的塊進(jìn)行譯碼的裝置,所述切片包括所述視頻數(shù)據(jù)的一或多個(gè)塊;用于將對應(yīng)于所述塊的位存儲在緩沖器中的裝置;用于確定指示所述塊在所述切片內(nèi)的位置的信息的裝置;以及用于至少部分地基于所述塊在所述切片內(nèi)的所述位置而確定所述緩沖器的滿度的裝置。
附圖說明
圖1A是說明可利用根據(jù)本發(fā)明中描述的方面的技術(shù)的實(shí)例視頻編碼和解碼系統(tǒng)的框圖。
圖1B是說明可執(zhí)行根據(jù)本發(fā)明中描述的方面的技術(shù)的另一實(shí)例視頻編碼和解碼系統(tǒng)的框圖。
圖2A是說明可實(shí)施根據(jù)本發(fā)明中描述的方面的技術(shù)的視頻編碼器的實(shí)例的框圖。
圖2B是說明可實(shí)施根據(jù)本發(fā)明中描述的方面的技術(shù)的視頻解碼器的實(shí)例的框圖。
圖3是展示用于對數(shù)據(jù)切片進(jìn)行編碼的示范性過程的曲線圖。
圖4說明用于在切片的編碼期間調(diào)整緩沖器滿度(BF)的示范性技術(shù)。
圖5是說明用于在緩沖器處提供恒定位速率(CBR)輸出的實(shí)例方法的流程圖。
具體實(shí)施方式
一般來說,本發(fā)明涉及改進(jìn)視頻壓縮技術(shù)(例如在顯示鏈路視頻壓縮中使用的那些技術(shù))的方法。更具體來說,本發(fā)明涉及用于提供緩沖器(例如,速率緩沖器)的恒定位速率(CBR)輸出和/或輸入以用于顯示鏈路視頻壓縮的系統(tǒng)和方法。
在常規(guī)顯示器技術(shù)中,作為顯示鏈路視頻壓縮的實(shí)例的由視頻電子標(biāo)準(zhǔn)協(xié)會(VESA)的顯示流壓縮(DSC)v1.0解決方案提供的3:1壓縮可能不足以驅(qū)動未來的移動市場要求,尤其是對于與例如4K分辨率(也被稱作4K)等高分辨率顯示器相關(guān)聯(lián)的要求。因此,為了滿足未來需求,期望開發(fā)用于并入到例如下一代DSC標(biāo)準(zhǔn)中的提供4:1壓縮和更高壓縮的方法。
在此上下文中,期望在確定DSC方法的性能中管理速率控制。速率控制的一個(gè)目的是確定滿足速率的瞬時(shí)和平均約束且同時(shí)最大化速率失真性能的例如量化參數(shù)(QP)等譯碼參數(shù)的集合、譯碼模式等等。
編碼每一視頻數(shù)據(jù)塊所耗費(fèi)的位(即,用以編碼的位)可大體上基于所述塊的性質(zhì)(例如,大小、位數(shù)目等)而變化。因此,緩沖器可用作速率控制機(jī)構(gòu)的部分以便使輸出位流中的速率變化平滑。在CBR緩沖器模型中,在有線物理鏈路上的數(shù)據(jù)發(fā)射期間可以恒定速率從緩沖器移除位。在此緩沖器模型中,如果編碼器相對于從緩沖器移除的位添加太多的位,那么緩沖器中的位數(shù)目可能超過緩沖器的容量,從而造成上溢。另一方面,編碼器應(yīng)當(dāng)在足夠速率添加位以便防止下溢。在解碼器側(cè)上,位以恒定速率添加到緩沖器,且解碼器針對每一塊移除可變的位數(shù)目。為了確保恰當(dāng)解碼,在經(jīng)壓縮位流的解碼期間緩沖器應(yīng)當(dāng)在任一點(diǎn)都不下溢或上溢。
假設(shè)變量BufferCurrentSize表示當(dāng)前存儲在緩沖器內(nèi)的位數(shù)目,且變量BufferMaxSize表示緩沖器的大小(即,容量),即可存儲在緩沖器中的總體最大位數(shù)目。緩沖器的“滿度”(也被稱作緩沖器滿度(BF))可如下方等式1中所示而計(jì)算。BF表示在特定時(shí)間點(diǎn)正用于位的存儲的緩沖器的容量的百分比。
BF=((BufferCurrentSize*100)/BufferMaxSize) (等式1)
或者使用:
BF=(((BufferCurrentSize*100)+(BufferMaxSize>>1))/BufferMaxSize) (等式2)
然而,在某些實(shí)施例中,需要在視頻數(shù)據(jù)切片的結(jié)束(即,在譯碼所述切片中的所有塊之后)在緩沖器中含有(即,存儲)的位數(shù)目小于BufferMaxSize。假設(shè)變量maxBufferBitsAtSliceEnd表示在切片結(jié)束時(shí)緩沖器中的所需最大位數(shù)目。在一實(shí)例中,為了防止下溢和/或上溢,在切片結(jié)束時(shí)緩沖器中的位數(shù)目等于可能小于BufferMaxSize的maxBufferBitsAtSliceEnd可為最優(yōu)的。在此類實(shí)施例中,在切片結(jié)束時(shí)在計(jì)算BF中將使用maxBufferBitsAtSliceEnd代替BufferMaxSize,且上述等式1和/或2將不是最優(yōu)的。
在此類實(shí)施例中,需要取決于(即,基于)切片內(nèi)的給定塊的譯碼位置而調(diào)整BF。更精確地,在對切片中的某個(gè)固定數(shù)目(即,預(yù)定或可配置數(shù)目)的塊進(jìn)行譯碼之后BF在恒定速率線性地減小,其方式為使得在切片結(jié)束時(shí),如果BufferCurrentSize=maxBufferBitsAtSliceEnd則BF是100%。
雖然本文中在DSC標(biāo)準(zhǔn)的上下文中描述某些實(shí)施例,但所屬領(lǐng)域的技術(shù)人員將了解,本文中所揭示的系統(tǒng)和方法可適用于任何合適的視頻譯碼標(biāo)準(zhǔn)。舉例來說,本文中所公開的實(shí)施例可適用于以下標(biāo)準(zhǔn)中的一或多者:國際電信聯(lián)盟(ITU)電信標(biāo)準(zhǔn)化部門(ITU-T)H.261、國際標(biāo)準(zhǔn)化組織/國際電工委員會(ISO/IEC)移動圖像專家組-1(MPEG-1)Visual、ITU-T H.262或ISO/IEC MPEG-2Visual、ITU-T H.263、ISO/IEC MPEG-4Visual、ITU-T H.264(也稱為ISO/IEC MPEG-4AVC)、高效率視頻譯碼(HEVC),以及此類標(biāo)準(zhǔn)的任何擴(kuò)展。并且,本發(fā)明中描述的技術(shù)可變?yōu)閷黹_發(fā)的標(biāo)準(zhǔn)的一部分。換句話說,本發(fā)明中描述的技術(shù)可適用于先前開發(fā)的視頻譯碼標(biāo)準(zhǔn)、當(dāng)前正在開發(fā)的視頻譯碼標(biāo)準(zhǔn)及即將出現(xiàn)的視頻譯碼標(biāo)準(zhǔn)。
視頻譯碼標(biāo)準(zhǔn)
例如視頻圖像、TV圖像、靜態(tài)圖像或由錄像機(jī)或計(jì)算機(jī)產(chǎn)生的圖像的數(shù)字圖像可包含布置成水平和垂直線的像素或樣本。單個(gè)圖像中的像素的數(shù)目通常有數(shù)萬個(gè)。每一像素通常含有明度和色度信息。在無壓縮的情況下,將從圖像編碼器傳送到圖像解碼器的信息的絕對量將致使實(shí)時(shí)圖像發(fā)射不可行。為了減少待發(fā)射的信息的量,已開發(fā)出例如JPEG、MPEG及H.263標(biāo)準(zhǔn)等數(shù)個(gè)不同壓縮方法。
視頻譯碼標(biāo)準(zhǔn)包含ITU-T H.261、ISO/IEC MPEG-1Visual、ITU-T H.262或ISO/IEC MPEG-2Visual、ITU-T H.263、ISO/IEC MPEG-4Visual、ITU-T H.264(也稱為ISO/IEC MPEG-4AVC),以及包含此類標(biāo)準(zhǔn)的擴(kuò)展的HEVC。
此外,視頻譯碼標(biāo)準(zhǔn)(即,DSC)已由VESA開發(fā)。DSC標(biāo)準(zhǔn)為可壓縮視頻以供經(jīng)由顯示鏈路傳輸?shù)囊曨l壓縮標(biāo)準(zhǔn)。隨著顯示器的分辨率增大,驅(qū)動顯示器需要的視頻數(shù)據(jù)的帶寬對應(yīng)地增大。針對此類分辨率,一些顯示鏈路可能不具有帶寬來將所有視頻數(shù)據(jù)傳輸?shù)斤@示器。因此,DSC標(biāo)準(zhǔn)指定用于通過顯示鏈路的可互操作、視覺無損壓縮的壓縮標(biāo)準(zhǔn)。
DSC標(biāo)準(zhǔn)不同于其它視頻譯碼標(biāo)準(zhǔn),例如,H.264和HEVC。DSC包含幀內(nèi)壓縮,但不包含幀間壓縮,這意味著DSC標(biāo)準(zhǔn)在譯碼視頻數(shù)據(jù)時(shí)不可使用時(shí)間信息。相比之下,其它視頻譯碼標(biāo)準(zhǔn)可在其視頻譯碼技術(shù)中使用幀間壓縮。
視頻譯碼系統(tǒng)
下文參考附圖更充分地描述新穎系統(tǒng)、設(shè)備及方法的各個(gè)方面。然而,本發(fā)明可以許多不同形式來體現(xiàn),且不應(yīng)將其解釋為限于貫穿本發(fā)明所呈現(xiàn)的任何特定結(jié)構(gòu)或功能。相反地,提供這些方面以使得本發(fā)明將透徹且完整,并且將向所屬領(lǐng)域的技術(shù)人員充分傳達(dá)本發(fā)明的范圍?;诒疚闹械慕淌荆鶎兕I(lǐng)域的技術(shù)人員應(yīng)了解,本發(fā)明的范圍既定涵蓋無論是獨(dú)立于本發(fā)明的任何其它方面而實(shí)施還是與之組合而實(shí)施的本文中所揭示的新穎系統(tǒng)、設(shè)備及方法的任何方面。舉例來說,可以使用本文中所闡述的任何數(shù)目個(gè)方面來實(shí)施設(shè)備或?qū)嵺`方法。另外,本發(fā)明的范圍既定涵蓋使用除本文中所闡述的本發(fā)明的各種方面之外的或不同于本文中所闡述的本發(fā)明的各種方面的其它結(jié)構(gòu)、功能性或結(jié)構(gòu)與功能性來實(shí)踐的此設(shè)備或方法。應(yīng)理解,可通過權(quán)利要求的一或多個(gè)要素來體現(xiàn)本文中所公開的任何方面。
盡管本文描述了特定方面,但這些方面的許多變化及排列落在本發(fā)明的范圍內(nèi)。盡管提及了優(yōu)選方面的一些益處及優(yōu)點(diǎn),但本發(fā)明的范圍不希望限于特定益處、用途或目標(biāo)。而是,本發(fā)明的方面既定廣泛地適用于不同無線技術(shù)、系統(tǒng)配置、網(wǎng)絡(luò)及發(fā)射協(xié)議,其中的一些是借助于實(shí)例而在圖中以及在優(yōu)選方面的以下描述中說明。具體實(shí)施方式和圖式僅說明本發(fā)明,而不是限制由所附權(quán)利要求書和其等效物界定的本發(fā)明的范圍。
附圖說明若干實(shí)例。由附圖中的參考標(biāo)號指示的元件對應(yīng)于在以下描述中由相同參考標(biāo)號指示的元件。在本發(fā)明中,名稱以序數(shù)詞(例如,“第一”、“第二”、“第三”等)開始的元件未必暗示所述元件具有特定次序。而是,此些序數(shù)詞僅用于指代相同或類似類型的不同元件。
圖1A為說明可利用根據(jù)本發(fā)明中所描述的方面的技術(shù)的實(shí)例視頻譯碼系統(tǒng)10的框圖。如本文中所描述地使用,術(shù)語“視頻譯碼器”或“譯碼器”一般指視頻編碼器和視頻解碼器兩者。在本發(fā)明中,術(shù)語“視頻譯碼”或“譯碼”可一般地指代視頻編碼和視頻解碼。除了視頻編碼器和視頻解碼器外,本申請案中描述的方面可擴(kuò)展到其它相關(guān)裝置,例如,轉(zhuǎn)碼器(例如,可解碼位流且重新編碼另一位流的裝置)及中間框(例如,可修改、變換及/或另外操縱位流的裝置)。
如圖1A中所示,視頻譯碼系統(tǒng)10包含源裝置12(即,“視頻譯碼裝置12”或“譯碼裝置12”),其產(chǎn)生將在稍后時(shí)間由目的地裝置14(即,“視頻譯碼裝置14”或“譯碼裝置14”)解碼的經(jīng)編碼視頻數(shù)據(jù)。在圖1A的實(shí)例中,源裝置12和目的地裝置14構(gòu)成單獨(dú)裝置。然而,應(yīng)注意,源裝置12和目的地裝置14可在同一裝置上或?yàn)橥谎b置的一部分,如在圖1B的實(shí)例中所展示。
再次參考圖1A,源裝置12和目的地裝置14可分別包括廣泛范圍的裝置(也被稱作視頻譯碼裝置)中的任一者,包含桌上型計(jì)算機(jī)、筆記本(例如,膝上型計(jì)算機(jī))計(jì)算機(jī)、平板計(jì)算機(jī)、機(jī)頂盒、例如所謂的“智能”電話的電話手持機(jī)、所謂的“智能”平板、電視機(jī)、相機(jī)、顯示裝置、數(shù)字媒體播放器、視頻游戲控制臺、視頻流式傳輸裝置或類似物。在各種實(shí)施例中,源裝置12和目的地裝置14可經(jīng)裝備以用于無線通信(即,經(jīng)配置以經(jīng)由無線通信進(jìn)行通信)。
視頻譯碼系統(tǒng)10的視頻譯碼裝置12、14可經(jīng)配置以經(jīng)由無線網(wǎng)絡(luò)和無線電技術(shù)進(jìn)行通信,例如無線廣域網(wǎng)(WWAN)(例如,蜂窩式)和/或無線局域網(wǎng)(WLAN)載波。術(shù)語“網(wǎng)絡(luò)”和“系統(tǒng)”通??苫Q使用。視頻譯碼裝置12、14中的每一者可為用戶設(shè)備(UE)、無線裝置、終端、移動臺、訂戶單元等。
WWAN載波可包含(例如)無線通信網(wǎng)絡(luò),例如碼分多址(CDMA)、時(shí)分多址(TDMA)、頻分多址(FDMA)、正交FDMA(OFDMA)、單載波FDMA(SC-FDMA)和其它網(wǎng)絡(luò)。CDMA系統(tǒng)可實(shí)施例如通用地面無線電接入(UTRA)、CDMA2000等無線電技術(shù)。UTRA包含寬帶CDMA(WCDMA)和CDMA的其它變體。CDMA2000涵蓋IS-2000、IS-95和IS-856標(biāo)準(zhǔn)。TDMA網(wǎng)絡(luò)可以實(shí)施無線電技術(shù),例如全球移動通信系統(tǒng)(GSM)。OFDMA網(wǎng)絡(luò)可實(shí)施例如演進(jìn)型UTRA(E-UTRA)、超移動寬帶(UMB)、IEEE 802.11(Wi-Fi)、IEEE802.16(WiMAX)、IEEE 802.20、Flash-OFDMA等無線電技術(shù)。UTRA和E-UTRA是通用移動電信系統(tǒng)(UMTS)的部分。3GPP長期演進(jìn)(LTE)和LTE高級(LTE-A)為UMTS的使用E-UTRA的新版本。UTRA、E-UTRA、UMTS、LTE、LTE-A及GSM描述于來自名為“第三代合作伙伴計(jì)劃”(3GPP)的組織的文獻(xiàn)中。CDMA2000和UMB描述于來自名為“第三代合作伙伴計(jì)劃2”(3GPP2)的組織的文獻(xiàn)中。
視頻譯碼系統(tǒng)10的視頻譯碼裝置12、14還可根據(jù)例如IEEE 802.11標(biāo)準(zhǔn)等一或多個(gè)標(biāo)準(zhǔn)經(jīng)由WLAN基站彼此通信,包含例如這些修正:802.11a-1999(通常稱為“802.11a”)、802.11b-1999(通常稱為“802.11b”)、802.11g-2003(通常稱為“802.11g”)等。
目的地裝置14可經(jīng)由鏈路16接收待解碼的經(jīng)編碼視頻數(shù)據(jù)。鏈路16可包括能夠?qū)⒔?jīng)編碼視頻數(shù)據(jù)從源裝置12移動到目的地裝置14的任何類型的媒體或裝置。在圖1A的實(shí)例中,鏈路16可包括使得源裝置12能夠?qū)崟r(shí)將經(jīng)編碼視頻數(shù)據(jù)發(fā)射到目的地裝置14的通信媒體??筛鶕?jù)通信標(biāo)準(zhǔn)(例如,無線通信協(xié)議)調(diào)制經(jīng)編碼的視頻數(shù)據(jù),并將其發(fā)射到目的地裝置14。通信媒體可包括任何無線或有線通信媒體,例如射頻(RF)頻譜或一或多個(gè)物理傳輸線。通信媒體可形成分組網(wǎng)絡(luò)(例如,局域網(wǎng)、廣域網(wǎng)或全球網(wǎng)絡(luò),例如因特網(wǎng))的部分。通信媒體可包含路由器、交換機(jī)、基站或可用于促進(jìn)從源裝置12到目的地裝置14的通信的任一其它設(shè)備。
在圖1A的實(shí)例中,源裝置12包含視頻源18、視頻編碼器20和輸出接口22。在一些情況下,輸出接口22可包括調(diào)制器/解調(diào)器(調(diào)制解調(diào)器)和/或發(fā)射器。在源裝置12中,視頻源18可包含諸如以下各者的源:視頻捕獲裝置(例如,攝像機(jī))、含有先前所捕獲的視頻的視頻存檔、用以從視頻內(nèi)容提供者接收視頻的視頻饋送接口及/或用于產(chǎn)生計(jì)算機(jī)圖形數(shù)據(jù)以作為源視頻的計(jì)算機(jī)圖形系統(tǒng),或此類源的組合。作為一個(gè)實(shí)例,如果視頻源18是攝像機(jī),那么源裝置12和目的地裝置14可形成所謂的“相機(jī)電話”或“視頻電話”,如圖1B的實(shí)例中所說明。然而,本發(fā)明中所描述的技術(shù)一般來說可適用于視頻譯碼,且可應(yīng)用于無線和/或有線應(yīng)用。
可由視頻編碼器20對所俘獲、預(yù)俘獲或計(jì)算機(jī)產(chǎn)生的視頻進(jìn)行編碼。經(jīng)編碼視頻數(shù)據(jù)可經(jīng)由源裝置12的輸出接口22發(fā)射到目的地裝置14。經(jīng)編碼視頻數(shù)據(jù)也可(或替代地)存儲到存儲裝置31上以供稍后由目的地裝置14或其它裝置存取以用于解碼和/或重放。圖1A和1B中說明的視頻編碼器20可包括圖2A中說明的視頻編碼器20或本文中所描述的任一其它視頻編碼器。
在圖1A的實(shí)例中,目的地裝置14包含輸入接口28、視頻解碼器30和顯示裝置32。在一些情況下,輸入接口28可包括接收器及/或調(diào)制解調(diào)器。目的地裝置14的輸入接口28可通過鏈路16和/或從存儲裝置31接收經(jīng)編碼視頻數(shù)據(jù)。通過鏈路16傳達(dá)或在存儲裝置31上提供的經(jīng)編碼視頻數(shù)據(jù)可包含由視頻編碼器20產(chǎn)生的多種語法元素,用于由例如視頻解碼器30的視頻解碼器在解碼視頻數(shù)據(jù)時(shí)使用。此類語法元素可與在通信媒體上發(fā)射、存儲于存儲媒體上或存儲文件服務(wù)器的經(jīng)編碼視頻數(shù)據(jù)包含在一起。圖1A和1B中說明的視頻解碼器30可包括圖2B中說明的視頻解碼器30或本文中所描述的任何其它視頻解碼器。
顯示裝置32可與目的地裝置14集成在一起或在目的地裝置14的外部。在一些實(shí)例中,目的地裝置14可包括集成顯示裝置且還可經(jīng)配置以與外部顯示裝置介接。在其它實(shí)例中,目的地裝置14可為顯示裝置。一般來說,顯示裝置32將經(jīng)解碼視頻數(shù)據(jù)顯示給用戶,且可包括多種顯示裝置中的任一者,例如液晶顯示器(LCD)、等離子顯示器、有機(jī)發(fā)光二極管(OLED)顯示器或另一類型的顯示裝置。
在相關(guān)方面中,圖1B展示實(shí)例視頻譯碼系統(tǒng)10′,其中源裝置12和目的地裝置14在裝置11上或?yàn)槠洳糠帧Qb置11可為電話手持機(jī),例如“智能”電話或其類似者。裝置11可包含與源裝置12和目的地裝置14操作性通信的處理器/控制器裝置13(任選地存在)。圖1B的視頻譯碼系統(tǒng)10'和其組件另外類似于圖1A的視頻譯碼系統(tǒng)10和其組件。
視頻編碼器20和視頻解碼器30可根據(jù)視頻壓縮標(biāo)準(zhǔn)(例如,DSC)操作。替代地,視頻編碼器20和視頻解碼器30可根據(jù)其它專有或行業(yè)標(biāo)準(zhǔn)而操作,例如替代地稱為MPEG-4第10部分AVC的ITU-TH.264標(biāo)準(zhǔn)、HEVC或這些標(biāo)準(zhǔn)的擴(kuò)展。但是,本發(fā)明的技術(shù)不限于任何特定譯碼標(biāo)準(zhǔn)。視頻壓縮標(biāo)準(zhǔn)的其它實(shí)例包含MPEG-2和ITU-T H.263。
盡管圖1A和1B的實(shí)例中未展示,但視頻編碼器20和視頻解碼器30可各自與音頻編碼器和解碼器集成,且可包含適當(dāng)?shù)亩嗦窂?fù)用器-多路分用器(MUX-DEMUX)單元或其它硬件和軟件以處置共同數(shù)據(jù)流或單獨(dú)數(shù)據(jù)流中的音頻和視頻兩者的編碼。在一些實(shí)例中,如果適用的話,那么MUX-DEMUX單元可以符合ITU H.223多路復(fù)用器協(xié)議,或例如用戶數(shù)據(jù)報(bào)協(xié)議(UDP)等其它協(xié)議。
視頻編碼器20和視頻解碼器30各自可實(shí)施為多種合適的編碼器電路中的任一者,例如一或多個(gè)微處理器、數(shù)字信號處理器(DSP)、專用集成電路(ASIC)、現(xiàn)場可編程門陣列(FPGA)、離散邏輯、軟件、硬件、固件或其任何組合。當(dāng)部分地用軟件實(shí)施所述技術(shù)時(shí),裝置可將用于所述軟件的指令存儲在合適的非暫時(shí)性計(jì)算機(jī)可讀媒體中且使用一或多個(gè)處理器用硬件執(zhí)行所述指令以執(zhí)行本發(fā)明的技術(shù)。視頻編碼器20和視頻解碼器30中的每一者可包含在一或多個(gè)編碼器或解碼器中,所述編碼器或解碼器中的任一者可集成為相應(yīng)裝置中的組合編碼器/解碼器的部分。
視頻譯碼過程
如上文簡要提及,視頻編碼器20編碼視頻數(shù)據(jù)。視頻數(shù)據(jù)可以包括一或多個(gè)圖片。圖片中的每一者為形成視頻的部分的靜態(tài)圖像。在一些情況下,圖片可被稱作視頻“幀”。當(dāng)視頻編碼器20對視頻數(shù)據(jù)(例如,視頻譯碼層(VCL)數(shù)據(jù)和/或非VCL數(shù)據(jù))進(jìn)行編碼時(shí),視頻編碼器20可產(chǎn)生位流。位流可包含形成視頻數(shù)據(jù)的經(jīng)譯碼表示的位序列。位流可包含經(jīng)譯碼圖片和相關(guān)聯(lián)的數(shù)據(jù)。經(jīng)譯碼的圖片是圖片的經(jīng)譯碼的表示。VCL數(shù)據(jù)可包含經(jīng)譯碼圖片數(shù)據(jù)(即,與經(jīng)譯碼圖片的樣本相關(guān)聯(lián)的信息),且非VCL數(shù)據(jù)可包含與一或多個(gè)經(jīng)譯碼圖片相關(guān)聯(lián)的控制信息(例如,參數(shù)集和/或補(bǔ)充增強(qiáng)信息)。
為了產(chǎn)生位流,視頻編碼器20可對視頻數(shù)據(jù)中的每一圖片執(zhí)行編碼操作。當(dāng)視頻編碼器20對圖片執(zhí)行編碼操作時(shí),視頻編碼器20可產(chǎn)生一系列經(jīng)譯碼圖片和相關(guān)聯(lián)數(shù)據(jù)。相關(guān)聯(lián)數(shù)據(jù)可包含譯碼參數(shù)集合,例如量化參數(shù)(QP)。為了產(chǎn)生經(jīng)譯碼圖片,視頻編碼器20可將圖片分割成大小相等的視頻塊。視頻塊可為樣本的二維陣列。譯碼參數(shù)可定義用于視頻數(shù)據(jù)的每一塊的譯碼選項(xiàng)(例如,譯碼模式)??蛇x擇譯碼選項(xiàng)以便達(dá)成所要的率失真性能。
在一些實(shí)例中,視頻編碼器20可將圖片分割成多個(gè)切片。切片中的每一者可包含圖像(例如,幀)中的空間相異區(qū)域,所述區(qū)域可在無來自所述圖像或幀中的其余區(qū)域的信息的情況下獨(dú)立地解碼。每一圖像或視頻幀可在單一切片中編碼,或每一圖像或視頻幀可在若干切片中編碼。在DSC中,經(jīng)分配以編碼每一切片的位數(shù)目可基本上恒定。作為對圖片執(zhí)行編碼操作的部分,視頻編碼器20可對圖片的每一切片執(zhí)行編碼操作。當(dāng)視頻編碼器20對切片執(zhí)行編碼操作時(shí),視頻編碼器20可產(chǎn)生與切片相關(guān)聯(lián)的經(jīng)編碼數(shù)據(jù)。與切片相關(guān)聯(lián)的經(jīng)編碼數(shù)據(jù)可被稱為“經(jīng)譯碼切片”。
DSC視頻編碼器
圖2A為說明可實(shí)施根據(jù)本發(fā)明中描述的方面的技術(shù)的視頻編碼器20的實(shí)例的框圖。視頻編碼器20可經(jīng)配置以執(zhí)行本發(fā)明的技術(shù)中的一些或全部。在一些實(shí)例中,本發(fā)明中描述的技術(shù)可在視頻編碼器20的各種組件之間共享。在一些實(shí)例中,另外或替代地,處理器(未圖示)可經(jīng)配置以執(zhí)行本發(fā)明中描述的技術(shù)中的一些或全部。
出于解釋的目的,本發(fā)明在DSC譯碼的情況下描述視頻編碼器20。然而,本發(fā)明的技術(shù)可以適用于其它譯碼標(biāo)準(zhǔn)或方法。
在圖2A的實(shí)例中,視頻編碼器20包含多個(gè)功能組件。視頻編碼器20的功能組件包含色彩-空間轉(zhuǎn)換器105、緩沖器110、平度檢測器115、速率控制器120、預(yù)測器、量化器和重構(gòu)器組件125、線緩沖器130、帶索引的色彩歷史135、熵編碼器140、子流多路復(fù)用器145和速率緩沖器150。在其它實(shí)例中,視頻編碼器20可包含更多、更少或不同功能組件。
色彩-空間轉(zhuǎn)換器105可將輸入的色彩-空間轉(zhuǎn)換到在譯碼實(shí)施方案中使用的色彩-空間。舉例來說,在一個(gè)示范性實(shí)施例中,輸入視頻數(shù)據(jù)的色彩-空間在紅、綠和藍(lán)(RGB)色彩-空間中,且以明度Y、色度綠Cg和色度橙Co(YCgCo)色彩-空間實(shí)施譯碼。色彩-空間轉(zhuǎn)換可通過包含移位和添加到視頻數(shù)據(jù)的方法執(zhí)行。應(yīng)注意,可處理其它色彩空間中的輸入視頻數(shù)據(jù),且也可執(zhí)行到其它色彩空間的變換。
在有關(guān)方面中,視頻編碼器20可包含緩沖器110、線緩沖器130和/或速率緩沖器150。舉例來說,緩沖器110可在經(jīng)色彩-空間轉(zhuǎn)換的視頻數(shù)據(jù)由視頻編碼器20的其它部分使用前將其保持。在另一實(shí)例中,視頻數(shù)據(jù)可存儲在RGB色彩-空間中,且可按需要執(zhí)行色彩-空間轉(zhuǎn)換,這是由于經(jīng)色彩-空間轉(zhuǎn)換的數(shù)據(jù)可能需要較多位。
速率緩沖器150可充當(dāng)視頻編碼器20中的速率控制機(jī)制的部分,其將在下文中結(jié)合速率控制器120更詳細(xì)地被描述。編碼每一塊花費(fèi)的位可基本上高度基于所述塊的性質(zhì)而變化。速率緩沖器150可使經(jīng)壓縮視頻的速率變化平穩(wěn)。在一些實(shí)施例中,采用CBR緩沖器模型,其中以CBR從緩沖器取出位。在CBR緩沖器模型中,如果視頻編碼器20將過多的位添加到位流,那么速率緩沖器150可上溢。另一方面,視頻編碼器20必須添加足夠位以便防止速率緩沖器150的下溢。
在視頻解碼器側(cè)上,可以CBR將位添加到視頻解碼器30的速率緩沖器155(見下文進(jìn)一步詳細(xì)描述的圖2B),且視頻解碼器30可針對每一塊移除可變數(shù)目的位。為了確保適當(dāng)解碼,視頻解碼器30的速率緩沖器155在經(jīng)壓縮位流的解碼期間不應(yīng)“下溢”或“上溢”。
如上文所論述,可基于表示當(dāng)前在緩沖器中的位數(shù)目的值BufferCurrentSize和表示速率緩沖器150的大小(即,在任一時(shí)間點(diǎn)可存儲在速率緩沖器150中的最大位數(shù)目)的BufferMaxSize來定義BF。可根據(jù)上方等式1或2計(jì)算BF,但下文描述用于計(jì)算BF的進(jìn)一步方法。
平度檢測器115可檢測視頻數(shù)據(jù)中的復(fù)雜(即,非平坦)區(qū)到視頻數(shù)據(jù)中的平坦(即,簡單或均勻)區(qū)的改變。術(shù)語“復(fù)雜”和“平坦”將在本文中用以大體指視頻編碼器20編碼視頻數(shù)據(jù)的相應(yīng)區(qū)域的困難。因此,如本文中使用的術(shù)語“復(fù)雜”將視頻數(shù)據(jù)的區(qū)域大體描述為視頻編碼器20編碼起來復(fù)雜,且可(例如)包含紋理化的視頻數(shù)據(jù)、高空間頻率和/或編碼起來復(fù)雜的其它特征。如本文中使用的術(shù)語“平坦”將視頻數(shù)據(jù)的區(qū)域大體描述為視頻編碼器20編碼起來簡單,且可(例如)包含視頻數(shù)據(jù)中的平滑梯度、低空間頻率和/或編碼起來簡單的其它特征。復(fù)雜與平坦區(qū)域之間的過渡可由視頻編碼器20用以減少經(jīng)編碼視頻數(shù)據(jù)中的量化假象。具體來說,當(dāng)識別到從復(fù)雜到平坦區(qū)域的過渡時(shí),速率控制器120和預(yù)測器、量化器和重構(gòu)器組件125可減少此類量化假象。
速率控制器120確定譯碼參數(shù)的集合,例如,QP。QP可由速率控制器120基于速率緩沖器150的BF和視頻數(shù)據(jù)的圖像活動來調(diào)整,以便最大化針對目標(biāo)位率的圖片質(zhì)量,這確保速率緩沖器150不上溢或下溢。速率控制器120還選擇用于視頻數(shù)據(jù)的每一塊的特定譯碼選項(xiàng)(例如,特定模式),以便達(dá)成最優(yōu)速率-失真性能。速率控制器120最小化經(jīng)重構(gòu)圖像的失真以使得失真滿足位速率約束,即,總體實(shí)際譯碼速率配合于目標(biāo)位速率內(nèi)。
預(yù)測器、量化器和重構(gòu)器組件125可執(zhí)行視頻編碼器20的至少三個(gè)編碼操作。預(yù)測器、量化器和重構(gòu)器組件125可以許多不同模式執(zhí)行預(yù)測。一個(gè)實(shí)例預(yù)測模式為中值自適應(yīng)預(yù)測的修改版本。中值自適應(yīng)預(yù)測可由無損JPEG標(biāo)準(zhǔn)(JPEG-LS)實(shí)施。可由預(yù)測器、量化器和重構(gòu)器組件125執(zhí)行的中值自適應(yīng)預(yù)測的經(jīng)修改版本可允許三個(gè)連續(xù)樣本值的并行預(yù)測。另一實(shí)例預(yù)測模式為塊預(yù)測。在塊預(yù)測中,從上方線路或同一線路左方中的先前經(jīng)重構(gòu)像素預(yù)測樣本。在一些實(shí)施例中,視頻編碼器20及視頻解碼器30都可對經(jīng)重構(gòu)像素執(zhí)行相同搜索,以確定塊預(yù)測使用情況,且因此,不需要在塊預(yù)測模式中發(fā)送位。在其它實(shí)施例中,視頻編碼器20可執(zhí)行搜索并在所述位流中用信號表示塊預(yù)測向量,使得視頻解碼器30無需執(zhí)行單獨(dú)搜索。也可實(shí)施中點(diǎn)預(yù)測模式,其中使用組件范圍的中點(diǎn)來預(yù)測樣本。中點(diǎn)預(yù)測模式可在甚至最壞情況樣本中實(shí)現(xiàn)對于經(jīng)壓縮視頻需要的位數(shù)的界限。
預(yù)測器、量化器和重構(gòu)器組件125還執(zhí)行量化。舉例來說,可經(jīng)由可使用移位器實(shí)施的冪2量化器執(zhí)行量化。應(yīng)注意,可實(shí)施其它量化技術(shù),代替冪2量化器。由預(yù)測器、量化器和重構(gòu)器組件125執(zhí)行的量化可基于由速率控制器120確定的QP。最后,預(yù)測器、量化器和重構(gòu)器組件125還執(zhí)行重構(gòu),包含將經(jīng)逆量化的殘余加到經(jīng)預(yù)測值和確保結(jié)果不落在樣本值的有效范圍之外。
應(yīng)注意,以上描述的由預(yù)測器、量化器和重構(gòu)器組件125執(zhí)行的預(yù)測、量化和重構(gòu)的實(shí)例方法只是說明性的且可實(shí)施其它方法。還應(yīng)注意,預(yù)測器、量化器和重構(gòu)器組件125可包含用于執(zhí)行預(yù)測、量化和/或重構(gòu)的子組件。進(jìn)一步注意,預(yù)測、量化和/或重構(gòu)可由若干單獨(dú)的編碼器組件代替預(yù)測器、量化器和重構(gòu)器組件125執(zhí)行。
線緩沖器130保持來自預(yù)測器、量化器和重構(gòu)器組件125的輸出以使得預(yù)測器、量化器和重構(gòu)器組件125和帶索引的色彩歷史135可使用所緩沖視頻數(shù)據(jù)。帶索引的色彩歷史135存儲最近使用的像素值。這些最近使用的像素值可由視頻編碼器20經(jīng)由專用語法直接參考。
熵編碼器140基于帶索引的色彩歷史135和由平度檢測器115識別的平度過渡編碼預(yù)測殘余以及從預(yù)測器、量化器和重構(gòu)器組件組件125接收的任何其它數(shù)據(jù)(例如,由預(yù)測器、量化器和重構(gòu)器組件125識別的索引)。在一些實(shí)例中,熵編碼器140可每時(shí)鐘每子流編碼器編碼三個(gè)樣本。子流多路復(fù)用器145可基于無標(biāo)頭包多路復(fù)用方案多路復(fù)用位流。這允許視頻解碼器30并行地運(yùn)行三個(gè)熵解碼器,從而有助于每時(shí)鐘解碼三個(gè)像素。子流多路復(fù)用器145可優(yōu)化分組次序,使得視頻解碼器30可有效地解碼分組。應(yīng)注意,可實(shí)施熵譯碼的不同方法,這可有助于每時(shí)鐘解碼2的冪個(gè)像素(例如,2個(gè)像素/時(shí)鐘或4個(gè)像素/時(shí)鐘)。
DSC視頻解碼器
圖2B是說明可實(shí)施本發(fā)明中描述的方面的技術(shù)的視頻解碼器30的實(shí)例的框圖。視頻解碼器30可經(jīng)配置以執(zhí)行本發(fā)明的技術(shù)中的一些或全部。在一些實(shí)例中,本發(fā)明中描述的技術(shù)可在視頻解碼器30的各種組件之間共享。在一些實(shí)例中,另外或替代地,處理器(未圖示)可經(jīng)配置以執(zhí)行本發(fā)明中描述的技術(shù)中的一些或全部。
出于解釋的目的,本發(fā)明在DSC譯碼的情況下描述視頻解碼器30。然而,本發(fā)明的技術(shù)可以適用于其它譯碼標(biāo)準(zhǔn)或方法。
在圖2B的實(shí)例中,視頻解碼器30包含多個(gè)功能組件。視頻解碼器30的功能組件包含速率緩沖器155、子流多路分用器160、熵解碼器165、速率控制器170、預(yù)測器、量化器和重構(gòu)器組件175、帶索引的色彩歷史180、線緩沖器185和色彩-空間轉(zhuǎn)換器190。視頻解碼器30的說明的組件類似于以上關(guān)于圖2A中的視頻編碼器20描述的對應(yīng)組件。因而,視頻解碼器30的組件中的每一個(gè)可以類似于如上所描述的視頻編碼器20的對應(yīng)組件的方式操作。
DSC中的切片
如上所指出,切片大體指可在不使用來自圖像或幀中的區(qū)域中的其余者的信息的情況下獨(dú)立地解碼的在所述圖像或幀中的空間上截然不同的區(qū)域??稍趩蝹€(gè)切片中編碼每一圖像或視頻幀,或可在數(shù)個(gè)切片中編碼每一圖像或視頻幀。在DSC中,經(jīng)分配以編碼每一切片的位數(shù)目可基本上恒定。切片可由多個(gè)塊構(gòu)成。
速率控制緩沖器
圖3是展示用于對數(shù)據(jù)切片進(jìn)行編碼的示范性過程的曲線圖。參考圖3,垂直軸線305表示當(dāng)前存儲在速率緩沖器(例如,在圖2A中的視頻編碼器20上的速率緩沖器150,或在圖2B中的視頻解碼器30的速率緩沖器155)中的位數(shù)目,且水平軸線310表示時(shí)間。圖3展示視頻數(shù)據(jù)的第一切片315和視頻數(shù)據(jù)的第二切片320的編碼。第二切片320說明為定位于第一切片315下方僅為了展示在第一切片315的編碼和第二切片320的編碼期間發(fā)生的時(shí)間重疊,且并不希望指示第二切片320中的位數(shù)目小于第一切片315中的位數(shù)目。
為了說明性目的,將參考在圖2A中的視頻編碼器20的速率緩沖器150描述本發(fā)明的各方面;然而將理解,這些方面也適用于圖2B的視頻解碼器30或其組件,包含但不限于速率緩沖器155。
應(yīng)注意速率緩沖器150可能夠保持(即,存儲)僅有限的位數(shù)目。如上文所論述,變量BufferMaxSize可表示速率緩沖器的總體容量。然而,為了防止速率緩沖器150處的下溢和/或上溢,將速率緩沖器150限制于比BufferMaxSize低的位數(shù)目是有利的。因此,可針對速率緩沖器150界定臨時(shí)最大位層級(由變量tempBufferMaxSize和maxBufferBitsAtSliceEnd表示)以反映速率緩沖器150的所需容量。
在325,第一切片315的編碼開始。在編碼期間,位可存儲在速率緩沖器150中,且先前存儲到速率緩沖器150的位可從速率緩沖器150移除。舉例來說,可發(fā)射(例如,由源裝置12在鏈路16上)從速率緩沖器150移除的位。因此,由于將位存儲到速率緩沖器150和/或從速率緩沖器150移除位的操作,速率緩沖器150中的總位數(shù)目可能在各種時(shí)間點(diǎn)增加和/或減小。在一些情況下,位可分組在一起用于編碼、發(fā)射等。舉例來說,位可作為像素(例如,每像素六個(gè)位)或塊(例如,針對2x8塊大小每塊96位,其中每像素6位)而發(fā)射。
在330,所存儲位的發(fā)射開始。發(fā)射可在延遲初始編碼延遲周期之后開始,圖3中指示為Init_enc_delay。Init_enc_delay可以塊或像素來測量,且可為所選和/或固定值或可針對每一切片計(jì)算。在實(shí)施例中,Init_enc_delay可基于maxBufferBitsAtSliceEnd。舉例來說,如果maxBufferBitsAtSliceEnd是4128且Init_enc_delay是以塊來測量,那么Init_enc_delay可為4128除以每塊的目標(biāo)位數(shù)目(例如,96)。這可完成以使得在第一切片315已完全經(jīng)解碼之后緩沖器150可從第一切片315發(fā)射剩余塊。
繼續(xù)參考圖3,在335,可完成第一切片315的編碼。即,在335,緩沖器150中的位數(shù)目應(yīng)當(dāng)?shù)扔趍axBufferBitsAtSliceEnd。舉例來說,如果maxBufferBitsAtSliceEnd是4128,那么當(dāng)?shù)谝磺衅?15的編碼完成時(shí),緩沖器150中的位數(shù)目在事件335處應(yīng)當(dāng)?shù)扔?128。在340,第一切片315的發(fā)射完成。如圖3中所展示,用于第一切片315的編碼的結(jié)束335可對應(yīng)于用于第二切片320的編碼的開始,而用于第一切片315的發(fā)射的結(jié)束340對應(yīng)于用于第二切片320的發(fā)射的開始350。Init_enc_delay可選擇為使第一切片315的結(jié)束事件(例如,編碼和發(fā)射的結(jié)束)與第二切片320的開始事件(例如,編碼和發(fā)射的開始)對準(zhǔn)。即,用于第二切片320的Init_enc_delay周期可對應(yīng)于用于第一切片315的清空周期Flush_time。
在實(shí)施例中,可在Init_enc_delay之后以恒定速率從緩沖器150移除位。通過這樣做,可確保在切片結(jié)束時(shí)緩沖器150中的位數(shù)目等于maxBufferBitsAtSliceEnd。此外,可在Flush_time期間以恒定速率從緩沖器150移除位。在第二切片320的Init_enc_delay周期結(jié)束之后從緩沖器150移除來自第二切片320的壓縮塊。
BF計(jì)算
假定maxBufferBitsAtSliceEnd小于BufferMaxSize,基于切片的多少已經(jīng)編碼而調(diào)整BF計(jì)算是有利的。圖4說明用于在切片的譯碼期間調(diào)整BF的示范性方法。為了說明性目的,將參考在圖2A中的視頻編碼器20的速率緩沖器150描述圖4;然而將理解,圖4的組件也適用于圖2B的視頻解碼器30或其組件,包含但不限于速率緩沖器155。
為了計(jì)算BF,可界定變量tempBufferMaxSize,其指示在切片的特定點(diǎn)用于緩沖器150的臨時(shí)最大位數(shù)目。舉例來說,在切片結(jié)束時(shí),tempBufferMaxSize等于maxBufferBitsAtSliceEnd。又一變量Offset指示在給定時(shí)間點(diǎn)BufferMaxSize的多少不可用。
圖4中的曲線圖展示沿著其垂直軸線的偏移405以及切片中的每一塊沿著其水平軸線的位置(即,數(shù)目)。因?yàn)閴K可能按次序經(jīng)譯碼,所以每一個(gè)別塊的位置可等效于經(jīng)譯碼的塊的數(shù)目(下文為numBlocksCoded)。舉例來說,numBlocksCoded的值的范圍可為從0到切片中的塊的總數(shù),表示為NT(即,#blocksInSlice)。在實(shí)施例中,可在調(diào)整BF之前譯碼某一數(shù)目的塊,表示為NP。即,雖然numBlocksCoded小于或等于NP,但偏移405等于零且tempBufferMaxSize等于BufferMaxSize,如在420指示。在實(shí)施例中,NP可提供閾值位置,以使得具有處于或低于NP的位置的塊可具有等于BufferMaxSize的tempBufferMaxSize,而具有高于NP的位置的塊可具有小于BufferMaxSize的tempBufferMaxSize。如圖4中所展示,tempBufferMaxSize的值可隨著高于NP的每一后續(xù)塊線性地減小。即,具有在NP之后的位置的塊可具有唯一相應(yīng)tempBufferMaxSize,其大于切片中的任何后續(xù)塊的tempBufferMaxSize。換句話說,具有在NP之后的位置的塊可具有等于可調(diào)整值的tempBufferMaxSize,所述可調(diào)整值針對NP與NT之間的每一塊遞減,如圖4中所說明。
繼續(xù)參考圖4,示范性切片中的塊的總數(shù)目表示為NT。因此,當(dāng)numBlocksCoded等于NT時(shí),tempBufferMaxSize應(yīng)當(dāng)?shù)扔趍axBufferBitsAtSliceEnd;換句話說,偏移405應(yīng)當(dāng)?shù)扔贛axBufferSize減maxBufferBitsAtSliceEnd。舉例來說,如果maxBufferBitsAtSliceEnd是4128,那么tempBufferMaxSize在NT應(yīng)當(dāng)?shù)扔?128且偏移405應(yīng)當(dāng)?shù)扔贛axBufferSize減4128,如在426指示。
為了實(shí)現(xiàn)此情況,可在numBlocksCoded=NP與numBlocksCoded=NT之間以表示為BR的恒定速率調(diào)整tempBufferMaxSize和偏移405。NP與NT之間的差在圖3中表示為NR。BR形成點(diǎn)(numBlocksCoded=NP,偏移=0)與(numBlocksCoded=NT,偏移=bufferMaxSize減maxBufferBitsAtSliceEnd)之間的線。舉例來說,如果maxBufferBitsAtSliceEnd是4128,那么BR可經(jīng)界定為(maxBufferSize-4128)/NR。沿著BR的示范性點(diǎn)的偏移405和tempBufferMaxSize的值在422和424說明。
以此方式,沿著BR的點(diǎn)可提供切片的個(gè)別塊的對應(yīng)tempBufferMaxSize。對應(yīng)tempBufferMaxSize接著可用以計(jì)算切片中的每一塊的個(gè)別BF。在實(shí)施例中,切片中的塊可基于其在切片內(nèi)的位置而界定。
在實(shí)施例中,上方等式1和2可用以針對切片內(nèi)定位在處于或低于NP的塊計(jì)算BF。舉例來說,對于等于2的NP,可針對第一和第二塊根據(jù)等式1和2計(jì)算BF。對于任何剩余塊,可通過用tempBufferMaxSize代替等式1和/或2中的BufferMaxSize而計(jì)算BF。即,可使用下式計(jì)算BF:
BF=((BufferCurrentSize*100)/tempBufferMaxSize) (等式3)
或者使用:
BF=(((BufferCurrentSize*100)+(tempBufferMaxSize>>1))/tempBufferMaxSize) (等式4)
并且,可使用下式計(jì)算tempBufferMaxSize:
tempBufferMaxSize=BufferMaxSize–偏移 (等式5),
其中
偏移=BR*(numBlocksCoded-NP+1) (等式6)
且其中
BR=(BufferMaxSize-tempBufferMaxSize)/(numBlocksCoded-NP) (等式7)
總之,以下示范性代碼可以用于計(jì)算BF:
用于提供CBR的實(shí)例流程圖
參考圖5,將描述用于確定緩沖器(例如,在圖2A中的視頻編碼器20上的速率緩沖器150,或在圖2B中的視頻解碼器30的速率緩沖器155)處的緩沖器滿度的實(shí)例程序。為了說明性目的,將參考在圖2A中的視頻編碼器20的速率緩沖器150描述圖5的步驟。然而,圖5中所說明的步驟可由視頻編碼器(例如,圖2A中的視頻編碼器20)、視頻解碼器(例如,圖2B中的視頻解碼器30)或其組件執(zhí)行。為方便起見,將方法500描述為由視頻編解碼器(還簡稱為譯碼器)執(zhí)行,所述視頻編解碼器可為視頻編碼器20、視頻解碼器30或另一組件。
方法500開始于框501。在框505處,過程500可涉及對數(shù)據(jù)切片內(nèi)的數(shù)據(jù)塊進(jìn)行譯碼。在實(shí)施例中,譯碼可由處理器執(zhí)行。如上文所描述,切片可為在不使用來自圖像或幀中的區(qū)域中的其余者的信息的情況下獨(dú)立地解碼的在所述圖像或幀中的空間上截然不同的區(qū)域。切片可由一或多個(gè)塊和/或像素構(gòu)成。
在框510處,過程500可涉及將對應(yīng)于所述塊的一或多個(gè)位存儲在速率緩沖器150中。舉例來說,塊可經(jīng)壓縮且對應(yīng)位可臨時(shí)存儲在速率緩沖器150中。在實(shí)施例中,個(gè)別位可在經(jīng)譯碼之后添加到緩沖器150。在一替代實(shí)施例中,可同時(shí)將多個(gè)位添加到緩沖器150。
在框515處,過程500可涉及確定指示所述一或多個(gè)塊相對于切片中的其它塊的位置的信息。舉例來說,可確定給定塊是第三經(jīng)譯碼塊,且此塊可經(jīng)界定為所述切片的第三塊。通過確定塊的位置,可確定切片中經(jīng)先前譯碼塊的數(shù)目和/或切片中尚待譯碼的塊的數(shù)目。在實(shí)施例中,確定指示所述位置的信息可由處理器執(zhí)行。
在框520處,過程500可涉及確定在一或多個(gè)塊位置處的BF。此確定可以用于速率控制。舉例來說,參考圖4,塊的定位可指示與所述塊相關(guān)聯(lián)的沿著BR的點(diǎn)。為了確定此情況,可能必須知道可以用于計(jì)算BR的maxBufferBitsAtSliceEnd。沿著BR的相關(guān)聯(lián)位置可指示塊的對應(yīng)tempBufferMaxSize。隨后,可通過將BufferCurrentSize除以塊的tempBufferMaxSize而計(jì)算BF。在實(shí)施例中,確定BF可由處理器執(zhí)行。過程500在框525處結(jié)束。
在實(shí)施例中,可將tempBufferMaxSize調(diào)整整數(shù)值c。舉例來說,可使用下式計(jì)算tempBufferMaxSize:
tempBufferMaxSize=BufferMaxSize-(BR*(numBlocksCoded-NP+c)) (等式8)
在一個(gè)實(shí)例中,c可等于0、1、-1或任何其它整數(shù)值。在另一實(shí)施例中,可將BR調(diào)整整數(shù)值d。舉例來說,可使用下式計(jì)算BR:
BR=(BufferMaxSize-maxBufferBitsAtSliceEnd)/(NT-NP+d) (等式9)
其中d可等于0、1、-1或任何其它整數(shù)值。也可以對上方等式的其它變量做出類似調(diào)整。
其它考慮
可使用多種不同技術(shù)和技藝中的任一者來表示本文中所揭示的信息和信號。舉例來說,可通過電壓、電流、電磁波、磁場或磁粒子、光場或光粒子或其任何組合來表示在整個(gè)上文描述中可能參考的數(shù)據(jù)、指令、命令、信息、信號、位、符號和碼片。
結(jié)合本文揭示的實(shí)施例所描述的各種說明性邏輯塊及算法步驟可實(shí)施為電子硬件、計(jì)算機(jī)軟件,或兩者的組合。為清楚說明硬件與軟體的此可互換性,上文已大體上關(guān)于其功能性而描述了各種說明性組件、塊和步驟。此功能性是實(shí)施為硬件還是軟件取決于特定應(yīng)用及施加于整個(gè)系統(tǒng)的設(shè)計(jì)約束。熟練的技術(shù)人員可針對每一特定應(yīng)用以不同方式實(shí)施所描述的功能性,但此類實(shí)施決策不應(yīng)被解釋為引起偏離本發(fā)明的范圍。
本文中所描述的技術(shù)可在硬件、軟件、固件或其任一組合中實(shí)施。所述技術(shù)可實(shí)施于多種裝置中的任一者中,例如通用計(jì)算機(jī)、無線通信裝置手持機(jī)或集成電路裝置,其具有包含在無線通信裝置手持機(jī)及其它裝置中的應(yīng)用的多種用途。被描述為裝置或組件的任何特征可一起實(shí)施于集成邏輯裝置中或分開實(shí)施為離散但可互操作的邏輯裝置。如果以軟件實(shí)施,那么所述技術(shù)可至少部分地由包括程序代碼的計(jì)算機(jī)可讀數(shù)據(jù)存儲媒體來實(shí)現(xiàn),所述程序代碼包含在執(zhí)行時(shí)執(zhí)行上文所描述的方法中的一或多者的指令。計(jì)算機(jī)可讀數(shù)據(jù)存儲媒體可形成計(jì)算機(jī)程序產(chǎn)品的一部分,所述計(jì)算機(jī)程序產(chǎn)品可包含封裝材料。計(jì)算機(jī)可讀媒體可包括存儲器或數(shù)據(jù)存儲媒體,例如,隨機(jī)存取存儲器(RAM)(例如,同步動態(tài)隨機(jī)存取存儲器(SDRAM))、只讀存儲器(ROM)、非易失性隨機(jī)存取存儲器(NVRAM)、電可擦除可編程只讀存儲器(EEPROM)、快閃存儲器、磁性或光學(xué)數(shù)據(jù)存儲媒體等等。另外或作為替代,所述技術(shù)可至少部分地由計(jì)算機(jī)可讀通信媒體來實(shí)現(xiàn),所述計(jì)算機(jī)可讀通信媒體以指令或數(shù)據(jù)結(jié)構(gòu)的形式載運(yùn)或傳達(dá)程序代碼且可由計(jì)算機(jī)存取、讀取和/或執(zhí)行(例如,傳播的信號或波)。
程序代碼可由處理器執(zhí)行,所述處理器可包含一或多個(gè)處理器,例如,一或多個(gè)數(shù)字信號處理器(DSP)、通用微處理器、專用集成電路(ASIC)、現(xiàn)場可編程邏輯陣列(FPGA)或其它等效集成或離散邏輯電路。此處理器可經(jīng)配置以執(zhí)行本發(fā)明中所描述的技術(shù)中的任一者。通用處理器可為微處理器;但在替代方案中,處理器可為任何常規(guī)處理器、控制器、微控制器或狀態(tài)機(jī)。處理器還可實(shí)施為計(jì)算裝置的組合,例如,DSP與微處理器的組合、多個(gè)微處理器、一或多個(gè)微處理器結(jié)合DSP核心,或任何其它此類配置。因此,如本文中所使用的術(shù)語“處理器”可指前述結(jié)構(gòu)中的任一者、上述結(jié)構(gòu)的任何組合,或適合于實(shí)施本文中所描述的技術(shù)的任何其它結(jié)構(gòu)或設(shè)備。另外,在某些方面中,可將本文中所描述的功能性提供于經(jīng)配置以用于編碼和解碼的專用軟件或硬件內(nèi)或并入組合的視頻編碼器-解碼器(編解碼器)中。而且,所述技術(shù)可完全實(shí)施于一或多個(gè)電路或邏輯元件中。
本發(fā)明的技術(shù)可在廣泛多種裝置或設(shè)備中實(shí)施,包括無線手持機(jī)、集成電路(IC)或一組IC(例如,芯片組)。本發(fā)明中描述各種組件或單元是為了強(qiáng)調(diào)經(jīng)配置以執(zhí)行所揭示技術(shù)的裝置的功能方面,但未必需要通過不同硬件單元實(shí)現(xiàn)。實(shí)際上,如上文所描述,各種單元可以配合合適的軟件和/或固件組合在編解碼器硬件單元中,或者通過互操作硬件單元的集合來提供,所述硬件單元包含如上文所描述的一或多個(gè)處理器。
雖然已經(jīng)結(jié)合各種不同實(shí)施例描述了前文,但可在不脫離本發(fā)明的教示的情況下將來自一項(xiàng)實(shí)施例的特征或元件與其他實(shí)施例組合。然而,相應(yīng)實(shí)施例之間的特征的組合不必限于此。已經(jīng)描述本發(fā)明的各種實(shí)施例。這些及其它實(shí)施例在所附權(quán)利要求書的范圍內(nèi)。