使用系數(shù)壓縮進(jìn)行解碼的裝置和方法
【專利摘要】本發(fā)明提供在圖形解碼中使用系數(shù)壓縮的方法和裝置。在一個(gè)實(shí)施例中,計(jì)算機(jī)處理單元(CPU)與圖形處理單元(GPU)通過接口連接,其中所述CPU提取系數(shù)并且將經(jīng)過壓縮的系數(shù)數(shù)據(jù)優(yōu)選以均勻大小的數(shù)據(jù)包的形式傳遞至所述GPU進(jìn)行解碼和系數(shù)處理。優(yōu)選地,所述所提取的系數(shù)是反變換(iT)系數(shù)且CPU包括編碼器控制組件,所述編碼器控制組件被配置來自適應(yīng)地選擇系數(shù)編碼程序用于基于所述iT系數(shù)的數(shù)據(jù)內(nèi)容執(zhí)行iT系數(shù)數(shù)據(jù)壓縮從而產(chǎn)生數(shù)據(jù)包,所述數(shù)據(jù)包包括識(shí)別用于對(duì)所述數(shù)據(jù)包中所包含的所述經(jīng)過壓縮的iT系數(shù)數(shù)據(jù)進(jìn)行編碼的所述所選擇的系數(shù)編碼程序的數(shù)據(jù)。在此情況下,所述GPU被配置來接收這些數(shù)據(jù)包并且使用作為所述包內(nèi)所識(shí)別的所述所選擇的系數(shù)編碼程序的補(bǔ)充的系數(shù)解碼方法在每個(gè)包內(nèi)對(duì)所述iT系數(shù)數(shù)據(jù)進(jìn)行解碼。所述GPU優(yōu)選地使用這些數(shù)據(jù)包的大規(guī)模平行系數(shù)解碼。
【專利說明】使用系數(shù)壓縮進(jìn)行解碼的裝置和方法
[0001]相關(guān)申請(qǐng)的交叉引用
[0002]本申請(qǐng)案要求2011年7月19日申請(qǐng)的美國非臨時(shí)申請(qǐng)案13/186,007的權(quán)利,該案內(nèi)容以引用的方式并入本文中。
【技術(shù)領(lǐng)域】
[0003]本發(fā)明大體上涉及對(duì)圖形/視頻進(jìn)行解碼且具體而言涉及共享圖形解碼的集成電路(諸如中央處理器(CPU)和圖形處理單元(GPU))和相關(guān)方法。
【背景技術(shù)】
[0004]已開發(fā)圖形處理單元(GPU)協(xié)助計(jì)算機(jī)生成圖像和視頻的高效顯示。通常,與計(jì)算機(jī)中央處理器(CPU)相關(guān)的二維(2D)和/或三維(3D)引擎會(huì)將圖像和視頻呈現(xiàn)為存儲(chǔ)在系統(tǒng)存儲(chǔ)器的幀緩沖器中的數(shù)據(jù)。GPU將協(xié)助CPU以所選擇的方式處理數(shù)據(jù)以提供所要類型的視頻信號(hào)輸出。
[0005]已開發(fā)用于對(duì)編碼視頻進(jìn)行解碼并且生成適于驅(qū)動(dòng)顯示裝置的信號(hào)(諸如DAC(數(shù)字-模擬轉(zhuǎn)換器)、DVI (數(shù)字視頻接口)或HDMI (高清晰度多媒體接口)信號(hào))的各種CPU/GPU工作共享系統(tǒng)。從計(jì)算裝置首次用于對(duì)DVD-視頻進(jìn)行解碼時(shí)開始,就已存在圖形處理功能的劃分,其中CPU對(duì)視頻流的某些部分(諸如MPEG-2流)進(jìn)行解碼而GPU進(jìn)行其余處理以提供適于顯示裝置的格式化輸出。最初,GPU將主要用于處理色彩空間轉(zhuǎn)換(YUV至RGB)并且從原始編碼大小伸縮以適于顯示器的所需窗口或全屏。隨后,GPU開始處理運(yùn)動(dòng)補(bǔ)償(MO功能,因?yàn)檫@些功能屬于存儲(chǔ)帶寬密集型。具有經(jīng)過擴(kuò)展的能力的GPU的早期實(shí)施例是 1997 年開發(fā)并且由 ATI Technologies, Inc 銷售的 RagePro GPU。
[0006]一種用于給圖形/視頻編碼的常見方法涉及使用離散余弦變換(DCT)處理的編碼,所以經(jīng)過編碼的視頻內(nèi)容被轉(zhuǎn)化為DCT系數(shù)。為了對(duì)這類編碼視頻進(jìn)行播放/解碼,使用反離散余弦變換(iDCT)處理是必要步驟之一。
[0007]對(duì)于視頻的MPEG-2編碼,視頻首先被定義為由YUV值表示的像素且隨后針對(duì)YUV像素?cái)?shù)據(jù)塊執(zhí)行DCT處理以形成DCT系數(shù)塊,所述DCT系數(shù)塊量化且隨后使用形成通常也包括運(yùn)動(dòng)矢量以及音頻數(shù)據(jù)的MPEG-2編碼位流的許多視頻數(shù)據(jù)的可變長度碼(VLC)進(jìn)行熵編碼。為了對(duì)這樣一種MPEG-2位流的視頻進(jìn)行解碼,針對(duì)VLC編碼數(shù)據(jù)的程序必須反轉(zhuǎn),但是因編碼量化程序未完全反轉(zhuǎn)而以一定的數(shù)據(jù)質(zhì)量損失作為犧牲。
[0008]通常,除處理MPEG-2位流的其他分量外,計(jì)算機(jī)的CPU將執(zhí)行可變長度碼解碼(VLD)和反量化以得出與隨后必須進(jìn)行iDCT處理的原始DCT系數(shù)密切對(duì)應(yīng)的反離散余弦變換(iDCT)系數(shù)。為了進(jìn)一步減小對(duì)視頻進(jìn)行解碼時(shí)CPU的處理負(fù)荷,已將iDCT計(jì)算的執(zhí)行轉(zhuǎn)移至GPU。1998年至1999年,由于提供高質(zhì)量MPEG-2解碼用于在具有被稱作DXVA(DirectX視頻加速)的接口的Windows PC上播放DVD的高需求,Microsoft將CPU-GPU接口標(biāo)準(zhǔn)化。這種界面是被稱作DirectX的通用圖形芯片應(yīng)用編程接口(API)的一部分。有關(guān) DXVA 接 口 的信息可在 Microsoft 網(wǎng)站上獲得:http://msdn.microsoft.com/en-us/Iibrary/ff568238 (v=vs.85).aspx,其中提到:
[0009]DirectX VA接口支持處理低級(jí)反離散余弦變換(iDCT)的不同方式。存在兩種基本類型的操作:
[0010]1.主機(jī)外iDCT:將轉(zhuǎn)換系數(shù)的宏塊傳遞至加速器進(jìn)行外部iDCT、圖像重建和重建裁剪。
[0011]2.基于主機(jī)的iDCT:在主機(jī)上執(zhí)行iDCT并且將空間域結(jié)果塊傳遞至加速器進(jìn)行外部圖像重建和重建裁剪。
[0012]在兩種情況下,在主機(jī)上執(zhí)行基本的反量化程序、iDCT前范圍飽和、MPEG-2失配控制(若需要)和DC內(nèi)部偏移(若需要)。在兩種情況下,最后的圖像重建和重建裁剪在加速器上完成。
[0013]圖1提供經(jīng)由標(biāo)準(zhǔn)DXVA接口耦合至GPU的CPU的圖,其中GPU執(zhí)行iDCT處理。如圖1所示,CPU處理MPEG-2編碼視頻以提取iDCT系數(shù)并且經(jīng)由iDCT系數(shù)數(shù)據(jù)接口 100(諸如耦合在個(gè)人計(jì)算機(jī)主板上的數(shù)據(jù)總線)將iDCT系數(shù)的宏塊傳遞至GPU進(jìn)行iDCT處理。CPU也傳遞運(yùn)動(dòng)矢量列表和與顯示順序邏輯和相關(guān)視頻相關(guān)的各種其他數(shù)據(jù)項(xiàng)。但是,iDCT系數(shù)構(gòu)成傳遞至GPU進(jìn)行視頻處理的數(shù)據(jù)的絕大部分,因?yàn)閕DCT系數(shù)包含用于界定視頻的每個(gè)幀的每個(gè)像素的顯示特性的信息。
[0014]DXVA (和類似DXVA)插口圍繞使用解碼處理用于視頻實(shí)時(shí)播放的概念設(shè)計(jì),其中(PU將一部分工作轉(zhuǎn)移給GPU。DXVA接口適用于經(jīng)過處理按典型的三十(30)幀/秒速率顯示的相對(duì)較低分辨率視頻。近些年來,分辨率已從DVD分辨率(720x480像素)增至HDTV(1920x1080像素)。目前,GPU甚至可能需要針對(duì)各種編解碼器按1920x1080處理全位流解碼以支持可能也具有雙流或PIP (畫中畫)能力的藍(lán)光電影播放。
[0015]除滿足由更高分辨率形成的處理需求以外,還需要按更高幀率(諸如大于實(shí)時(shí)十倍或更高)進(jìn)行解碼。例如,更高幀率可用于將一種格式的代碼轉(zhuǎn)換成另一種格式、流暢的超快快進(jìn)顯示、針對(duì)流暢快進(jìn)的傳輸順序和顯示順序轉(zhuǎn)換、120Hz及240Hz顯示器上的流暢快進(jìn)、視頻編輯(尤其在多個(gè)視頻流合并成一個(gè)最終流時(shí))和視頻檢索算法(諸如針對(duì)面部或目標(biāo)檢測(cè))。
[0016]已通過使用包括被稱作著色器的處理組件的SMD處理引擎的配置開發(fā)具有擴(kuò)展的處理功能的GPU。例如,圖2圖示了現(xiàn)有技術(shù)GPU,即ATI Radeon HD5800系列GPU。Radeon HD5800系列GPU具有大約2.72TeraFL0PS的處理能力。所述GPU具有20個(gè)SMD引擎,每個(gè)引擎具有16個(gè)處理器(著色器),即320個(gè)著色器。RadeonHD5800系列GPU也具有80個(gè)紋理單元(每個(gè)SMD引擎4個(gè))和一個(gè)提供大約150+GB/秒峰值帶寬的圖形雙倍數(shù)據(jù)率(⑶DR)存儲(chǔ)接口。
[0017]在傳統(tǒng)的DXVA接口中,iDCT系數(shù)通常使用每個(gè)系數(shù)32位發(fā)送。
【發(fā)明者】已承認(rèn)將幀率增大為例如實(shí)時(shí)顯示速度的10倍或100倍或更大會(huì)產(chǎn)生嚴(yán)重的存儲(chǔ)帶寬瓶頸。
【發(fā)明內(nèi)容】
[0018]提供將系數(shù)壓縮用于圖形解碼的方法和裝置。在一個(gè)實(shí)施例中,計(jì)算機(jī)處理單元(CPU)與圖形處理單元(GPU)通過接口連接以對(duì)視頻或其他圖形進(jìn)行解碼,其中CPU壓縮所提取的系數(shù)并且將經(jīng)過壓縮的系數(shù)數(shù)據(jù)傳遞至GPU進(jìn)行解壓縮和處理。優(yōu)選地,反變換(iT)系數(shù)被壓縮編碼成均勻大小的數(shù)據(jù)包,所述數(shù)據(jù)包可逐個(gè)包地解碼以促進(jìn)大規(guī)模的平行系數(shù)解碼。
[0019]示例性CPU可包括編碼器控制組件,該編碼器控制組件被配置來自適應(yīng)地選擇編碼程序以基于iT系數(shù)的數(shù)據(jù)內(nèi)容執(zhí)行iT壓縮使得所選擇的iT系數(shù)編碼程序自適應(yīng)地用于iT系數(shù)編碼。在此情況下,GPU被配置來接收識(shí)別所選擇的iT系數(shù)編碼程序的數(shù)據(jù)以及經(jīng)過壓縮的iT系數(shù)數(shù)據(jù)并且具有被配置來使用作為所選擇的系數(shù)編碼程序的補(bǔ)充的系數(shù)解碼方法對(duì)iT系數(shù)數(shù)據(jù)進(jìn)行解碼的解碼器。
[0020]根據(jù)本發(fā)明制作的組件處理器可被連接來提供分布式圖形解碼裝置。這樣一種裝置可例如包括第一處理單元(諸如CPU)和第二處理單元(諸如GPU)。第一處理單元優(yōu)選地被配置來提取定義圖像數(shù)據(jù)的反變換(iT)系數(shù)并且將iT系數(shù)編碼成經(jīng)過壓縮的iT系數(shù)數(shù)據(jù)。提供被配置來將經(jīng)過壓縮的iT系數(shù)數(shù)據(jù)傳遞至第二處理單元的接口。第二處理單元優(yōu)選地被配置來將經(jīng)過壓縮的iT系數(shù)數(shù)據(jù)解碼成定義圖像數(shù)據(jù)的iT系數(shù)并且進(jìn)行iT系數(shù)的iT處理。
[0021]這樣一種分布式圖形解碼裝置可包括一個(gè)組件,所述組件被配置來自適應(yīng)地選擇編碼程序以基于iT系數(shù)的數(shù)據(jù)內(nèi)容執(zhí)行iT系數(shù)編碼使得所選擇的編碼程序用于系數(shù)編碼。優(yōu)選地,第一處理單元包括自適應(yīng)地選擇所選擇的系數(shù)編碼程序并且被配置成包括用經(jīng)過壓縮的iT系數(shù)數(shù)據(jù)識(shí)別所選擇的系數(shù)編碼程序的數(shù)據(jù)的組件。較佳地,系數(shù)編碼程序定義可獨(dú)立解碼以促進(jìn)第二處理單元中的大規(guī)模平行系數(shù)解碼的均勻大小的數(shù)據(jù)包。
[0022]在另一個(gè)實(shí)施例中,公開一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中存儲(chǔ)由一個(gè)或多個(gè)處理器執(zhí)行以促進(jìn)經(jīng)過選擇性配置的處理單元的制造的一組指令,所述處理單元包括:處理組件,其被配置來生成定義圖像數(shù)據(jù)的反離散余弦變換(iT)系數(shù);和編碼器,其被配置來將iT系數(shù)編碼成經(jīng)過壓縮的iT系數(shù)數(shù)據(jù)以輸出至另一個(gè)集成電路來完成iT處理。
[0023]在另一個(gè)實(shí)施例中,公開一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中存儲(chǔ)由一個(gè)或多個(gè)處理器執(zhí)行以促進(jìn)經(jīng)過選擇性配置的處理單元的制造的一組指令,所述處理單元包括:輸入端,其被配置來接收表示定義圖像數(shù)據(jù)的經(jīng)過編碼的iDCT系數(shù)的經(jīng)過壓縮的反離散余弦變換(iDCT)系數(shù)數(shù)據(jù);解碼器,其被配置來將經(jīng)過壓縮的iDCT系數(shù)數(shù)據(jù)解碼成定義圖像數(shù)據(jù)的iDCT系數(shù);和處理組件,其被配置來對(duì)iDCT系數(shù)進(jìn)行iDCT處理。
[0024]可提供指令組來促進(jìn)相應(yīng)CPU和GPU的制造。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可具有用用于裝置(諸如集成電路)的制造的硬件描述語言(HDL)指令書寫的指令。
【專利附圖】
【附圖說明】
[0025]圖1是具有與傳統(tǒng)圖形處理單元(GPU)通過接口連接的傳統(tǒng)計(jì)算機(jī)處理單元(CPU)的傳統(tǒng)分布式圖形解碼裝置的實(shí)施例的方框圖,其中CPU將iDCT系數(shù)傳遞至GPU進(jìn)行iDCT處理。
[0026]圖2是示例性現(xiàn)有技術(shù)GPU的方框圖。
[0027]圖3是根據(jù)本發(fā)明的實(shí)施方案的分布式圖形解碼裝置的示例性設(shè)計(jì)的方框圖。
[0028]圖4是根據(jù)本發(fā)明的實(shí)施方案的經(jīng)過壓縮的iDCT系數(shù)數(shù)據(jù)的數(shù)據(jù)包格式的實(shí)施例。
[0029]圖5a和圖5b是傳統(tǒng)MPEG-2DCT系數(shù)塊掃描順序編碼圖。[0030]圖6a和圖6b是根據(jù)本發(fā)明的實(shí)施方案的iDCT系數(shù)塊掃描順序編碼圖的實(shí)施例。
[0031]圖6c和圖6d是圖6a和圖6b所示的iDCT系數(shù)塊掃描順序編碼圖的象限的iDCT系數(shù)掃描順序編碼圖的其他替代實(shí)施例。
[0032]圖7a是一系列iDCT系數(shù)內(nèi)的非零iDCT系數(shù)的實(shí)施例。
[0033]圖7b是根據(jù)本發(fā)明的實(shí)施方案的包含圖7a的非零iDCT系數(shù)的所述系列的iDCT系數(shù)的替代iDCT系數(shù)編碼的實(shí)施例。
[0034]圖7c是圖7b的實(shí)施例的系數(shù)編碼的經(jīng)過壓縮的iDCT系數(shù)數(shù)據(jù)的數(shù)據(jù)包格式的實(shí)施例。
[0035]圖8是根據(jù)本發(fā)明的實(shí)施方案的iDCT系數(shù)子塊掃描順序編碼圖的實(shí)施例?!揪唧w實(shí)施方式】
[0036]參考圖3,圖示了分布式圖形解碼裝置30的實(shí)施例。示例性裝置30包括第一處理單元31 (諸如計(jì)算機(jī)處理單元(CPU))和第二處理單元32 (諸如包括iDCT系數(shù)數(shù)據(jù)接口300 (諸如圖1所示的iDCT系數(shù)數(shù)據(jù)接口 100)的圖形處理單元(GPU))。如本領(lǐng)域技術(shù)人員所知,處理單元31和處理單元32的功能(除經(jīng)由傳統(tǒng)通信架構(gòu)連接外)可實(shí)體在單個(gè)包裝內(nèi)或甚至在同一個(gè)模上。第一處理單元31包括圖形/視頻位流解碼處理組件33,所述圖形/視頻位流解碼處理組件33被配置來提取定義圖像數(shù)據(jù)的反離散余弦變換(iDCT)系數(shù)并且執(zhí)行其他傳統(tǒng)功能諸如生成顯示順序邏輯和音頻時(shí)間同步的運(yùn)動(dòng)矢量和數(shù)據(jù)。iDCT系數(shù)的提取可通過傳統(tǒng)方式執(zhí)行,諸如由圖1的現(xiàn)有技術(shù)CPU完成。
[0037]與圖1所示的現(xiàn)有技術(shù)CPU不同,示例性第一處理單元31包括iDCT系數(shù)包編碼器35,所述iDCT系數(shù)包編碼器35被配置來將由處理組件33生成的iDCT系數(shù)壓縮編碼成經(jīng)過壓縮的iDCT系數(shù)數(shù)據(jù)的均勻大小的包。編碼器35通過接口 300(諸如,例如計(jì)算機(jī)主板上的傳統(tǒng)數(shù)據(jù)總線)輸出經(jīng)過壓縮的iDCT系數(shù)數(shù)據(jù)。如本領(lǐng)域技術(shù)人員所知,計(jì)算機(jī)主板可以多種形式存在于多種計(jì)算裝置中,包括但不限于服務(wù)器、筆記本電腦、移動(dòng)裝置(例如,智能手機(jī))、攝像機(jī)、平板電腦等。
[0038]與圖1所示的現(xiàn)有技術(shù)GPU不同,示例性第二處理單元32包括iDCT系數(shù)包解碼器36,所述iDCT系數(shù)包解碼器36具有被配置來經(jīng)由接口 300接收由第一處理單元31的包編碼器35生成的經(jīng)過壓縮的iDCT系數(shù)數(shù)據(jù)的包的輸入端。解碼器36對(duì)經(jīng)過壓縮的iDCT系數(shù)數(shù)據(jù)的包進(jìn)行解碼以重建定義圖像數(shù)據(jù)的iDCT系數(shù)。解碼器隨后將經(jīng)過解碼的iDCT系數(shù)提供給進(jìn)行iDCT系數(shù)的iDCT處理的iDCT處理組件38。由iDCT處理組件38執(zhí)行的iDCT處理可通過與由圖1的GPU執(zhí)行的傳統(tǒng)iDCT處理相同的方式執(zhí)行。
[0039]如下文更全面討論,iDCT系數(shù)包編碼器35可被配置來使用各種系數(shù)編碼方法對(duì)iDCT系數(shù)進(jìn)行壓縮編碼。優(yōu)選地,所產(chǎn)生的包被可單獨(dú)解碼成經(jīng)過識(shí)別的iDCT系數(shù)以允許由第二處理單元32進(jìn)行大規(guī)模的平行系數(shù)解碼解壓縮。例如,第二處理單元32可以是類似于圖2所示的GPU的GPU。在此情況下,解碼器36優(yōu)選地被配置來使用GPU著色器進(jìn)行所接收的經(jīng)過壓縮的iDCT系數(shù)數(shù)據(jù)的包的大規(guī)模平行系數(shù)解碼解壓縮以重建iDCT系數(shù)。通過提供均勻大小的可單獨(dú)解碼的包,可將單獨(dú)包分配給單獨(dú)的著色器線程進(jìn)行平行系數(shù)解碼。
[0040]為了充分利用GPU處理能力和數(shù)據(jù)傳輸總線300,解碼裝置30可包括類似于第一處理單元31的多個(gè)處理單元。例如,每個(gè)這樣的處理單元可以是多核CPU的處理核心。在這樣的實(shí)施例中,多個(gè)CPU核心可執(zhí)行例如相同視頻流的不同部分或不同視頻流的系數(shù)編碼并且被配置來各通過接口 300將經(jīng)過壓縮的系數(shù)數(shù)據(jù)發(fā)送給GPU32。
[0041]可提供一種組件,該組件被配置來自適應(yīng)地選擇編碼程序以基于iDCT系數(shù)的數(shù)據(jù)內(nèi)容執(zhí)行系數(shù)編碼使得所選擇的編碼程序用于系數(shù)編碼。優(yōu)選地,第一處理單元31包括自適應(yīng)地選擇所選擇的系數(shù)編碼程序的組件。例如,處理組件33可被配置來執(zhí)行這種功能。處理組件33隨后可將識(shí)別所選擇的系數(shù)編碼程序的數(shù)據(jù)提供給編碼器35,所述編碼器35接著可包括用所述編碼器35使用所選擇的系數(shù)編碼程序進(jìn)行編碼的經(jīng)過壓縮的iDCT系數(shù)數(shù)據(jù)識(shí)別包中的所選擇的系數(shù)編碼程序的數(shù)據(jù)。[0042]圖像/視頻數(shù)據(jù)傳統(tǒng)上針對(duì)連續(xù)的圖像/視頻幀而產(chǎn)生??捎商幚斫M件33結(jié)合針對(duì)每個(gè)幀生成iDCT系數(shù)而收集壓縮方法統(tǒng)計(jì)數(shù)據(jù)。數(shù)據(jù)壓縮優(yōu)選地定義一系列數(shù)據(jù)包,所述數(shù)據(jù)包對(duì)大致短于幀的iDCT系數(shù)的總大小的整個(gè)幀的iDCT系數(shù)進(jìn)行編碼。
[0043]雖然可以使用針對(duì)一個(gè)幀的所收集的統(tǒng)計(jì)數(shù)據(jù)以針對(duì)每個(gè)幀逐個(gè)包地自適應(yīng)地選擇系數(shù)編碼方法以限制處理所述幀的數(shù)據(jù)所需的時(shí)間量,但是較佳地,這種統(tǒng)計(jì)數(shù)據(jù)用于動(dòng)態(tài)適應(yīng)并且改變后一個(gè)幀的iDCT系數(shù)的壓縮方法。若需要,可針對(duì)多個(gè)幀延遲自適應(yīng)方法改變以防止方法之間和/或在針對(duì)所選擇系列的幀收集到表明需要不同方法的類似統(tǒng)計(jì)數(shù)據(jù)后的觸發(fā)。
[0044]優(yōu)選地選擇系數(shù)編碼和系數(shù)解碼程序使得對(duì)于給定系列的幀,由編碼器35針對(duì)所述系列的幀對(duì)iDCT系數(shù)進(jìn)行系數(shù)編碼所需的時(shí)間Tenc加上將經(jīng)過壓縮的iDCT系數(shù)數(shù)據(jù)從第一處理單元31傳遞至第二處理單元32所需的接口時(shí)間Tic加上由解碼器36對(duì)iDCT系數(shù)進(jìn)行系數(shù)解碼和重建所需的時(shí)間Tdec小于或等于通過接口 300將未壓縮的iDCT系數(shù)從第一處理單元31傳遞至第二處理單元32所需的時(shí)間Tiu。
[0045]Tenc+Tic+Tdec ^ Tiu (等式 I)
[0046]通常,自適應(yīng)方法選擇被配置來針對(duì)各幀實(shí)現(xiàn)與僅傳達(dá)未壓縮iDCT系數(shù)的傳統(tǒng)方法相比充分(非最佳)的時(shí)間節(jié)省。在收集到的統(tǒng)計(jì)數(shù)據(jù)表明無法實(shí)現(xiàn)處理時(shí)間節(jié)省或未壓縮iDCT系數(shù)的傳達(dá)所花時(shí)間較少的情況下,處理組件33可被配置來指示編碼器35放棄系數(shù)編碼并且僅僅將未壓縮iDCT系數(shù)傳遞至第二處理單元32。在此情況下,解碼器36將僅接收并且存儲(chǔ)未壓縮iDCT系數(shù)以供iDCT處理組件38處理。
[0047]在DXVA接口中,未壓縮iDCT系數(shù)的宏塊通常使用每個(gè)系數(shù)32位發(fā)送。傳統(tǒng)的接口可被設(shè)計(jì)成按30幀/秒的幀率(其為正常速度視頻顯示的典型速率)適應(yīng)每個(gè)系數(shù)32位的通信。但是,如果變得需要按高得多的幀率(諸如300幀/秒)處理視頻圖像,那么每個(gè)系數(shù)32位的數(shù)量針對(duì)給定時(shí)間周期增大10倍且接口可能因歸因于接口的存儲(chǔ)帶寬瓶頸而限制圖形處理可實(shí)現(xiàn)的總速度。但是,本發(fā)明可大大提高相同處理器間接口的總處理速度的限制。
[0048]與將未壓縮iDCT系數(shù)格式化成每個(gè)通過處理器間接口發(fā)送的系數(shù)數(shù)據(jù)段32位的時(shí)間相比,iDCT系數(shù)的壓縮編碼花費(fèi)非常少的額外時(shí)間。如上所述,諸如傳統(tǒng)GPU中所有的著色器可有利地用于執(zhí)行處理的系數(shù)解碼以藉由執(zhí)行高效、大規(guī)模平行解壓縮快速重建iDCT系數(shù)。
[0049]在將傳統(tǒng)GPU設(shè)計(jì)用于第二處理單元32時(shí),實(shí)施解碼器36的時(shí)間節(jié)省(或成本)隨設(shè)計(jì)而改變;具有較少著色處理器的設(shè)計(jì)可實(shí)現(xiàn)基本性能,具有較多著色處理器的設(shè)計(jì)可實(shí)現(xiàn)較高性能。
[0050]在由編碼器35執(zhí)行的系數(shù)編碼的第一實(shí)施例中,壓縮流由數(shù)量可根據(jù)幀的相應(yīng)iDCT系數(shù)而逐個(gè)幀地變化的固定大小的包組成。具有固定大小(諸如64字節(jié)、128字節(jié)等)促進(jìn)大規(guī)模的平行解壓縮。因而,解碼器36可被配置來將針對(duì)iDCT系數(shù)重建的每個(gè)接收到的包分配給第二處理單元32內(nèi)的任何可用著色器。在第二處理單元32類似于圖2所示具有可按時(shí)間片方式同時(shí)處理多條線程的320個(gè)著色器的GPU而配置的情況下,多達(dá)2560個(gè)包可同時(shí)解碼,其中每個(gè)著色器被配置來一次同時(shí)處理八條線程。
[0051]優(yōu)選地,第二處理單元32被配置有可被配置來驅(qū)動(dòng)一個(gè)或多個(gè)顯示裝置的多個(gè)輸出端?,F(xiàn)行的標(biāo)準(zhǔn)型輸出端包括用于經(jīng)由模擬視頻圖形陣列(VGA)線驅(qū)動(dòng)許多可購得類型的陰極射線管(CRT)顯示器/平板電視/投影儀的數(shù)字-模擬轉(zhuǎn)換器(DAC)輸出端、用于在許多可購得的數(shù)字顯示裝置(諸如平板顯示器)上提供非常高的視覺質(zhì)量的數(shù)字視頻接口(DVI)輸出端和用作許多高清晰度電視或類似物的未壓縮數(shù)字?jǐn)?shù)據(jù)的小型音頻/視頻接口的高清晰度多媒體接口(HDMI)輸出端。或者或此外,第二處理單元32可包括在具有顯示器的裝置中并且可直接連接以驅(qū)動(dòng)裝置的顯示器。一旦第二處理單元32重建iDCT系數(shù),所述iDCT系數(shù)隨后就可通過傳統(tǒng)方式處理以提供經(jīng)過選擇性格式化的信號(hào)以驅(qū)動(dòng)所要顯示裝置以顯示反映經(jīng)過解碼的系數(shù)的圖像。
[0052]圖4圖示了示例性包格式,其從報(bào)頭開始,隨后是第一系數(shù)段且隨后是許多后續(xù)系數(shù)段以填滿數(shù)據(jù)包,可從所述數(shù)據(jù)包中解碼可變數(shù)量的iDCT系數(shù)。如果數(shù)據(jù)包大小選擇為64個(gè)8位字節(jié),那么報(bào)頭表示4個(gè)字節(jié)且針對(duì)經(jīng)過壓縮的iDCT系數(shù)數(shù)據(jù)存在60個(gè)字節(jié)。針對(duì)圖4的實(shí)施例,每個(gè)系數(shù)段表示2個(gè)字節(jié),所以對(duì)于64個(gè)8位字節(jié)包,將存在第一系數(shù)段,隨后是58個(gè)后續(xù)系數(shù)段。
[0053]具有可變數(shù)量的可解碼iDCT系數(shù)的固定包長度通常意味著數(shù)據(jù)應(yīng)被連續(xù)壓縮,但是允許大規(guī)模的平行系數(shù)解壓縮。如使用對(duì)DCT系數(shù)進(jìn)行編碼,iDCT系數(shù)編碼優(yōu)選地利用許多系數(shù)具有零值的事實(shí)。
[0054]圖4示例性格式的報(bào)頭包括足夠的信息以隨機(jī)針對(duì)任何宏塊(MB)、MB內(nèi)的任何塊、在所述塊內(nèi)的任意iDCT系數(shù)下開始系數(shù)處理。通常,在包含8X8像素塊的視頻數(shù)據(jù)的8X8塊中存在64個(gè)iDCT系數(shù)。所以,示例性報(bào)頭格式提供用于識(shí)別所識(shí)別的塊內(nèi)的第一個(gè)非零iDCT系數(shù)的6個(gè)位。通常,在MB內(nèi)存在6至8個(gè)塊,對(duì)于4:2:OYUV色彩空間,針對(duì)亮度編號(hào)為O至3且針對(duì)色度編號(hào)為4和5以及對(duì)于4:2:2YUV色彩空間,針對(duì)亮度編號(hào)為O至3且針對(duì)色度編號(hào)為4至7。所以,示例性報(bào)頭格式提供用于識(shí)別任一 YUV格式的所識(shí)別的MB內(nèi)的特定塊的3個(gè)位。通過在示例性包格式中提供16個(gè)位用于識(shí)別MB,可提供多達(dá)65535個(gè)ID,其多于足以識(shí)別4000X4000像素顯示器或甚至更高分辨率顯示器的所有MB的ID數(shù)。
[0055]圖4的示例性報(bào)頭還包含5個(gè)位以指示用哪種壓縮模式壓縮包內(nèi)的iDCT系數(shù)數(shù)據(jù)。可存在針對(duì)壓縮選擇的多達(dá)32種壓縮類型。數(shù)據(jù)包的系數(shù)段的格式可取決于所選擇的壓縮類型。圖4圖示了第一實(shí)施例,其中典型12位iDCT系數(shù)的整體的數(shù)據(jù)編碼在數(shù)據(jù)包中。下文參考圖7a至圖7c討論替代實(shí)施例。
[0056]圖4示例性包格式的報(bào)頭以兩個(gè)備用位結(jié)束使得報(bào)頭包含可均勻分成整數(shù)字節(jié)的位大小。
[0057]圖4實(shí)施例的系數(shù)段包括表示iDCT系數(shù)“游程”中許多iDCT系數(shù)的4個(gè)位和針對(duì)12位iDCT系數(shù)值的12個(gè)位。在此情況下;“游程”是其后為非零值iDCT系數(shù)的一系列零值iDCT系數(shù)。對(duì)于第一系數(shù)段,前四個(gè)位是備用的,因?yàn)榈谝粋€(gè)iDCT系數(shù)是由報(bào)頭識(shí)別的開始系數(shù)。對(duì)于后續(xù)系數(shù)段,前四個(gè)位識(shí)別包括下一個(gè)非零值iDCT系數(shù)的游程中iDCT系數(shù)的數(shù)量。在游程中存在14個(gè)或更少零值iDCT系數(shù)的情況下,所述段的后12個(gè)位包含游程中的非零值iDCT系數(shù)的12位iDCT系數(shù)值。在游程中存在15個(gè)或更多零值iDCT系數(shù)的情況下,轉(zhuǎn)義值(諸如前4位中的0000)用于指示所述段的后12位識(shí)別下一個(gè)非零值iDCT系數(shù)前的零值iDCT系數(shù)的數(shù)量。
[0058]壓縮系數(shù)編碼的8X8系數(shù)塊內(nèi)的iDCT系數(shù)編號(hào)順序可基于統(tǒng)計(jì)分析選擇以提供更有效的壓縮。對(duì)于MPEG-2DCT系數(shù)編碼,存在圖5a所示的鋸齒形掃描順序,其用于提高游程長度編碼效率。還存在替代的MPEG-2DCT系數(shù)鋸齒形掃描順序,其對(duì)于圖5b所示的隔行掃描視頻是優(yōu)選的。但是,對(duì)iDCT和DCT系數(shù)進(jìn)行編碼存在使其他編碼順序成為優(yōu)選的差異。
[0059]圖6a和圖6b是根據(jù)本發(fā)明的實(shí)施方案的iDCT系數(shù)塊掃描順序編碼圖的實(shí)施例。在圖6a中,掃描/編碼序列在8X8塊上方拼貼成4個(gè)4x4子塊,所述子塊進(jìn)一步分成4個(gè)2x2段。序列相對(duì)于2x2段、4x4子塊內(nèi)的2x2段和塊內(nèi)的4x4子塊內(nèi)的系數(shù)從左至右,從頂行開始并且繼續(xù)到底行。在圖6中,掃描/編碼序列在8X8塊上方拼貼成4個(gè)4x4子塊。次序相對(duì)于4x4子塊內(nèi)和塊內(nèi)的4x4子塊內(nèi)的系數(shù)從左至右,從頂行開始并且繼續(xù)到底行。圖6c和圖6d分別是圖6a和圖6b所示的iDCT系數(shù)塊掃描順序編碼圖的象限的iDCT系數(shù)掃描順序編碼圖的其他替代實(shí)施例。
[0060]系數(shù)編碼程序的iDCT系數(shù)塊掃描順序分量可基于考慮幀是逐行或隔行編碼而從視頻的前一幀的塊中收集的統(tǒng)計(jì)數(shù)據(jù)選擇。在處理期間,可對(duì)數(shù)據(jù)樣本嘗試多種方法以確定哪種提供最佳結(jié)果。在幀結(jié)束時(shí),整個(gè)統(tǒng)計(jì)數(shù)據(jù)隨后可編譯以例如通過使用某些閾值(即,添加遲滯)而確定更好的系數(shù)編碼替代。如果指示更好的系數(shù)編碼程序,那么可針對(duì)下一幀切換至所述替代系數(shù)編碼程序。
[0061]此外,幀的宏塊(MB)通常在MPEG型編碼中以傳統(tǒng)的光柵掃描順序處理,從左至右,從頂行開始并且進(jìn)行至底行。類似MB解碼處理是優(yōu)選的,但是可通過將輸入的MB劃分成組(諸如行或片)而獲得一定數(shù)量的平行壓縮,其可能因鄰接的存儲(chǔ)緩沖器的一些未使用部分或?qū)Χ鄠€(gè)獨(dú)立存儲(chǔ)緩沖器的需要而產(chǎn)生稍微較低的壓縮比。
[0062]iDCT系數(shù)編碼的另一個(gè)實(shí)施例是將iDCT系數(shù)數(shù)據(jù)劃分為兩個(gè)或更多個(gè)流,使得基礎(chǔ)流僅提供每個(gè)系數(shù)的一些最低有效位且第二流(列)和/或后續(xù)流(列)提供其余的位。這樣一種替代實(shí)現(xiàn)更高的壓縮比,因?yàn)榉浅I俚南禂?shù)具有需用12個(gè)位來表示的值。
[0063]特定實(shí)施例圖示在圖7a至圖7c中,其中針對(duì)系數(shù)編碼/解碼將iDCT系數(shù)數(shù)據(jù)分成二個(gè)流。
[0064]圖7a是8個(gè)非零iDCT系數(shù)的實(shí)施例,85個(gè)iDCT系數(shù)的序列從MB “22”的塊“I”中開始。在這個(gè)樣本數(shù)據(jù)中,8個(gè)非零12位二進(jìn)制值中,6個(gè)可通過僅使用4個(gè)位編碼;I個(gè)需要7個(gè)位;且I個(gè)需要11個(gè)位。這種統(tǒng)計(jì)事實(shí)可用于設(shè)計(jì)針對(duì)系數(shù)編碼將iDCT系數(shù)數(shù)據(jù)劃分成三個(gè)流,即每個(gè)非零iDCT系數(shù)值的4個(gè)最低有效位(LSB)、4個(gè)中間位和4個(gè)最高有效位(MSB)。
[0065]圖7c圖示了這種系數(shù)編碼的示例性包格式。如使用圖4的示例性報(bào)頭,圖7c的示例性報(bào)頭具有16個(gè)位用于識(shí)別MB ;3個(gè)位用于識(shí)別所識(shí)別的MB內(nèi)的特定塊;5個(gè)位用于指示用哪種壓縮模式壓縮包內(nèi)的iDCT系數(shù)數(shù)據(jù);6個(gè)位用于識(shí)別所識(shí)別的塊內(nèi)的第一個(gè)非零iDCT系數(shù)。兩個(gè)備用位使得報(bào)頭包含可均勻分成整數(shù)字節(jié)的位大小。例如,這樣一種報(bào)頭可組成64個(gè)8位字節(jié)包的前4個(gè)字節(jié)。
[0066]圖7a至圖7c實(shí)施例的系數(shù)段包括表示iDCT系數(shù)數(shù)據(jù)的“游程”中的許多iDCT系數(shù)部分的4個(gè)位,但僅4個(gè)位針對(duì)12位iDCT系數(shù)值的三個(gè)分區(qū)之一。所以,每個(gè)這種區(qū)可以是示例性64個(gè)8位字節(jié)包的I字節(jié)。在此情況下;“游程”是之后是相應(yīng)分區(qū)的非零值iDCT系數(shù)部分的一系列零值iDCT系數(shù)部分。
[0067]如使用圖4實(shí)施例,對(duì)于第一系數(shù)段,前4個(gè)位是備用的,因?yàn)榈谝粋€(gè)iDCT系數(shù)是由報(bào)頭識(shí)別的開始系數(shù)。對(duì)于后續(xù)系數(shù)段,前4個(gè)位識(shí)別包括下一個(gè)非零值iDCT系數(shù)部分的游程中iDCT系數(shù)部分的數(shù)量。在游程中存在14個(gè)或更少零值iDCT系數(shù)部分的情況下,所述段的后4個(gè)位包含游程中的非零值iDCT系數(shù)部分的4位iDCT系數(shù)值部分。在游程中存在15個(gè)或更多零值iDCT系數(shù)部分的情況下,轉(zhuǎn)義值(諸如前4位中的0000)用于指示所述段的后4位識(shí)別在下一個(gè)非零值iDCT系數(shù)前存在至少15個(gè)零值iDCT系數(shù)部分。多個(gè)系數(shù)段(包括轉(zhuǎn)義值)用于指示游程中非零值之前的多組15個(gè)零值系列。
[0068]圖7b圖示了將iDCT系數(shù)數(shù)據(jù)緩沖成緩沖器I中的LSB流、緩沖器2中的中間位流和緩沖器3中的MSB流并且圖示了由具有圖7a的8個(gè)非零值的85個(gè)iDCT系數(shù)的組得出的相應(yīng)流數(shù)據(jù)包的數(shù)據(jù)。每個(gè)數(shù)據(jù)包可包括額外數(shù)據(jù)以填滿針對(duì)包選擇的字節(jié)大小。
[0069]如圖7b所示,LSB流的包包含指示包內(nèi)的系數(shù)數(shù)據(jù)以MB22的塊I的iDCT系數(shù)開始的報(bào)頭。系數(shù)編碼方案“X”指示為iDCT系數(shù)數(shù)據(jù)的三向劃分系數(shù)編碼的LSB流?!癘”用于指示第一個(gè)非零值發(fā)生在所述系列的相應(yīng)第一個(gè)LSB系數(shù)部分中且“s”指示備用報(bào)頭位。這表示示例性64字節(jié)包的4個(gè)字節(jié)。
[0070]在緩沖器I包的第一個(gè)系數(shù)段中,“s”指示前4個(gè)備用位且后4位包含對(duì)應(yīng)于非零值“a”的LSB部分的值10。對(duì)于緩沖器I包的下一個(gè)系數(shù)段,前4位中的“I”指示一位的游程且后4位包含對(duì)應(yīng)于非零值“b”的LSB部分的值11。對(duì)于緩沖器I包的下一個(gè)系數(shù)段,前4位中的“4”指示四位的游程且后4位包含對(duì)應(yīng)于非零值“c”的LSB部分的值5。對(duì)于緩沖器I包的下一個(gè)系數(shù)段,前4位中的“O”指示后4位包含非零值“c”后的游程中的前15個(gè)非零值。對(duì)于緩沖器I包的下一個(gè)系數(shù)段,前4位中的“2”指示與之前段結(jié)合的17位的游程且后4位包含對(duì)應(yīng)于非零值“d”的LSB部分的值4。對(duì)于緩沖器I包的下一個(gè)系數(shù)段,前4位中的“3”指示3位的游程且后4位包含對(duì)應(yīng)于非零值“e”的LSB部分的值4。
[0071]對(duì)于緩沖器I包的下一個(gè)系數(shù)段中,前4位中的“O”指示后4位包含非零值“e”后的游程中的前15個(gè)非零值。對(duì)于緩沖器I包的下一個(gè)系數(shù)段,前4位中的“6”指示與前段結(jié)合的21位的游程且后4位包含對(duì)應(yīng)于非零值“f”的LSB部分的值4。對(duì)于緩沖器I包的下一個(gè)系數(shù)段,前4位中的“I”指示一位的游程且后4位包含對(duì)應(yīng)于非零值“g”的LSB部分的值4。
[0072]對(duì)于緩沖器I包的下兩個(gè)系數(shù)段,前4位中的“O”指示后4位包含非零值“g”后的游程中的第一組和第二組15個(gè)非零值。對(duì)于緩沖器I包的下一個(gè)系數(shù)段,前4位中的“7”指示與前兩段結(jié)合的37位的游程且后4位包含對(duì)應(yīng)于非零值“h”的LSB部分的值6。
[0073]上述內(nèi)容表示64個(gè)8位字節(jié)包的前16個(gè)字節(jié)的系數(shù)編碼。包的其余部分可用iDCT系數(shù)數(shù)據(jù)的其他LSB部分填充。
[0074]如圖7b進(jìn)一步所示,中間位流的包包含指示包內(nèi)的系數(shù)數(shù)據(jù)以MB22的塊I的iDCT系數(shù)開始的報(bào)頭。系數(shù)編碼方案“y”指示為iDCT系數(shù)數(shù)據(jù)的三向劃分系數(shù)編碼的中間位流?!?6”用于指示第一非零值發(fā)生在所述系列的相應(yīng)第47個(gè)中間系數(shù)部分中且“s”指示備用報(bào)頭位。這表示示例性64字節(jié)包的4個(gè)字節(jié)。
[0075]在緩沖器2包的第一個(gè)系數(shù)段中,“s”指示前4個(gè)備用位且后4位包含對(duì)應(yīng)于非零值“f”的中間位部分的值4。對(duì)于緩沖器2包的下一個(gè)系數(shù)段,前4位中的“I”指示一位的游程且后4位包含對(duì)應(yīng)于非零值“g”的中間位部分的值6。
[0076]上述內(nèi)容表示64個(gè)8位字節(jié)包的前6個(gè)字節(jié)的系數(shù)編碼。包的其余部分可用iDCT系數(shù)數(shù)據(jù)的其他中間位部分填充。
[0077]如圖7b進(jìn)一步所示,MSB流的包包含指示包內(nèi)的系數(shù)數(shù)據(jù)以MB22的塊I的iDCT系數(shù)開始的報(bào)頭。系數(shù)編碼方案“z”指示為iDCT系數(shù)數(shù)據(jù)的三向劃分系數(shù)編碼的MSB流。“47”用于指示第一個(gè)非零值發(fā)生在所述系列的相應(yīng)第48個(gè)MSB部分中且“s”指示備用報(bào)頭位。在緩沖器2包的第一個(gè)系數(shù)段中,“s”指示前4個(gè)備用位且后4位包含對(duì)應(yīng)于非零值“g”的中間位部分的值4。上述內(nèi)容表示64個(gè)8位字節(jié)包的前5個(gè)字節(jié)的系數(shù)編碼。包的其余部分可用iDCT系數(shù)數(shù)據(jù)的其他中間位部分填充。
[0078]如圖7b所示,針對(duì)iDCT系數(shù)數(shù)據(jù)的給定系列/幀,需以iDCT系數(shù)數(shù)據(jù)的三向劃分編碼在中間和MSB數(shù)據(jù)流中的包的數(shù)量與需編碼在LSB流中的包的數(shù)量相比相對(duì)較小。在第二處理單元32中,包解碼器34因此可被配置來首先將基礎(chǔ)LSB流解壓縮,所述基礎(chǔ)LSB流具有大多數(shù)數(shù)據(jù)。較小量的中間位和MSB數(shù)據(jù)隨后可在可能會(huì)非常短的后續(xù)系數(shù)解碼進(jìn)程中解壓縮并且添加至iDCT系數(shù)存儲(chǔ)器。
[0079]如果位流、位率因量化改變而大量增大或減小,那么用于位劃分的位的數(shù)量可改變或如果未針對(duì)使用多流劃分計(jì)算出提高,那么壓縮可回退至單流。
[0080]基于不同分辨率的統(tǒng)計(jì)數(shù)據(jù)和經(jīng)過編碼的數(shù)據(jù)流的位率,用于指示游程長度和非零系數(shù)數(shù)據(jù)的位的數(shù)量的不同組合可用于提供提高的數(shù)據(jù)壓縮。
[0081]例如,對(duì)于雙向劃分,12位iDCT系數(shù)數(shù)據(jù)可劃分為2位LSB流和10位MSB流。在此情況下,使用圖4和圖7b的相同類型的數(shù)據(jù)包頭,LSB流的系數(shù)段可包括表示iDCT系數(shù)數(shù)據(jù)“游程”中的iDCT系數(shù)部分的數(shù)量的6個(gè)位和供iDCT系數(shù)數(shù)據(jù)的LSB部分用于定義I字節(jié)段的唯一 2個(gè)位。MSB流的系數(shù)段可包括表示iDCT系數(shù)數(shù)據(jù)“游程”中的許多iDCT系數(shù)部分的6個(gè)位和供iDCT系數(shù)數(shù)據(jù)的MSB部分用于定義2字節(jié)段的10個(gè)位。
[0082]對(duì)于三向劃分的另一實(shí)施例,12位iDCT系數(shù)數(shù)據(jù)可劃分成2位LSB流、2位中間流和8位MSB流。在此情況下,使用圖4和圖7b的相同類型的數(shù)據(jù)包報(bào)頭,LSB流的系數(shù)段可包括表示iDCT系數(shù)數(shù)據(jù)“游程”中的許多iDCT系數(shù)部分的6個(gè)位和供iDCT系數(shù)數(shù)據(jù)的LSB部分用于定義I字節(jié)段的2個(gè)位。中間位流的系數(shù)段還可包括表示iDCT系數(shù)數(shù)據(jù)“游程”中的許多iDCT系數(shù)部分的6個(gè)位和供iDCT系數(shù)數(shù)據(jù)的部分用于定義I字節(jié)段的2個(gè)位。MSB流的系數(shù)段可包括表示iDCT系數(shù)數(shù)據(jù)“游程”中的許多iDCT系數(shù)部分的8個(gè)位和供iDCT系數(shù)數(shù)據(jù)的MSB部分定義2字節(jié)段的8個(gè)位。優(yōu)選地,所使用的劃分類型由報(bào)頭位指示。
[0083]在多個(gè)緩沖器將在包解碼器的系列進(jìn)程中處理進(jìn)行解壓縮的情況下,第一個(gè)緩沖器之后的每個(gè)緩沖器可包含指示其之前有多少個(gè)位的一個(gè)值。
[0084]如本領(lǐng)域技術(shù)人員所知,存在可使用的多種壓縮劃分方案。在存在系數(shù)和游程都需要的少量位的情況下,可使用額外方案,諸如2r-2C-2r-2C (2位游程、2位系數(shù)、2位游程、2位系數(shù))或2r-2c-2c-2c (2位游程、2位系數(shù)、2位系數(shù)、2位系數(shù))或4r-2c_2c (4位游程、2位系數(shù)、2位系數(shù))、6r-2c-2c-2c-2c (6-位游程、2位系數(shù)、2位系數(shù)、2位系數(shù)、2位系數(shù))等。優(yōu)選地在存在高密度的非零值時(shí)使用一組游程位后有多組系數(shù)位的方案,但是在一些情況下,所述組的系數(shù)位中的一個(gè)或多個(gè)定義零系數(shù)。
[0085]用于定義系數(shù)段的位的數(shù)量(游程值位加上系數(shù)值位)無需加總成8的倍數(shù),但是其可提高第一處理單元31和/或第二處理單元32上的性能而具有偶數(shù)字節(jié)數(shù)。
[0086]所有包應(yīng)包含完整固定長度的法定值以防止針對(duì)不相符包執(zhí)行特殊處理的需要。用所有零墊充包的末端可用于實(shí)現(xiàn)這個(gè)目標(biāo)。這可能被解釋為許多零系數(shù)值或一個(gè)或多個(gè)轉(zhuǎn)義碼(針對(duì)超過所使用的位的游程)。任何在包的末端實(shí)施的轉(zhuǎn)義可在解碼器中取消。用零墊充可用作緩沖器劃分的最后一個(gè)包或可使用任意次數(shù)以允許行或片的末端的編碼側(cè)上的平行處理,例如其中這些MB組被平行處理。
[0087]在系數(shù)數(shù)量稀疏且對(duì)“游程”進(jìn)行編碼所需的位的數(shù)量大的情況下,可有利地基于位掩碼分組使用另一個(gè)替代壓縮。在這樣一種替代方案中,取代指示有關(guān)游程的零值,零值針對(duì)iDCT系數(shù)塊的整個(gè)部分,報(bào)頭是位掩碼,所述位掩碼包含針對(duì)無系數(shù)的零和針對(duì)非零系數(shù)的I。圖8圖示了編碼成圖6a所示的序列的iDCT系數(shù)的不同大小的片部分的一個(gè)位掩碼識(shí)別。位掩碼值可用于識(shí)別在編號(hào)為O至6的任意片段中是否存在任何非零iDCT系數(shù)。在位掩碼指示存在非零iDCT系數(shù)的情況下,與所述系數(shù)相關(guān)的數(shù)據(jù)隨后緊隨位掩碼值。數(shù)據(jù)可為相應(yīng)位掩碼片區(qū)域中的所有iDCT系數(shù)的形式或可為如上所述的游程值和系數(shù)值的形式。在統(tǒng)計(jì)數(shù)據(jù)顯示壓縮增益的情況下,可使用將8、16、32或64位用于位掩碼的變化。
[0088]在iDCT系數(shù)塊的位掩碼值及其相關(guān)系數(shù)數(shù)據(jù)溢出超過包邊界的末端時(shí),系數(shù)的掩碼中超過包邊界的位可設(shè)為零且相同塊位掩碼可在下一個(gè)包中重復(fù),可根據(jù)需要將先前壓縮的系數(shù)掩碼設(shè)為O并且將其余系數(shù)的位設(shè)為I。
[0089]雖然上述實(shí)施例中描述的特征和元件在用于處理iDCT系數(shù)的壓縮的背景之下并且適合這些系數(shù)的統(tǒng)計(jì)性質(zhì),但是實(shí)施例不旨在限制。方法和裝置可易適于稀疏數(shù)據(jù)的任何緩沖/壓縮(即相對(duì)較少非零數(shù)據(jù)元素穿插有許多零數(shù)據(jù)元素),每個(gè)非零元素具有大致較少的有效位。
[0090]此外,iDCT系數(shù)通常用于MPEG和JPEG編解碼器中所包含的特定變換。其他編解碼器使用類似于iDCT但不同的變換。通常,針對(duì)視頻/圖形數(shù)據(jù)的解碼(可以是或可以不是iDCT)使用某些類型的系數(shù)反變換(iT)。還可存在相對(duì)等效的數(shù)據(jù),其未在技術(shù)上表現(xiàn)為所公開的方法和裝置可應(yīng)用的iT系數(shù)。
[0091]通過使用本發(fā)明,裝置(例如,諸如平板電腦、智能手機(jī)、DTV等)可用較低的組件成本、較低的設(shè)計(jì)要求生產(chǎn),否則其可能需要復(fù)雜且昂貴的存儲(chǔ)器和存儲(chǔ)接口。[0092]雖然上文中將特征和元件描述為特定組合,但是每個(gè)特征或元件可在無需其他特征和元件的情況下使用或在具有其他特征和元件或不具有其他特征或元件的情況下以不同組合使用。本文所述的裝置可通過使用并入計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中供通用計(jì)算機(jī)或處理器執(zhí)行的計(jì)算機(jī)程序、軟件或固件制造。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的實(shí)施例包括只讀存儲(chǔ)器(ROM)、隨機(jī)存儲(chǔ)器(RAM)、寄存器、高速緩沖存儲(chǔ)器、半導(dǎo)體存儲(chǔ)器裝置、磁性介質(zhì)(諸如內(nèi)部硬盤和移動(dòng)硬盤)、磁光介質(zhì)和光學(xué)介質(zhì)(諸如⑶-ROM盤和數(shù)字多功能光盤(DVD))。
[0093]本發(fā)明的實(shí)施方案可表現(xiàn)為存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中的指令和數(shù)據(jù)。例如,本發(fā)明的方面可使用Verilog (其為硬件描述語言(HDL))實(shí)施。在處理時(shí),Verilog數(shù)據(jù)指令可生成其他中間數(shù)據(jù)(例如,網(wǎng)表、GDS數(shù)據(jù)或類似數(shù)據(jù)),所述中間數(shù)據(jù)可用于執(zhí)行實(shí)施在半導(dǎo)體制作設(shè)備中的制造工藝。制造工藝可適于制造體現(xiàn)本發(fā)明的不同方面的半導(dǎo)體裝置(例如,處理器)。
[0094]舉例來說,合適的處理器包括通用處理器、專用處理器、傳統(tǒng)處理器、數(shù)字信號(hào)處理器(DSP)、多個(gè)微處理器、圖形處理單元(GPU)、DSP核心、控制器、微控制器、專用集成電路(ASIC)、現(xiàn)場(chǎng)可編程門陣列(FPGA)、任意其他類型的集成電路(IC)和/或狀態(tài)機(jī)或其組
入
口 ο
【權(quán)利要求】
1.一種將系數(shù)壓縮用于促進(jìn)圖形解碼的方法,其包括: 在第一處理單元中將用于表示圖像的系數(shù)編碼成經(jīng)過壓縮的系數(shù)數(shù)據(jù); 將所述經(jīng)過壓縮的系數(shù)數(shù)據(jù)傳遞至第二處理單元;和 在所述第二處理單元中將所述經(jīng)過壓縮的系數(shù)數(shù)據(jù)解碼成表示所述圖像的所述系數(shù)。
2.根據(jù)權(quán)利要求1所述的方法,其中所述系數(shù)是反變換(iT)系數(shù),其還包括: 在所述第一處理單元中提取所述iT系數(shù); 自適應(yīng)地選擇系數(shù)編碼程序用于基于所述iT系數(shù)的所述數(shù)據(jù)內(nèi)容執(zhí)行所述編碼,其中所述系數(shù)編碼程序選自將所述iT系數(shù)編碼成均勻大小的數(shù)據(jù)包的一組系數(shù)編碼程序;和 在所述第二處理單元中處理所述經(jīng)過解碼的系數(shù)。
3.根據(jù)權(quán)利要求2所述的方法,其中所述第一處理單元選擇所述系數(shù)編碼程序并且將數(shù)據(jù)包傳遞至所述第二處理單元,其中每個(gè)數(shù)據(jù)包包含識(shí)別用于在所述包內(nèi)對(duì)所述經(jīng)過壓縮的iT系數(shù)數(shù)據(jù)進(jìn)行編碼的所述所選擇的系數(shù)編碼程序的數(shù)據(jù)。
4.根據(jù)權(quán)利要求2所述的方法,其中所述第二處理單元處理所述經(jīng)過解碼的系數(shù)以提供經(jīng)過選擇性格式化的信號(hào)以驅(qū)動(dòng)所要顯示裝置顯示反映所述圖像的圖像。
5.一種分布式圖形解碼裝置,其包括: 第一處理單元,其被配置來提取定義圖像數(shù)據(jù)的系數(shù); 所述第一處理單元,其被配 置來將所述系數(shù)編碼成經(jīng)過壓縮的系數(shù)數(shù)據(jù)并且將所述經(jīng)過編碼的系數(shù)傳遞至第二處理單元;和 所述第二處理單元,其被配置來將所述經(jīng)過壓縮的系數(shù)數(shù)據(jù)解碼成定義所述圖像數(shù)據(jù)的系數(shù)。
6.根據(jù)權(quán)利要求5所述的裝置,其中所述第一處理單元被配置來提取反變換(iT)系數(shù)且所述第二處理單元被配置來處理所述經(jīng)過解碼的系數(shù)以提供經(jīng)過選擇性格式化的輸出以驅(qū)動(dòng)所要類型的顯示裝置,所述裝置還包括一個(gè)組件,所述組件被配置來自適應(yīng)地選擇系數(shù)編碼程序用于基于所述iT系數(shù)的所述數(shù)據(jù)內(nèi)容執(zhí)行所述編碼,其中所述系數(shù)編碼程序選自將所述iT系數(shù)編碼成均勻大小的數(shù)據(jù)包的一組系數(shù)編碼程序。
7.根據(jù)權(quán)利要求6所述的裝置,其中所述第一處理單元包括自適應(yīng)地選擇所述所選擇的系數(shù)編碼程序的所述組件且所述第一處理單元被配置來將所述iT系數(shù)編碼成數(shù)據(jù)包,其中每個(gè)數(shù)據(jù)包包含識(shí)別用于在所述包內(nèi)對(duì)所述經(jīng)過壓縮的iT系數(shù)數(shù)據(jù)進(jìn)行編碼的所述所選擇的系數(shù)編碼程序的數(shù)據(jù)。
8.一種將系數(shù)壓縮用于促進(jìn)圖形解碼的方法,其包括: 在第一處理單元中提取定義圖像數(shù)據(jù)的系數(shù);和 在所述第一處理單元中將所述系數(shù)編碼成經(jīng)過壓縮的系數(shù)數(shù)據(jù)。
9.根據(jù)權(quán)利要求8所述的方法,其中所述所提取的系數(shù)是反變換(iT)系數(shù),其還包括: 自適應(yīng)地選擇系數(shù)編碼程序用于基于所述iT系數(shù)的所述數(shù)據(jù)內(nèi)容執(zhí)行所述系數(shù)編碼,其中所述系數(shù)編碼程序選自將所述iT系數(shù)編碼成均勻大小的數(shù)據(jù)包的一組系數(shù)編碼程序;和 輸出所述數(shù)據(jù)包用于完成另一個(gè)處理單元中的系數(shù)處理。
10.根據(jù)權(quán)利要求9所述的方法,其中所述第一處理單元選擇所述所選擇的系數(shù)編碼程序并且輸出數(shù)據(jù)包,其中每個(gè)數(shù)據(jù)包包含識(shí)別用于在所述包內(nèi)對(duì)所述經(jīng)過壓縮的iT系數(shù)數(shù)據(jù)進(jìn)行編碼的所述所選擇的編碼程序的數(shù)據(jù)。
11.一種用于促進(jìn)分布式圖形解碼的集成電路,其包括: 處理組件,其被配置來提取定義圖像數(shù)據(jù)的系數(shù);和 編碼器,其被配置來將所述系數(shù)編碼成經(jīng)過壓縮的系數(shù)數(shù)據(jù)以輸出至另一個(gè)集成電路以完成系數(shù)處理。
12.根據(jù)權(quán)利要求11所述的集成電路,其中所述所提取的系數(shù)是反變換(iT)系數(shù),其還包括:編碼器控制組件,其被配置來自適應(yīng)地選擇系數(shù)編碼程序用于基于所述iT系數(shù)的所述數(shù)據(jù)內(nèi)容執(zhí)行所述編碼使得所選擇的系數(shù)編碼程序用于所述系數(shù)編碼,其中所述系數(shù)編碼程序選自將所述iT系數(shù)編碼成均勻大小的數(shù)據(jù)包的一組系數(shù)編碼程序。
13.根據(jù)權(quán)利要求12所述的集成電路,其中所述編碼器被配置來輸出數(shù)據(jù)包,其中每個(gè)數(shù)據(jù)包包含識(shí)別用于在所述包內(nèi)對(duì)所述經(jīng)過壓縮的iT系數(shù)數(shù)據(jù)進(jìn)行編碼的所述所選擇的系數(shù)編碼程序的數(shù)據(jù)。
14.一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其存儲(chǔ)一組指令供一個(gè)或多個(gè)處理器執(zhí)行以促進(jìn)用于促進(jìn)分布式圖形解碼的集成電路的制造,其包括: 處理組件,其被配置來提取定義圖像數(shù)據(jù)的系數(shù);和 編碼器,其被配置來將所述系數(shù)編碼成經(jīng)過壓縮的系數(shù)數(shù)據(jù)以輸出至另一個(gè)集成電路以完成系數(shù)處理。
15.根據(jù)權(quán)利要求14所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中所述指令是用于裝置的所述制造的硬件描述語言(HDL)指令。
16.一種將系數(shù)壓縮用于促進(jìn)解碼的方法,其包括: 由處理單元接收表示定義圖像數(shù)據(jù)的經(jīng)過編碼的iT系數(shù)的經(jīng)過壓縮的反變換(iT)系數(shù)數(shù)據(jù); 在所述處理單元中將所述經(jīng)過壓縮的iT系數(shù)數(shù)據(jù)解碼成定義所述圖像數(shù)據(jù)的iT系數(shù)。
17.根據(jù)權(quán)利要求16所述的方法,其中所述處理單元接收均勻大小的數(shù)據(jù)包中的經(jīng)過壓縮的iT系數(shù)數(shù)據(jù),所述均勻大小的數(shù)據(jù)包包括識(shí)別用于所述相應(yīng)數(shù)據(jù)包中所包含的經(jīng)過壓縮的iT系數(shù)數(shù)據(jù)的所選擇的系數(shù)編碼程序的數(shù)據(jù),且所述處理單元使用作為所述包內(nèi)所識(shí)別的所述所選擇的系數(shù)編碼程序的補(bǔ)充的系數(shù)解碼方法在每個(gè)數(shù)據(jù)包內(nèi)對(duì)所述經(jīng)過壓縮的iT系數(shù)數(shù)據(jù)進(jìn)行解碼。
18.根據(jù)權(quán)利要求16所述的方法,其中所述GPU接收均勻大小、可獨(dú)立解碼的數(shù)據(jù)包中的所述經(jīng)過壓縮的iT系數(shù)數(shù)據(jù)并且使用所述所接收的數(shù)據(jù)包的大規(guī)模平行系數(shù)解碼對(duì)所述經(jīng)過壓縮的iT系數(shù)數(shù)據(jù)進(jìn)行解碼。
19.根據(jù)權(quán)利要求16所述的方法,其還包括處理所述經(jīng)過解碼的iT系數(shù)以提供經(jīng)過選擇性格式化的信號(hào)以驅(qū)動(dòng)所要顯示裝置顯示反映所述圖像數(shù)據(jù)的圖像。
20.一種用于促進(jìn)分布式圖形解碼的集成電路,其包括: 輸入端,其被配置來接收表示定義圖像數(shù)據(jù)的經(jīng)過編碼的iT系數(shù)的經(jīng)過壓縮的反變換(iT)系數(shù)數(shù)據(jù);解碼器,其被配置來將所述經(jīng)過壓縮的iT系數(shù)數(shù)據(jù)解碼成定義所述圖像數(shù)據(jù)的iT系數(shù);和 處理組件,其被配置來對(duì)所述經(jīng)過解碼的iT系數(shù)進(jìn)行iT處理。
21.根據(jù)權(quán)利要求20所述的集成電路,其中所述輸入端被配置來接收均勻大小的數(shù)據(jù)包中的所述經(jīng)過壓縮的iT系數(shù)數(shù)據(jù),所述數(shù)據(jù)包包括識(shí)別用于所述相應(yīng)數(shù)據(jù)包中所包含的經(jīng)過壓縮的iT系數(shù)數(shù)據(jù)的所選擇的系數(shù)編碼程序的數(shù)據(jù),且所述解碼器被配置來使用作為所述包內(nèi)所識(shí)別的所述所選擇的系數(shù)編碼程序的補(bǔ)充的系數(shù)解碼方法在每個(gè)數(shù)據(jù)包內(nèi)對(duì)所述經(jīng)過壓縮的iT系數(shù)數(shù)據(jù)進(jìn)行解碼。
22.根據(jù)權(quán)利要求20所述的集成電路,其中所述輸入端被配置來接收均勻大小、可獨(dú)立解碼的數(shù)據(jù)包中的所述經(jīng)過壓縮的iT系數(shù)數(shù)據(jù)且所述解碼器被配置來使用所接收的數(shù)據(jù)包的大規(guī)模平行系數(shù)解碼對(duì)所述經(jīng)過壓縮的iT系數(shù)數(shù)據(jù)進(jìn)行解碼。
23.一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其存儲(chǔ)一組指令供一個(gè)或多個(gè)處理器執(zhí)行以促進(jìn)集成電路的制造,其包括: 輸入端,其被配置來接收表示定義圖像數(shù)據(jù)的經(jīng)過編碼的iT系數(shù)的經(jīng)過壓縮的反變換(iT)系數(shù)數(shù)據(jù); 解碼器,其被配置來將所述經(jīng)過壓縮的iT系數(shù)數(shù)據(jù)解碼成定義所述圖像數(shù)據(jù)的iT系數(shù);和 處理組件,其被配置來對(duì)所述iT系數(shù)進(jìn)行iT處理。
24.根據(jù)權(quán)利要求23所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中所述指令是用于裝置的所述制造的硬件描述語言(HDL)指令 。
【文檔編號(hào)】H04N19/124GK103814573SQ201280045557
【公開日】2014年5月21日 申請(qǐng)日期:2012年6月27日 優(yōu)先權(quán)日:2011年7月19日
【發(fā)明者】邁克爾·L·施密特, 維基·W·塔桑, 拉達(dá)克里什納·基都瑟里 申請(qǐng)人:超威半導(dǎo)體公司