專利名稱:多重標(biāo)準(zhǔn)視頻解碼系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種視頻解碼系統(tǒng),尤其涉及一種多重標(biāo)準(zhǔn)視頻解碼系統(tǒng)。
背景技術(shù):
為使得影音及視頻應(yīng)用之大量原始數(shù)據(jù)得以在有限的網(wǎng)絡(luò)頻寬中迅速傳送,將原 始數(shù)據(jù)于傳送前先經(jīng)過編碼壓縮,接收端收到后再行解碼還原成原始數(shù)據(jù)已為必要之舉。 隨著多媒體數(shù)字應(yīng)用日漸廣泛,消費(fèi)者對(duì)影像分辨率的要求與日俱增,視頻編解碼的運(yùn)算 量也隨之提升。就視頻解碼技術(shù)而言,為達(dá)到高畫質(zhì)視頻實(shí)時(shí)解碼的需求,一般通過硬件方式加 以實(shí)現(xiàn),以硬件設(shè)計(jì)應(yīng)付高分辨率畫質(zhì)所產(chǎn)生的龐大運(yùn)算量。然而硬件設(shè)計(jì)通常針對(duì)單一 視頻解碼標(biāo)準(zhǔn),若要支持其它不同的視頻解碼標(biāo)準(zhǔn),必須移除或增加硬件設(shè)計(jì)中的電路,缺 乏彈性與擴(kuò)充性。若使用軟件方式實(shí)現(xiàn)視頻解碼,雖可支持多種視頻解碼標(biāo)準(zhǔn),但通用處理 器之效能提升受限于大量的數(shù)據(jù)總線存取,很難符合高畫質(zhì)視頻實(shí)時(shí)解碼的需求。
發(fā)明內(nèi)容
有鑒于此,需提供一種軟、硬件整合的多重標(biāo)準(zhǔn)視頻解碼系統(tǒng)。本發(fā)明提供一種多重標(biāo)準(zhǔn)視頻解碼系統(tǒng),包括內(nèi)存、多重主端橋接接口、多個(gè)處理 器以及多個(gè)硬件加速器。所述內(nèi)存用來儲(chǔ)存比特流及解碼過程中的暫時(shí)性數(shù)據(jù)。所述多重 主端橋接接口,連接至所述內(nèi)存。所述多個(gè)處理器所述多個(gè)處理器包含至少一處理器,經(jīng)由 所述多重主端橋接接口,從所述內(nèi)存接收所述比特流;以及各所述多個(gè)硬件加速器接收來 自所述多個(gè)處理器中一處理器的指令而執(zhí)行視頻解碼相關(guān)流程,并經(jīng)由所述多重主端橋接 接口,存取所述內(nèi)存。本發(fā)明還提供一種多重標(biāo)準(zhǔn)視頻解碼系統(tǒng),包括內(nèi)存、多重主端橋接接口、點(diǎn)對(duì)點(diǎn) 總線、多個(gè)處理器以及多個(gè)硬件加速器。所述多個(gè)處理器包含至少一處理器,經(jīng)由所述多重 主端橋接接口,從所述內(nèi)存接收所述比特流。各所述多個(gè)硬件加速器接收來自所述多個(gè)處 理器中一處理器的指令而執(zhí)行視頻解碼相關(guān)流程,經(jīng)由所述多重主端橋接接口,存取所述 內(nèi)存,并經(jīng)由點(diǎn)對(duì)點(diǎn)總線連結(jié)至各所述多個(gè)處理器。本發(fā)明還提供一種多重標(biāo)準(zhǔn)視頻解碼方法,執(zhí)行于多重標(biāo)準(zhǔn)視頻解碼系系統(tǒng)中。 所述多重標(biāo)準(zhǔn)視頻解碼系系統(tǒng)的第一處理器接收比特流,通過所述多重標(biāo)準(zhǔn)視頻解碼系系 統(tǒng)的第一硬件加速器執(zhí)行可變長(zhǎng)度編碼,通過所述多重標(biāo)準(zhǔn)視頻解碼系系統(tǒng)的第二硬件加 速器執(zhí)行離散余弦反轉(zhuǎn)換,通過所述多重標(biāo)準(zhǔn)視頻解碼系系統(tǒng)的第三硬件加速器執(zhí)行運(yùn)動(dòng) 補(bǔ)償,最后通過所述多重標(biāo)準(zhǔn)視頻解碼系系統(tǒng)的第四硬件加速器執(zhí)行去區(qū)塊過濾。[加上一段有益效果說明]
圖1為硬件模塊100之一種實(shí)施方式的示意圖。
圖2為視頻解碼系統(tǒng)200之一種實(shí)施方式的結(jié)構(gòu)方塊圖。圖3為利用圖2中視頻解碼系統(tǒng)200進(jìn)行一般視頻解碼的方法示意圖。圖4為利用圖2中視頻解碼系統(tǒng)200解碼H. 264比特流的方法示意圖。圖5為利用圖2中視頻解碼系統(tǒng)200解碼VC-I比特流的方法示意圖。
具體實(shí)施例方式本發(fā)明利用多個(gè)處理器分擔(dān)視頻解碼過程的運(yùn)算量,并將不同視頻標(biāo)準(zhǔn)常用的解 碼流程通過硬件模塊加以實(shí)現(xiàn)。請(qǐng)參閱圖1所示的硬件模塊100,包含熵解碼(Entropy Decode) 110、反轉(zhuǎn)換(Inverse Transform) 111、運(yùn)動(dòng)補(bǔ)償(Motion Compensation) 112 與區(qū) 塊噪聲過濾(De-Blocking Filter) 113等硬件加速器。所述熵解碼110主要進(jìn)行熵編碼 (Entropy Encode)的逆過程,從中取得可變長(zhǎng)度編碼(Variable Length Code,簡(jiǎn)稱VLC) 與運(yùn)動(dòng)向量(Motion Vector)等信息作為其后解碼重建影像之用,反轉(zhuǎn)換111則用來將頻 率(frequency)域影像數(shù)據(jù)還原成空間(spatial)域影像數(shù)據(jù),運(yùn)動(dòng)補(bǔ)償112利用先前局 部還原的影像數(shù)據(jù)預(yù)測(cè)與補(bǔ)償正在解碼的影像數(shù)據(jù),最后區(qū)塊噪聲過濾113則進(jìn)行重建影 像的后置處理。請(qǐng)參閱圖2,顯示視頻解碼系統(tǒng)200的結(jié)構(gòu)方塊圖。視頻解碼系統(tǒng)200包含多個(gè)處 理器210-212、圖1中硬件模塊100中的多個(gè)硬件加速器如熵解碼(Entropy Decode) 220、 反轉(zhuǎn)換 Gnverse Transform) 221、運(yùn)動(dòng)補(bǔ)償(Motion Compensation) 222 與區(qū)塊噪聲過 濾(De-Blocking Filter) 223、內(nèi)存控制器231、內(nèi)存232、視頻輸出單元M0、橋接接口 251與點(diǎn)對(duì)點(diǎn)總線2521-2528。多個(gè)處理器210-212可以是任何類型的通用處理器,如數(shù) 字信號(hào)處理器(Digital Signal I^rocessor,簡(jiǎn)稱DSP)或精簡(jiǎn)指令集處理器(Reduced InstructionSet Computing,簡(jiǎn)稱RISC)。視頻解碼系統(tǒng)200使用點(diǎn)對(duì)點(diǎn)總線2521-25 作 為多個(gè)處理器210-212以及多個(gè)硬件加速器之間的相互連結(jié),使得處理器與處理器之間、 處理器與與其關(guān)聯(lián)的硬件加速器之間不需要通過總線仲裁(bus arbitration)即可傳遞指 令流及數(shù)據(jù)流。橋接接口 251則為多重主端橋接接口(Multi-Master Bridge Interface), 經(jīng)由所述橋接接口 251,多個(gè)處理器210-212與多個(gè)硬件加速器皆能通過內(nèi)存控制器231直 接存取內(nèi)存232。所述內(nèi)存232可以為隨機(jī)存取內(nèi)存(Random Access Memory,簡(jiǎn)稱RAM), 例如靜態(tài)隨機(jī)存取內(nèi)存(Static RAM,簡(jiǎn)稱SRAM)或是動(dòng)態(tài)隨機(jī)存取內(nèi)存(Dynamic RAM,簡(jiǎn) 稱DRAM)用來儲(chǔ)存解碼過程中產(chǎn)生的系數(shù)數(shù)據(jù)與影像數(shù)據(jù)等。多個(gè)硬件加速器于內(nèi)存232 中,可以有各自的緩沖區(qū)供其運(yùn)作時(shí)存取數(shù)據(jù),亦可以有一組共享的緩沖區(qū),作為數(shù)據(jù)交換 使用。視頻解碼系統(tǒng)200解碼所得的影像數(shù)據(jù)最后經(jīng)由視頻輸出單元240格式化后輸出。視頻解碼系統(tǒng)200可實(shí)施在具有各種視頻應(yīng)用領(lǐng)域的裝置或傳輸系統(tǒng),包含無 線多媒體裝置、標(biāo)準(zhǔn)分辨率和高分辨率的電視廣播應(yīng)用、因特網(wǎng)的視頻應(yīng)用、傳輸高分辨 率視頻的數(shù)字影像光盤、數(shù)字機(jī)頂盒與手持式電子裝置等。需要了解的是,各多個(gè)處理器 210-212所負(fù)責(zé)的解碼流程與硬件加速器的運(yùn)作會(huì)依照不同的視頻編碼標(biāo)準(zhǔn)而有所不同。 為了平衡系統(tǒng)效能與硬件成本,處理器負(fù)責(zé)的解碼程序與硬件加速器負(fù)責(zé)的解碼程序,亦 可作適時(shí)的分配以便取得軟硬件間的效能平衡點(diǎn),舉例來說,處理器202中的處理程序負(fù) 責(zé)反量化的解碼程序,反轉(zhuǎn)換221則負(fù)責(zé)將反量化后的影像數(shù)據(jù)從頻率域還原成空間域, 或者也可以由反轉(zhuǎn)換221同時(shí)完成反量化與反轉(zhuǎn)換的解碼程序。5
請(qǐng)參閱圖3,為利用圖2中視頻解碼系統(tǒng)200進(jìn)行一般視頻解碼之方法300的示意 圖,其中處理器301-303分別為處理器210-212的實(shí)施方式,熵解碼304、反轉(zhuǎn)換305、運(yùn)動(dòng) 補(bǔ)償306及區(qū)塊噪聲過濾307等分別為熵解碼220、反轉(zhuǎn)換221、運(yùn)動(dòng)補(bǔ)償222與區(qū)塊噪聲 過濾223等硬件加速器的實(shí)施方式,內(nèi)存300為內(nèi)存232的實(shí)施方式。處理器301從內(nèi)存330接收到編碼比特流(bit stream) 320,經(jīng)由語(yǔ)法解析程序 308依語(yǔ)法結(jié)構(gòu)判別比特流使用的視頻編碼標(biāo)準(zhǔn)。得知視頻編碼標(biāo)準(zhǔn)后,將數(shù)據(jù)傳送給熵 解碼硬件加速器304并命令其進(jìn)行熵解碼,同時(shí)通過控制頻率周期控制命令流與數(shù)據(jù)流的 傳遞速度。熵解碼硬件加速器304的輸入可以是比特流亦可以是宏區(qū)塊(macro block), 若為宏區(qū)塊,則代表比特流中的區(qū)塊文件頭數(shù)據(jù)已在處理器301的語(yǔ)法解析程序中完成解 碼。在另一實(shí)施方式中,處理器301可以通過得知視頻編碼標(biāo)準(zhǔn),決定是否動(dòng)態(tài)啟動(dòng)內(nèi)部的 程序。舉例而言,處理器301動(dòng)態(tài)啟動(dòng)運(yùn)動(dòng)向量重建的程序,以減輕接下來解碼程序中其它 處理器的負(fù)載。經(jīng)由熵解碼硬件加速器304處理的輸出包含運(yùn)動(dòng)向量、區(qū)塊量化參數(shù)與量化離散 余弦轉(zhuǎn)換系數(shù)矩陣等,由熵解碼硬件加速器304傳送給處理器302作進(jìn)一步的解碼處理。 處理器302接收到運(yùn)動(dòng)向量、區(qū)塊量化參數(shù)與量化離散余弦轉(zhuǎn)換系數(shù)矩陣后,以區(qū)塊量化 參數(shù)與量化的離散余弦轉(zhuǎn)換系數(shù)矩陣作為反量化程序309的輸入數(shù)據(jù),以運(yùn)動(dòng)向量作為運(yùn) 動(dòng)向量重建程序310的輸入數(shù)據(jù)。反量化程序309以接收到的區(qū)塊量化參數(shù)針對(duì)量化離散 余弦轉(zhuǎn)換系數(shù)矩陣進(jìn)行反量化的解碼程序,輸出反量化的離散余弦轉(zhuǎn)換系數(shù)矩陣,并傳送 給反轉(zhuǎn)換硬件加速器305,同時(shí)命令其進(jìn)行反轉(zhuǎn)換。運(yùn)動(dòng)向量重建程序310負(fù)責(zé)運(yùn)動(dòng)向量 預(yù)測(cè)與重建的解碼程序,輸出預(yù)測(cè)的宏區(qū)塊,并傳送給運(yùn)動(dòng)補(bǔ)償硬件加速器306,同時(shí)命令 其進(jìn)行運(yùn)動(dòng)補(bǔ)償?shù)慕獯a程序。反轉(zhuǎn)換硬件加速器305可由蝶形算法實(shí)作支持多重視頻編碼 標(biāo)準(zhǔn)的離散余弦反轉(zhuǎn)換,舉例而言,反轉(zhuǎn)換硬件加速器305可支持MPEG-2視頻編碼標(biāo)準(zhǔn)的 8X8離散余弦反轉(zhuǎn)換、H. 264視頻編碼標(biāo)準(zhǔn)的4X4整數(shù)反轉(zhuǎn)換與WMV9/VC-1視頻編碼標(biāo) 準(zhǔn)的8X8、8X4、4X8、4X4整數(shù)反轉(zhuǎn)換等。反轉(zhuǎn)換硬件加速器305經(jīng)由離散余弦反轉(zhuǎn)換運(yùn) 算得到一系數(shù)矩陣,所述系數(shù)矩陣即為殘余系數(shù)數(shù)據(jù)(Residual Values),反轉(zhuǎn)換硬件加速 器305完成離散余弦反轉(zhuǎn)換的運(yùn)算后,即將所述殘余系數(shù)數(shù)據(jù)儲(chǔ)存到內(nèi)存330中的緩沖區(qū) 331,所述緩沖區(qū)331由反轉(zhuǎn)換硬件加速器305、運(yùn)動(dòng)補(bǔ)償硬件加速器306與區(qū)塊噪聲過濾硬 件加速器307所共享,亦即反轉(zhuǎn)換硬件加速器305、運(yùn)動(dòng)補(bǔ)償硬件加速器306與區(qū)塊噪聲過 濾硬件加速器307皆可存取緩沖區(qū)331。運(yùn)動(dòng)補(bǔ)償硬件加速器306接收到處理器302的命令與數(shù)據(jù)后,從共享緩沖區(qū)331 讀取反轉(zhuǎn)換硬件加速器輸出的上述殘余像素?cái)?shù)據(jù),并將上述預(yù)測(cè)的宏區(qū)塊與上述殘余像素 數(shù)據(jù)相加,即可得到一重建的宏區(qū)塊,并將之儲(chǔ)存到緩沖區(qū)331。重建的宏區(qū)塊尚須經(jīng)過區(qū) 塊噪聲過濾硬件加速器307去除區(qū)塊效應(yīng)(block effect)后,方完成宏區(qū)塊的完整解碼。 所述區(qū)塊噪聲過濾硬件加速器307的運(yùn)作由處理器303中的過濾控制程序311所控制。過 濾控制器經(jīng)由監(jiān)視運(yùn)動(dòng)補(bǔ)償硬件加速器306的狀態(tài)緩存器得知其是否完成解碼程序,一旦 得知運(yùn)動(dòng)補(bǔ)償硬件加速器306完成解碼程序,即命令區(qū)塊噪聲過濾硬件加速器307從緩沖 區(qū)331讀取重建的宏區(qū)塊,完成去除區(qū)塊效應(yīng)后,將宏區(qū)塊儲(chǔ)存至內(nèi)存330中目前重建的畫 面,完成宏區(qū)塊的完整解碼。以下將介紹利用本發(fā)明解碼H. 264與VC-I等視頻編碼比特流的實(shí)施方式。
H. 264標(biāo)準(zhǔn)又稱為MPEG-4第10部分,為國(guó)際電信聯(lián)盟遠(yuǎn)程通信標(biāo)準(zhǔn)化組 (ITUTelecommunication Standardization Sector,簡(jiǎn)稱為 ITU-T)與國(guó)際標(biāo)準(zhǔn)化組織 (International Organization for Standardization, 1 !^ ISO) / 151 ^% ;^^ 會(huì)(Internatiomil Flectrotechnical Commission,簡(jiǎn)稱為 IEC)底下的動(dòng)態(tài)圖像專家組 (Motion Picture Experts Group,簡(jiǎn)稱為MPEG)所共同制定的視頻編碼標(biāo)準(zhǔn),官方名稱為 進(jìn)階視頻編碼(Advanced Video Coding,簡(jiǎn)稱為AVC),以區(qū)塊為基本單元,相較于先前的 視頻編碼標(biāo)準(zhǔn),提供多樣化的宏區(qū)塊類型進(jìn)行運(yùn)動(dòng)估計(jì)(Motion Estimation)與運(yùn)動(dòng)補(bǔ)償 (Motion Compensation),最小為4X4大小的宏區(qū)塊,能夠?qū)D像序列中的運(yùn)動(dòng)區(qū)域進(jìn)行更 精確的分割。H. 264進(jìn)行運(yùn)動(dòng)補(bǔ)償計(jì)算時(shí),提供以多張已重建畫面獲得最類似目前解碼宏區(qū)塊 的參考值,稱為畫面間預(yù)測(cè)(inter-frame prediction),參考的已重建畫面最多可往前31 張及往后31張。H. 264亦提供不參考其它已重建畫面,以外插的方式來取得解碼的像素, 稱為畫面內(nèi)預(yù)測(cè)(intra-frame prediction)。于熵編碼部份,H. 264對(duì)于非轉(zhuǎn)換系數(shù),使 用單一編碼表,而對(duì)于量化過的轉(zhuǎn)換系數(shù),則使用內(nèi)容可適性(Context-adaptive)編碼技 術(shù),依字碼(code word)的出現(xiàn)機(jī)率產(chǎn)生合適的編碼表提高壓縮比率。內(nèi)容可適性編碼技 術(shù)分為兩種,一種為調(diào)適性可變長(zhǎng)度編碼(Context-adaptive Variable-Length Codes,簡(jiǎn) 稱CAVLC),另一種為基于上下文的自適應(yīng)式二進(jìn)制算術(shù)編碼(Context-based Arithmetic Coding,簡(jiǎn)稱 CBAC)。請(qǐng)參考圖4,為利用圖2中視頻解碼系統(tǒng)200解碼H. 264比特流之方法400的示意 圖,其中處理器401-403分別為處理器210-212的實(shí)施方式,熵解碼404、反轉(zhuǎn)換405、運(yùn)動(dòng) 補(bǔ)償406及區(qū)塊噪聲過濾407等分別為熵解碼220、反轉(zhuǎn)換221、運(yùn)動(dòng)補(bǔ)償222與區(qū)塊噪聲 過濾223等硬件加速器的實(shí)施方式,內(nèi)存430為內(nèi)存232的實(shí)施方式。處理器401從內(nèi)存430接收H. 264比特流420,經(jīng)語(yǔ)法解析器程序408得知視頻 編碼標(biāo)準(zhǔn)為H. 264,下指令給熵解碼硬件加速器404對(duì)比特流進(jìn)行解碼。熵解碼硬件加速 器404將所接收到的比特流依語(yǔ)法架構(gòu)解碼出接下來解碼流程所需之主要數(shù)據(jù),包括運(yùn)動(dòng) 向量、量化系數(shù)、畫面內(nèi)預(yù)測(cè)模式的指針等,并傳送給處理器402。處理器402接收到量化系數(shù)后,經(jīng)由反量化程序409得到去量化系數(shù),傳送給反轉(zhuǎn) 換硬件加速器405,并命令其進(jìn)行4X4整數(shù)反轉(zhuǎn)換,將上述去量化系數(shù)從頻率域還原至空 間域像素?cái)?shù)據(jù)并儲(chǔ)存至內(nèi)存430中之共享緩沖區(qū)431,所述空間域像素?cái)?shù)據(jù)又稱為殘余像 素?cái)?shù)據(jù)。處理器402接收到運(yùn)動(dòng)向量后,經(jīng)由運(yùn)動(dòng)向量重建程序410,根據(jù)運(yùn)動(dòng)向量紀(jì)錄的 偏移量,從內(nèi)存430中讀取來自單數(shù)或多個(gè)前一解碼流程中已重建畫面的單數(shù)或多個(gè)參考 宏區(qū)塊,并產(chǎn)生畫面間預(yù)測(cè)宏區(qū)塊,當(dāng)預(yù)測(cè)的宏區(qū)塊像素?cái)?shù)據(jù)產(chǎn)生后,即傳送給運(yùn)動(dòng)補(bǔ)償硬 件加速器406,并命令運(yùn)動(dòng)補(bǔ)償硬件加速器406讀取反轉(zhuǎn)換硬件加速器405儲(chǔ)存至內(nèi)存430 中共享緩沖區(qū)431的殘余像素?cái)?shù)據(jù),將所述殘余像素?cái)?shù)據(jù)與接收到預(yù)測(cè)的宏區(qū)塊像素?cái)?shù)據(jù) 相加得到重建的宏區(qū)塊,之后將重建的宏區(qū)塊儲(chǔ)存到內(nèi)存中430的共享緩沖區(qū)431。當(dāng)處理器402接收到畫面內(nèi)預(yù)測(cè)模式的指針,則通知處理器403的反畫面內(nèi)預(yù)測(cè) 程序412重新產(chǎn)生畫面內(nèi)預(yù)測(cè)宏區(qū)塊。一旦畫面內(nèi)預(yù)測(cè)宏區(qū)塊產(chǎn)生,則由處理器403傳送給 運(yùn)動(dòng)補(bǔ)償硬件加速器406,并命令運(yùn)動(dòng)補(bǔ)償硬件加速器406讀取反轉(zhuǎn)換硬件加速器405儲(chǔ)存 至內(nèi)存中所述共享緩沖區(qū)的殘余像素?cái)?shù)據(jù),將所述殘余像素?cái)?shù)據(jù)與接收到預(yù)測(cè)的宏區(qū)塊像素?cái)?shù)據(jù)相加得到重建的宏區(qū)塊,之后將重建的宏區(qū)塊儲(chǔ)存到內(nèi)存430中的共享緩沖區(qū)431。處理器403的過濾控制程序411監(jiān)視運(yùn)動(dòng)補(bǔ)償硬件加速器406的狀態(tài)緩存器,一 旦運(yùn)動(dòng)補(bǔ)償硬件加速器406完成重建宏區(qū)塊并儲(chǔ)存所述宏區(qū)塊至內(nèi)存430中的共享緩沖區(qū) 431,即命令區(qū)塊噪聲過濾硬件加速器407從內(nèi)存430中共享緩沖區(qū)431讀取所述重建宏區(qū) 塊進(jìn)行去除區(qū)塊效應(yīng),并將去除區(qū)塊效應(yīng)后的重建宏區(qū)塊寫回儲(chǔ)存于內(nèi)存430中目前重建 的畫面,完成宏區(qū)塊的完整解碼。VC-I的前身為WMV第9版。WMV全名為Windows Media Video,是微軟公司自行開 發(fā)的一系列視頻編解碼格式的通稱,微軟公司于2003年將WMV第9版提交至美國(guó)電影與電 WXfMffiti]^ (Society of Motion Picture and Television Engineers, SMPTE), gjc 使WMV9成為視頻編碼標(biāo)準(zhǔn)之一,2006年4月WMV9正式成為視頻編碼標(biāo)準(zhǔn)并由SMPTE命名 為VC-1。VC-I的編碼流程與H. 264相似,都是通過空間域與時(shí)間域中,人類視覺無法察覺 的部份加以編碼,達(dá)到視頻壓縮的效果。VC-I同樣以區(qū)塊做為編碼的基本單元,相較于H. 264提供7種不同大小的宏區(qū) 塊進(jìn)行運(yùn)動(dòng)估計(jì)與運(yùn)動(dòng)補(bǔ)償,VC-I則提供16X16、16X8、8X16與8x8等四種大小的宏區(qū) 塊進(jìn)行分割。VC-I亦提供畫面間預(yù)測(cè)與畫面內(nèi)預(yù)測(cè)兩種動(dòng)態(tài)預(yù)測(cè)模式,對(duì)于畫面間預(yù)測(cè), VC-I提供參考的已重建畫面最多只可往前1張及往后1張,對(duì)于畫面內(nèi)預(yù)測(cè),與H. 264使 用空間域像素?cái)?shù)據(jù)進(jìn)行畫面內(nèi)預(yù)測(cè)有所不同,VC-I使用鄰近區(qū)塊經(jīng)量化的轉(zhuǎn)換系數(shù)作為 預(yù)測(cè)數(shù)據(jù),又稱為交流/直流預(yù)測(cè)(AC/DC prediction)。相較于之前的視頻編碼標(biāo)準(zhǔn)是以 8X8宏區(qū)塊或是4X4區(qū)塊作為轉(zhuǎn)換單位,VC-I允許四種不同大小的適應(yīng)性區(qū)塊大小轉(zhuǎn)換 (Adaptive Block SizeiTransform)。此外,VC-1還有一個(gè)不同的去區(qū)塊效應(yīng)解決方式,稱 為重迭轉(zhuǎn)換(OverlapTransform)。傳統(tǒng)的區(qū)塊噪聲過濾,雖然可以有效降低區(qū)塊效應(yīng),但區(qū) 塊噪聲過濾是在重建還原之后才會(huì)進(jìn)行的步驟,有可能導(dǎo)致影像細(xì)節(jié)丟失。VC-I的重迭轉(zhuǎn) 換技術(shù)則是在編碼時(shí),利用在空間域做前處理,且在解碼時(shí)搭配后置處理來完成,且僅針對(duì) 區(qū)塊型態(tài)為I者執(zhí)行。至于熵編碼部份,VC-I對(duì)于非轉(zhuǎn)換系數(shù)與量化過的轉(zhuǎn)換系數(shù)皆以可 變長(zhǎng)度編碼。
請(qǐng)參閱圖5,為利用圖2中視頻解碼系統(tǒng)200解碼VC-I比特流之方法500的示意 圖,其中處理器501-503分別為處理器210-212的實(shí)施方式,熵解碼504、反轉(zhuǎn)換505、運(yùn)動(dòng) 補(bǔ)償506及區(qū)塊噪聲過濾507等分別為熵解碼220、反轉(zhuǎn)換221、運(yùn)動(dòng)補(bǔ)償222與區(qū)塊噪聲 過濾223等硬件加速器的實(shí)施方式,內(nèi)存530為內(nèi)存232的實(shí)施方式。處理器501從內(nèi)存530接收比特流520,經(jīng)語(yǔ)法解析器程序508得知視頻編碼標(biāo)準(zhǔn) 為VC-I,下指令給熵解碼硬件加速器504對(duì)比特流進(jìn)行解碼。熵解碼硬件加速器504將比 特流依語(yǔ)法架構(gòu)解碼出接下來流程所需之主要數(shù)據(jù),包括運(yùn)動(dòng)向量、量化系數(shù)、交流/直流 預(yù)測(cè)指標(biāo)等。熵解碼硬件加速器504將運(yùn)動(dòng)向量回傳給處理器501,其余則傳送給處理器 502。處理器502接收到量化系數(shù)后,經(jīng)由反量化程序510得到去量化系數(shù),傳送給反 轉(zhuǎn)換硬件加速器505,并命令其進(jìn)行整數(shù)反轉(zhuǎn)換,將上述去量化系數(shù)從頻率域還原至空間域 像素?cái)?shù)據(jù)并儲(chǔ)存至內(nèi)存530中一共享緩沖區(qū)531,所述空間域像素?cái)?shù)據(jù)又稱為殘余像素?cái)?shù) 據(jù)(ResidualValues)。處理器501接收到運(yùn)動(dòng)向量后,經(jīng)由運(yùn)動(dòng)向量重建程序509,根據(jù)運(yùn) 動(dòng)向量紀(jì)錄的偏移量,從內(nèi)存530中讀取前一解碼流程中已重建畫面中的參考宏區(qū)塊,并產(chǎn)生畫面間預(yù)測(cè)宏區(qū)塊,當(dāng)預(yù)測(cè)的宏區(qū)塊像素?cái)?shù)據(jù)產(chǎn)生后,即傳送給運(yùn)動(dòng)補(bǔ)償硬件加速器 506,并命令運(yùn)動(dòng)補(bǔ)償硬件加速器506讀取反轉(zhuǎn)換硬件加速器505儲(chǔ)存至內(nèi)存530中共享緩 沖區(qū)531的上述殘余像素?cái)?shù)據(jù),將所述殘余像素?cái)?shù)據(jù)與接收到預(yù)測(cè)的宏區(qū)塊像素?cái)?shù)據(jù)相加 得到重建的宏區(qū)塊,之后將重建的宏區(qū)塊儲(chǔ)存到內(nèi)存530中共享緩沖區(qū)531。當(dāng)處理器502接收到交流/直流預(yù)測(cè)指標(biāo),則經(jīng)由反交流/直流預(yù)測(cè)程序511重新 產(chǎn)生畫面內(nèi)預(yù)測(cè)宏區(qū)塊。一旦畫面內(nèi)預(yù)測(cè)宏區(qū)塊產(chǎn)生,則由處理器502傳送給運(yùn)動(dòng)補(bǔ)償硬 件加速器506,并命令運(yùn)動(dòng)補(bǔ)償硬件加速器506讀取反轉(zhuǎn)換硬件加速器505儲(chǔ)存至內(nèi)存530 中共享緩沖區(qū)531的上述殘余像素?cái)?shù)據(jù),將所述殘余像素?cái)?shù)據(jù)與接收到預(yù)測(cè)的宏區(qū)塊像素 數(shù)據(jù)相加得到重建的宏區(qū)塊,之后將重建的宏區(qū)塊儲(chǔ)存到內(nèi)存530中共享緩沖區(qū)531。處理器503包含兩程序,一為重迭轉(zhuǎn)換程序512、另一為過濾控制程序513。重迭轉(zhuǎn) 換程序512用來監(jiān)視反轉(zhuǎn)換硬件加速器505的狀態(tài)緩存器,一旦反轉(zhuǎn)換硬件加速器505完 成整數(shù)反轉(zhuǎn)換并儲(chǔ)存上述殘余像素?cái)?shù)據(jù)于內(nèi)存530中共享緩沖區(qū)531,即讀取所述殘余像 素?cái)?shù)據(jù)進(jìn)行重迭轉(zhuǎn)換,再重新寫回內(nèi)存530中共享緩沖區(qū)531。過濾控制程序513監(jiān)視運(yùn)動(dòng) 補(bǔ)償硬件加速器506的狀態(tài)緩存器,一旦運(yùn)動(dòng)補(bǔ)償硬件加速器506完成重建宏區(qū)塊并儲(chǔ)存 所述宏區(qū)塊至內(nèi)存530中共享緩沖區(qū)531,即命令區(qū)塊噪聲過濾硬件加速器507從內(nèi)存530 中共享緩沖區(qū)531讀取所述重建宏區(qū)塊進(jìn)行去除區(qū)塊效應(yīng)(block effect),并于過濾完成 后,將所述重建的宏區(qū)塊寫回儲(chǔ)存于內(nèi)存530中目前重建的畫面,完成宏區(qū)塊的完整解碼。
權(quán)利要求
1.一種多重標(biāo)準(zhǔn)視頻解碼系統(tǒng),其特征在于包括 內(nèi)存,用來儲(chǔ)存比特流及解碼過程中的暫時(shí)性數(shù)據(jù); 多重主端橋接接口,連接至該內(nèi)存;多個(gè)處理器,其中該多個(gè)處理器包含至少一處理器,經(jīng)由該多重主端橋接接口從該內(nèi) 存接收該比特流;以及多個(gè)硬件加速器,每一硬件加速器接收來自所述多個(gè)處理器中的一個(gè)之指令執(zhí)行視頻 解碼流程,并經(jīng)由該多重主端橋接接口存取于該內(nèi)存。
2.如權(quán)利要求1所述之多重標(biāo)準(zhǔn)視頻解碼系統(tǒng),其特征在于,該多個(gè)處理器之間經(jīng)由 點(diǎn)對(duì)點(diǎn)總線連結(jié)。
3.如權(quán)利要求1所述之多重標(biāo)準(zhǔn)視頻解碼系統(tǒng),其特征在于,該多個(gè)處理器與相應(yīng)的 硬件加速器之間經(jīng)由點(diǎn)對(duì)點(diǎn)總線連結(jié)。
4.如權(quán)利要求1所述之多重標(biāo)準(zhǔn)視頻解碼系統(tǒng),其特征在于,該多個(gè)硬件加速器包含 第一硬件加速器,該第一硬件加速器從該多個(gè)處理器中的一個(gè)接收解碼指令執(zhí)行可變長(zhǎng)度解碼。
5.如權(quán)利要求1所述之多重標(biāo)準(zhǔn)視頻解碼系統(tǒng),其特征在于,該多個(gè)硬件加速器包含 第二硬件加速器,該第二硬件加速器從該多個(gè)處理器中的另一個(gè)接收解碼指令執(zhí)行離散余 弦反轉(zhuǎn)換。
6.如權(quán)利要求1所述之多重標(biāo)準(zhǔn)視頻解碼系統(tǒng),其特征在于,該多個(gè)硬件加速器包含第三硬件加速器,該第三硬件加速器從該多個(gè)處理器中的又一個(gè)接收解碼指令執(zhí)行運(yùn)動(dòng)補(bǔ) 償。
7.如權(quán)利要求1所述之多重標(biāo)準(zhǔn)視頻解碼系統(tǒng),其特征在于,該多個(gè)硬件加速器包含 第四硬件加速器,該第四硬件加速器從該多個(gè)處理器中的還一個(gè)接收解碼指令執(zhí)行去區(qū)塊 過濾。
8.如權(quán)利要求1所述之多重標(biāo)準(zhǔn)視頻解碼系統(tǒng),其特征在于,該多個(gè)硬件加速器與該 內(nèi)存共享緩沖區(qū),作為數(shù)據(jù)交換之用。
9.一種多重標(biāo)準(zhǔn)視頻解碼系統(tǒng),其特征在于包括 內(nèi)存;多重主端橋接接口; 點(diǎn)對(duì)點(diǎn)總線;多個(gè)處理器,其中至少一個(gè)處理器經(jīng)由該多重主端橋接接口從該內(nèi)存接收該比特流;以及多個(gè)硬件加速器,所述多個(gè)硬件加速器接收來自該多個(gè)處理器中的一個(gè)的指令執(zhí)行視 頻解碼流程,經(jīng)由該多重主端橋接接口存取于該內(nèi)存,并經(jīng)由點(diǎn)對(duì)點(diǎn)總線連結(jié)所述處理器。
10.如權(quán)利要求9所述之多重標(biāo)準(zhǔn)視頻解碼系統(tǒng),其特征在于,該多個(gè)處理器之間經(jīng)由 點(diǎn)對(duì)點(diǎn)總線連結(jié)。
11.如權(quán)利要求9所述之多重標(biāo)準(zhǔn)視頻解碼系統(tǒng),其特征在于,該多個(gè)硬件加速器包含 第一硬件加速器,該第一硬件加速器從該多個(gè)處理器中的一個(gè)接收解碼指令開始而執(zhí)行可 變長(zhǎng)度解碼。
12.如權(quán)利要求9所述之多重標(biāo)準(zhǔn)視頻解碼系統(tǒng),其特征在于,該多個(gè)硬件加速器包含第二硬件加速器,該第二硬件加速器從該多個(gè)處理器中的另一個(gè)接收解碼指令開始而執(zhí)行 離散余弦反轉(zhuǎn)換。
13.如權(quán)利要求9所述之多重標(biāo)準(zhǔn)視頻解碼系統(tǒng),其特征在于,該多個(gè)硬件加速器包含 第三硬件加速器,該第三硬件加速器從該多個(gè)處理器中的又一個(gè)接收解碼指令而執(zhí)行運(yùn)動(dòng) 補(bǔ)償。
14.如權(quán)利要求9所述之多重標(biāo)準(zhǔn)視頻解碼系統(tǒng),其特征在于,該多個(gè)硬件加速器包含 第四硬件加速器,該第四硬件加速器從該多個(gè)處理器中的還一個(gè)接收解碼指令而執(zhí)行去區(qū) 塊過濾。
15.如權(quán)利要求9所述之多重標(biāo)準(zhǔn)視頻解碼系統(tǒng),其特征在于,該多個(gè)硬件加速器與該 內(nèi)存共享緩沖區(qū),作為數(shù)據(jù)交換之用。
16.一種多重標(biāo)準(zhǔn)視頻解碼方法,執(zhí)行于一多重標(biāo)準(zhǔn)視頻解碼系統(tǒng)中,其特征在于包括該多重標(biāo)準(zhǔn)視頻解碼系統(tǒng)的第一處理器接收比特流; 通過該多重標(biāo)準(zhǔn)視頻解碼系統(tǒng)的第一硬件加速器執(zhí)行可變長(zhǎng)度編碼; 通過該多重標(biāo)準(zhǔn)視頻解碼系統(tǒng)的第二硬件加速器執(zhí)行離散余弦反轉(zhuǎn)換; 通過該多重標(biāo)準(zhǔn)視頻解碼系統(tǒng)的第三硬件加速器執(zhí)行運(yùn)動(dòng)補(bǔ)償;以及 通過該多重標(biāo)準(zhǔn)視頻解碼系統(tǒng)的第四硬件加速器執(zhí)行去區(qū)塊過濾。
17.如權(quán)利要求16所述之多重標(biāo)準(zhǔn)視頻解碼方法,其特征在于,該第二硬件加速器、該 第三硬件加速器以及該第四硬件加速器共享緩沖區(qū)以交換數(shù)據(jù)。
全文摘要
一種多重標(biāo)準(zhǔn)視頻解碼系統(tǒng),包括內(nèi)存、多重主端橋接接口、多個(gè)點(diǎn)對(duì)點(diǎn)總線、多個(gè)處理器以及多個(gè)硬件加速器。所述內(nèi)存用來儲(chǔ)存比特流及解碼過程中的暫時(shí)性數(shù)據(jù)。所述多重主端橋接接口連接至所述內(nèi)存。所述多個(gè)處理器中的一個(gè)經(jīng)由所述多重主端橋接接口從所述內(nèi)存接收所述比特流;以及各所述多個(gè)硬件加速器接收來自所述多個(gè)處理器中中的一個(gè)的指令執(zhí)行視頻解碼流程,并經(jīng)由所述多重主端橋接接口存取所述內(nèi)存。所述多個(gè)處理器與各所述多個(gè)硬件加速器間經(jīng)由所述多個(gè)點(diǎn)對(duì)點(diǎn)總線相互連結(jié)。
文檔編號(hào)H04N7/26GK102055970SQ20091030946
公開日2011年5月11日 申請(qǐng)日期2009年11月9日 優(yōu)先權(quán)日2009年11月9日
發(fā)明者施澤聰, 李一心, 林聲偉, 童怡新 申請(qǐng)人:鴻富錦精密工業(yè)(深圳)有限公司, 鴻海精密工業(yè)股份有限公司