国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      視頻解碼方法和系統(tǒng)的制作方法

      文檔序號(hào):7746067閱讀:242來源:國(guó)知局
      專利名稱:視頻解碼方法和系統(tǒng)的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及圖像處理領(lǐng)域,更具體地涉及一種視頻解碼方法和系統(tǒng)。
      背景技術(shù)
      在傳統(tǒng)的桌面或手持設(shè)備中,視頻解碼通常由中央處理單元(CPU)執(zhí)行。對(duì)于不具有強(qiáng)大CPU的系統(tǒng)而言,對(duì)高清(HD)視頻進(jìn)行解碼是非常困難的。為了對(duì)HD視頻進(jìn)行解碼,一個(gè)解決方案是在這種系統(tǒng)中添加專用的視頻解碼芯片,但是這種方案成本太高;另一種解決方案在這種系統(tǒng)中設(shè)置圖形處理單元(GPU),由GPU來完成部分解碼任務(wù)。適合由GPU來完成的解碼處理包括反量化(IQ)、反離散余弦變換(IDCT)、運(yùn)動(dòng)補(bǔ)償(MC)以及色彩空間轉(zhuǎn)換(CSC)。這些處理通常由頂點(diǎn)著色器和片斷著色器完成。MC處理是所有這些處理中最復(fù)雜的處理。MC處理的復(fù)雜性是由于畫面類型、運(yùn)動(dòng)類型、預(yù)測(cè)方向、畫面DCT(離散余弦變換)編碼類型、以及內(nèi)插類型的不同選擇導(dǎo)致的。對(duì)于幀畫面,前向預(yù)測(cè)中存在MC_FRAME、MC_FIELD、以及MC_DMV三種運(yùn)動(dòng)類型,并且在后向預(yù)測(cè)中存在MC_ FRAME和MC_FIELD兩種運(yùn)動(dòng)類型。對(duì)于場(chǎng)畫面(上場(chǎng)和下場(chǎng)),前向預(yù)測(cè)中存在MC_FIELD、 MC_16 X 8兩種運(yùn)動(dòng)類型,后向預(yù)測(cè)中存在MC_FIELD和MC_16 X 8兩種運(yùn)動(dòng)類型。還存在兩種用于預(yù)測(cè)的內(nèi)插方法,即整數(shù)采樣和雙線性內(nèi)插。利用GPU進(jìn)行MC的傳統(tǒng)方法通常根據(jù)不同的畫面類型、運(yùn)動(dòng)類型以及內(nèi)插類型, 將MC處理劃分到多個(gè)著色器中。每個(gè)著色器利用畫面中的矩形對(duì)宏塊(MB)進(jìn)行渲染。這樣,一個(gè)畫面中將存在很多矩形需要被處理。在不同矩形之間的著色器切換將帶來很大開銷。

      發(fā)明內(nèi)容
      鑒于以上所述的一個(gè)或多個(gè)問題,本發(fā)明提供了一種新穎的視頻解碼方法和系統(tǒng)。根據(jù)本發(fā)明實(shí)施例的視頻解碼方法包括通過利用中央處理單元對(duì)一個(gè)畫面的編碼后的視頻數(shù)據(jù)進(jìn)行變長(zhǎng)解碼和反掃描,獲取所述一個(gè)畫面的變長(zhǎng)解碼和反掃描后的視頻數(shù)據(jù);以及通過利用可編程圖形處理單元對(duì)所述一個(gè)畫面的變長(zhǎng)解碼和反掃描后的視頻數(shù)據(jù)進(jìn)行反量化、反離散余弦變換、運(yùn)動(dòng)補(bǔ)償以及色彩空間轉(zhuǎn)換,獲取所述一個(gè)畫面的完成解碼后的視頻數(shù)據(jù)。其中,所述一個(gè)畫面的變長(zhǎng)解碼、反掃描、反量化、以及反離散余弦變換后的視頻數(shù)據(jù)包含有所述一個(gè)畫面中的每個(gè)像素的亮度殘差值和色度殘差值,通過根據(jù)等式 (1)對(duì)所述一個(gè)畫面中的任意一個(gè)像素的亮度/色度殘差值進(jìn)行運(yùn)動(dòng)補(bǔ)償來獲取所述一個(gè)像素的亮度/色度值sum = residual+(1. 0-MC_flag)氺128. 0+MC_flag氺prediction (1)其中,sum表示所述一個(gè)像素的亮度/色度值,residual表示所述一個(gè)像素的亮度 /色度殘差值,prediction表示所述一個(gè)像素的亮度/色度預(yù)測(cè)值,MC_flag是所述一個(gè)像素所在宏塊的運(yùn)動(dòng)補(bǔ)償標(biāo)記,當(dāng)所述一個(gè)像素所在宏塊為幀內(nèi)編碼宏塊時(shí)MC_flag = 0,當(dāng)所述一個(gè)像素所在宏塊不是幀內(nèi)編碼宏塊時(shí)MC_flag = 1。根據(jù)本發(fā)明實(shí)施例的視頻解碼系統(tǒng)包括中央處理單元,被配置為通過對(duì)一個(gè)畫面的編碼后的視頻數(shù)據(jù)進(jìn)行變長(zhǎng)解碼和反掃描,獲取所述一個(gè)畫面的變長(zhǎng)解碼和反掃描后的視頻數(shù)據(jù);可編程圖形處理單元,被配置為通過對(duì)所述一個(gè)畫面的變長(zhǎng)解碼和反掃描后的視頻數(shù)據(jù)進(jìn)行反量化、反離散余弦變換、運(yùn)動(dòng)補(bǔ)償以及色彩空間轉(zhuǎn)換,獲取所述一個(gè)畫面的完成解碼后的視頻數(shù)據(jù)。其中,所述一個(gè)畫面的變長(zhǎng)解碼、反掃描、反量化、以及反離散余弦變換后的視頻數(shù)據(jù)包含有所述一個(gè)畫面中的每個(gè)像素的亮度殘差值和色度殘差值??删幊虉D形處理單元通過根據(jù)等式(1)對(duì)所述一個(gè)畫面中的任意一個(gè)像素的亮度/色度殘差值進(jìn)行運(yùn)動(dòng)補(bǔ)償來獲取所述一個(gè)像素的亮度/色度值sum = residual+(1. 0-MC_flag)*128. 0+MC_flag氺prediction (1)其中,sum表示所述一個(gè)像素的亮度/色度值,residual表示所述一個(gè)像素的亮度 /色度殘差值,prediction表示所述一個(gè)像素的亮度/色度預(yù)測(cè)值,MC_flag是所述一個(gè)像素所在宏塊的運(yùn)動(dòng)補(bǔ)償標(biāo)記,當(dāng)所述一個(gè)像素所在宏塊為幀內(nèi)編碼宏塊時(shí)MC_flag = 0,當(dāng)所述一個(gè)像素所在宏塊不是幀內(nèi)編碼宏塊時(shí)MC_flag = 1。本發(fā)明將不同預(yù)測(cè)方向、不同運(yùn)動(dòng)類型、以及不同編碼類型的場(chǎng)畫面或幀畫面的運(yùn)動(dòng)補(bǔ)償處理結(jié)合在了一起,并且將一個(gè)畫面當(dāng)作一個(gè)矩形進(jìn)行處理,所以不需要對(duì)著色器進(jìn)行切換,從而提高了處理速度。


      從下面結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施方式
      的描述中可以更好地理解本發(fā)明,其中圖1示出了根據(jù)本發(fā)明實(shí)施例的視頻解碼方法和系統(tǒng)的邏輯圖;圖2示出了根據(jù)本發(fā)明實(shí)施例的遵循OpenGL ES 2. 0 (其是一種嵌入式3D圖形算法標(biāo)準(zhǔn))的可編程圖形流水線;圖3示出了由圖2所示的片斷著色器實(shí)現(xiàn)的MC著色器的邏輯圖;圖4A和圖4B分別示出了幀DCT編碼和場(chǎng)DCT編碼的示意圖;圖5示出了根據(jù)本發(fā)明實(shí)施例的視頻解碼系統(tǒng)的邏輯框圖;圖6示出了在場(chǎng)畫面中對(duì)像素的亮度/色度殘差值進(jìn)行采樣的示意圖;圖7示出了專用于幀畫面的MC著色器的結(jié)構(gòu);圖8示出了專用于場(chǎng)畫面的MC著色器的結(jié)構(gòu);以及圖9示出了 MC著色器處理器的硬件示意圖。
      具體實(shí)施例方式下面將詳細(xì)描述本發(fā)明各個(gè)方面的特征和示例性實(shí)施例。下面的描述涵蓋了許多具體細(xì)節(jié),以便提供對(duì)本發(fā)明的全面理解。但是,對(duì)于本領(lǐng)域技術(shù)人員來說顯而易見的是, 本發(fā)明可以在不需要這些具體細(xì)節(jié)中的一些細(xì)節(jié)的情況下實(shí)施。下面對(duì)實(shí)施例的描述僅僅是為了通過示出本發(fā)明的示例來提供對(duì)本發(fā)明更清楚的理解。本發(fā)明絕不限于下面所提出的任何具體配置和算法,而是在不脫離本發(fā)明的精神的前提下覆蓋了相關(guān)元素、部件和算法的任何修改、替換和改進(jìn)。
      由于在MPEG-2視頻解碼中按照從左到右、從上到下的順序?qū)陦K(MB)進(jìn)行處理, 所以MPEG-2視頻解碼系統(tǒng)中的坐標(biāo)系χ軸指向右,y軸指向下。而在OpenGL ES 2. 0 (其是Khronos Group在2007年3月份制定的一種業(yè)界標(biāo)準(zhǔn)應(yīng)用程序編程接口,可以大大提高不同消費(fèi)電子設(shè)備的三維圖形渲染速度,在嵌入式系統(tǒng)上實(shí)現(xiàn)了全面可編程的三維圖形) 中,坐標(biāo)系χ軸指向右,y軸指向上。圖1示出了根據(jù)本發(fā)明實(shí)施例的視頻解碼方法和系統(tǒng)的邏輯圖。如圖1所示,該視頻解碼方法和系統(tǒng)在邏輯上包括變長(zhǎng)解碼(VLD)、反掃描(IS)、反量化(IQ)、反離散余弦變換(IDCT)、運(yùn)動(dòng)補(bǔ)償(MC)以及色彩空間轉(zhuǎn)換(CSC)處理102 114。除了 CSC處理以外的所有處理都遵循MPEG-2標(biāo)準(zhǔn)。具體地,該視頻解碼方法和系統(tǒng)對(duì)需要解碼的一幀(或者一場(chǎng))畫面的視頻數(shù)據(jù)進(jìn)行解碼,并將解碼后的視頻數(shù)據(jù)發(fā)送給顯示器以顯示該一幀(或者一場(chǎng))畫面。也就是說,該視頻解碼方法和系統(tǒng)逐畫面地對(duì)視頻數(shù)據(jù)流進(jìn)行解碼處理。 在圖1中,VLD和IS處理將在CPU 116中完成,VLD和IS處理后的視頻數(shù)據(jù)被存儲(chǔ)在應(yīng)用存儲(chǔ)器120中。應(yīng)用存儲(chǔ)器也可以被稱為CPU存儲(chǔ)器、用戶空間存儲(chǔ)器或客戶存儲(chǔ)器。在 VLD和IS處理后的視頻數(shù)據(jù)被從應(yīng)用存儲(chǔ)器傳遞到圖形存儲(chǔ)器122后,IQ、IDCT、MC以及 CSC處理將在GPU 118中完成(主要由GPU中的片斷著色器完成)。在圖形術(shù)語中,圖形存儲(chǔ)器通常被稱為主機(jī)存儲(chǔ)器。其中,由于畫面類型、運(yùn)動(dòng)類型、預(yù)測(cè)方向、畫面DCT編碼類型、以及內(nèi)插類型的不同,MC處理是上述這些處理中最復(fù)雜的一項(xiàng)處理。在本發(fā)明中,可以使用幀處理結(jié)構(gòu)來對(duì)幀畫面進(jìn)行處理,并使用場(chǎng)處理結(jié)構(gòu)來對(duì)場(chǎng)畫面進(jìn)行場(chǎng)處理。圖2示出了根據(jù)本發(fā)明實(shí)施例的遵循OpenGL ES 2. 0的可編程圖形流水線。該流水線包括頂點(diǎn)著色器202、圖元裝配單元204、柵格化單元206、片斷著色器208、以及逐片斷操作單元210。其中,頂點(diǎn)著色器和片斷著色器是可編程的,其他單元是固定功能。由可編程著色器實(shí)現(xiàn)的GPU被稱為可編程GPU。下面詳細(xì)描述圖2所示的可編程圖形流水線的具體處理過程。在圖2中,一個(gè)畫面 (該畫面可以看作一個(gè)矩形塊)的坐標(biāo)(即,該畫面的四個(gè)頂點(diǎn)的位置坐標(biāo)和紋理坐標(biāo))被發(fā)送給頂點(diǎn)緩存(其由頂點(diǎn)著色器202使用)。頂點(diǎn)著色器對(duì)該畫面的四個(gè)頂點(diǎn)逐一進(jìn)行處理。在OpenGL ES 2. 0中,頂點(diǎn)著色器進(jìn)行的處理包括對(duì)頂點(diǎn)坐標(biāo)進(jìn)行平移、旋轉(zhuǎn)、透視變換等幾何操作,為頂點(diǎn)計(jì)算光照值或生成紋理坐標(biāo)等,但是在本發(fā)明中,這些操作都不會(huì)使用,唯一要做的就是保持頂點(diǎn)的位置坐標(biāo)不變。圖元裝配單元所完成的操作包括裁剪、透視除法、以及視圖變換等,這些操作能將該畫面的大小設(shè)置為期望尺寸。柵格化單元完成圖元的柵格化過程,將該畫面所對(duì)應(yīng)的兩個(gè)三角形圖元用片段進(jìn)行填充,這里一個(gè)片段包含對(duì)應(yīng)的像素以及附屬的信息。在圖元裝配單元和柵格化單元的處理之后,圖形流水線生成將由片斷著色器進(jìn)行處理的片斷。在片段著色器的使用過程中,該畫面的視頻數(shù)據(jù)將被作為紋理對(duì)象發(fā)送給紋理存儲(chǔ)器(其由片斷著色器使用)。片段著色器對(duì)每個(gè)片段進(jìn)行IQ、 IDCT、MC和CSC處理過程,然后每個(gè)片段被送入逐片段操作單元。逐片段操作單元對(duì)每個(gè)片段進(jìn)行裁剪框檢測(cè)、模板緩沖區(qū)檢測(cè)、深度緩沖區(qū)檢測(cè)、混色、以及抖動(dòng)操作,這些操作能將片段轉(zhuǎn)化為可見的像素,以用于顯示。在以上圖形流水線的每個(gè)階段,產(chǎn)生的結(jié)果被存儲(chǔ)到幀緩存中。幀緩存可以是與將要描畫的表面或者紋理對(duì)象有關(guān)的圖形緩存。幀緩存中的這些紋理對(duì)象也可以被用作紋理存儲(chǔ)器中的對(duì)象。當(dāng)然,OpenGL ES 2.0應(yīng)用程序接口(API)可以控制頂點(diǎn)緩存對(duì)象、流水線中的著色器、紋理存儲(chǔ)器中的紋理對(duì)象、以及幀緩存。由于片斷著色器可以更靈活地訪問圖形存儲(chǔ)器并且具有更多的計(jì)算資源,所以在根據(jù)本發(fā)明實(shí)施例的視頻解碼處理中,IQ、IDCT、MC以及CSC處理由片斷著色器完成。其中,每個(gè)畫面將被作為一個(gè)矩形進(jìn)行處理。每個(gè)矩形包括兩個(gè)三角形,這兩個(gè)三角形都可以被畫為三角形扇或者三角形條帶。圖3示出了由圖2所示的片斷著色器實(shí)現(xiàn)的MC著色器的邏輯圖。該MC著色器對(duì)需要處理的一個(gè)畫面中的亮度值(Y)、藍(lán)色色度值(Cb)、以及紅色色度值(Cr)分別進(jìn)行處理。首先,MC著色器302逐畫面(幀畫面或場(chǎng)畫面)地對(duì)需要處理的一個(gè)畫面的IDCT處理結(jié)果進(jìn)行采樣,即從該畫面的IDCT處理結(jié)果中采樣該畫面中每個(gè)像素的亮度/色度殘差值(Y’ /Cb' /Cr')(作為紋理304)。其次,MC著色器302從需要處理的一個(gè)畫面的前向參考幀306采樣前向參考幀中每個(gè)像素的亮度/色度值,并從后向參考幀308采樣需要處理的一個(gè)畫面的后向參考幀中每個(gè)像素的亮度/色度值,并將這些采樣值作為需要處理的一個(gè)畫面中像素的亮度/色度預(yù)測(cè)值。為了避免對(duì)參考方向(包括前向參考、后向參考和雙向參考)不同的多個(gè)畫面分別進(jìn)行設(shè)置,根據(jù)本發(fā)明實(shí)施例的MC著色器同時(shí)對(duì)前向和后向參考幀進(jìn)行設(shè)置,即使僅存在一個(gè)參考方向。最后,MC著色器302將需要處理的一個(gè)畫面中的每個(gè)像素的亮度/色度殘差值和亮度/色度預(yù)測(cè)值疊加在一起,發(fā)送到幀緩存310,以用于進(jìn)行CSC處理。一個(gè)畫面將被作為包括兩個(gè)三角形的一個(gè)矩形進(jìn)行處理。該矩形的四個(gè)頂點(diǎn)的位置坐標(biāo)為(-1. 0,-1. 0)、(1. 0,-1. 0)、(1. 0,1. 0)、以及(-1. 0,1.0),紋理坐標(biāo)為(0. 0,0. 0), (1.0,0.0)、(1.0,1.0)、以及(0.0,1.0)。這些頂點(diǎn)的位置坐標(biāo)和紋理坐標(biāo)由頂點(diǎn)著色器計(jì)算得出,并被作為屬性發(fā)送給MC著色器302。來自頂點(diǎn)著色器的每個(gè)片斷(即,像素)的紋理坐標(biāo)v_texc00rd被MC著色器302用來對(duì)每個(gè)像素的亮度/色度殘差值和亮度/色度預(yù)測(cè)值進(jìn)行采樣。需要處理的畫面的視窗大小和畫面類型被打包為(vp_width,vp_height, picture_structure,0. 0)并且被作為常量發(fā)送給 MC 著色器 302。vp_width 和 vp_height 分別表示需要處理的畫面的視窗寬度和視窗高度,picture_structure表示需要處理的畫面的畫面類型。例如,當(dāng)需要處理的畫面為幀畫面時(shí)picture_structure = 0,當(dāng)需要處理的畫面為場(chǎng)畫面時(shí)picture_structure = 1。對(duì)于需要處理的一個(gè)幀畫面,其預(yù)測(cè)模式可能為幀預(yù)測(cè)模式、雙基預(yù)測(cè)模式、以及場(chǎng)預(yù)測(cè)模式中的一種。其中,在幀預(yù)測(cè)模式(該模式只是用于幀畫面)下,需要處理的幀畫面中的每個(gè)宏塊具有相對(duì)于前向或后向參考幀的一個(gè)運(yùn)動(dòng)向量,或者具有相對(duì)于前向和后向參考幀的兩個(gè)運(yùn)動(dòng)向量;在雙基預(yù)測(cè)模式下,需要處理的幀畫面被分成頂場(chǎng)和底場(chǎng)兩個(gè)場(chǎng)來預(yù)測(cè),并且需要處理的幀畫面頂場(chǎng)中的每個(gè)宏塊具有相對(duì)于前向參考幀的頂場(chǎng)和底場(chǎng)的兩個(gè)運(yùn)動(dòng)向量,需要處理的幀畫面底場(chǎng)中的每個(gè)宏塊具有相對(duì)于前向參考幀的頂場(chǎng)和底場(chǎng)的兩個(gè)運(yùn)動(dòng)向量;在場(chǎng)預(yù)測(cè)模式下,需要處理的幀畫面被分成頂場(chǎng)和底場(chǎng)兩個(gè)場(chǎng)來預(yù)測(cè), 并且需要處理的幀畫面頂場(chǎng)中的每個(gè)宏塊具有相對(duì)于前向或后向參考幀的頂場(chǎng)的一個(gè)運(yùn)動(dòng)向量或者具有相對(duì)于前向和后向參考幀的頂場(chǎng)的兩個(gè)運(yùn)動(dòng)向量,需要處理的幀畫面底場(chǎng)中的每個(gè)宏塊具有相對(duì)于前向或后向參考幀的底場(chǎng)的一個(gè)運(yùn)動(dòng)向量或者具有相對(duì)于前向和后向參考幀的底場(chǎng)的兩個(gè)運(yùn)動(dòng)向量。
      對(duì)于需要處理的一個(gè)場(chǎng)畫面,其預(yù)測(cè)模式可能為場(chǎng)預(yù)測(cè)模式、雙基預(yù)測(cè)模式、以及 16X8預(yù)測(cè)模式中的一種。其中,在場(chǎng)預(yù)測(cè)模式下,需要處理的場(chǎng)畫面中的每個(gè)宏塊具有相對(duì)于前向或后向參考幀的一個(gè)運(yùn)動(dòng)向量,或者具有相對(duì)于前向和后向參考幀的兩個(gè)運(yùn)動(dòng)向量;在雙基預(yù)測(cè)模式下,需要處理的場(chǎng)畫面中的每個(gè)宏塊具有相對(duì)于前向參考幀的頂場(chǎng)和底場(chǎng)的兩個(gè)運(yùn)動(dòng)向量;在16X8預(yù)測(cè)模式下,需要處理的場(chǎng)畫面中的每個(gè)宏塊被分成上半部分和下半部分來預(yù)測(cè),并且需要處理的場(chǎng)畫面中的每個(gè)宏塊的上半部分具有相對(duì)于前向或后向參考幀的一個(gè)運(yùn)動(dòng)向量或者具有相對(duì)于前向和后向參考幀的兩個(gè)運(yùn)動(dòng)向量,需要處理的幀畫面底場(chǎng)中的每個(gè)宏塊的下半部分具有相對(duì)于前向或后向參考幀的一個(gè)運(yùn)動(dòng)向量或者具有相對(duì)于前向和后向參考幀的兩個(gè)運(yùn)動(dòng)向量。在這里需要說明的是,每個(gè)宏塊包括16X16個(gè)像素,并且每個(gè)宏塊的運(yùn)動(dòng)向量即是其中包含的每個(gè)像素的運(yùn)動(dòng)向量。為了通過一個(gè)MC著色器統(tǒng)一對(duì)多個(gè)場(chǎng)畫面或多個(gè)幀畫面進(jìn)行MC處理,本發(fā)明將用四個(gè)運(yùn)動(dòng)向量組來描述需要處理的一個(gè)畫面中包含的所有宏塊的運(yùn)動(dòng)向量。在需要處理的畫面為幀畫面的情況下,當(dāng)該畫面的預(yù)測(cè)模式為幀預(yù)測(cè)時(shí),該畫面中每個(gè)宏塊相對(duì)于前向參考幀的運(yùn)動(dòng)向量組成了第一運(yùn)動(dòng)向量組(MVl),每個(gè)宏塊相對(duì)于后向參考幀的運(yùn)動(dòng)向量組成了第二運(yùn)動(dòng)向量組(MV2),第三和第四運(yùn)動(dòng)向量組(MV3和MV4) 中的所有元素都為零;當(dāng)該畫面的預(yù)測(cè)模式是場(chǎng)預(yù)測(cè)模式時(shí),該畫面的頂場(chǎng)中的每個(gè)宏塊相對(duì)于前向參考幀和后向參考幀的頂場(chǎng)的運(yùn)動(dòng)向量分別組成了第一向量組和第二向量組 (MVl和MV2),該畫面的底場(chǎng)中的每個(gè)宏塊相對(duì)于前向參考幀和后向參考幀的底場(chǎng)的運(yùn)動(dòng)向量分別組成了第三向量組和第四向量組(MV3和MV4);當(dāng)該畫面的預(yù)測(cè)模式是雙基預(yù)測(cè)模式時(shí),該畫面的頂場(chǎng)中的每個(gè)宏塊相對(duì)于前向參考幀的頂場(chǎng)和底場(chǎng)的運(yùn)動(dòng)向量分別組成了第一向量組(MVl)和第三向量組(MV3),該畫面的底場(chǎng)中的每個(gè)宏塊相對(duì)于前向參考幀的頂場(chǎng)和底場(chǎng)的運(yùn)動(dòng)向量分別組成了第二向量組(MV2)和第四向量組(MV4)。需要說明的是,如果需要處理的畫面的預(yù)測(cè)方向是前向,則該畫面中每個(gè)宏塊相對(duì)于后向參考幀的運(yùn)動(dòng)向量將為零,即MV2或MV4中的所有元素均為零;如果需要處理的畫面的預(yù)測(cè)方向是后向,則該畫面中每個(gè)宏塊相對(duì)于前向參考幀的運(yùn)動(dòng)向量將為零,即MVl或MV3中的所有元素均為零。在需要處理的畫面為場(chǎng)畫面的情況下,當(dāng)該畫面的預(yù)測(cè)模式是場(chǎng)預(yù)測(cè)模式時(shí),該畫面中的每個(gè)宏塊相對(duì)于前向參考幀和后向參考幀的運(yùn)動(dòng)向量分別組成了第一向量組 (MVl)和第二向量組(MV2);當(dāng)該畫面的預(yù)測(cè)模式是雙基預(yù)測(cè)模式時(shí),該畫面中的每個(gè)宏塊相對(duì)于前向參考幀的頂場(chǎng)和底場(chǎng)的運(yùn)動(dòng)向量分別組成第一向量組(MVl)和第二向量組 (MV2);當(dāng)該畫面的預(yù)測(cè)模式是16X8預(yù)測(cè)模式時(shí),該畫面中的每個(gè)宏塊的上半部分相對(duì)于前向參考幀和后向參考幀的運(yùn)動(dòng)向量分別組成了第一向量組(MVl)和第二向量組(MV2), 且該畫面中的每個(gè)宏塊的下半部分相對(duì)于前向參考幀和后向參考幀的運(yùn)動(dòng)向量分別組成了第三向量組(MV3)和第四向量組(MV4)。同樣,如果需要處理的畫面的預(yù)測(cè)方向是前向, 則該畫面中每個(gè)宏塊相對(duì)于后向參考幀的運(yùn)動(dòng)向量將為零,即MV2或MV4中的每個(gè)元素均為零;如果需要處理的畫面的預(yù)測(cè)方向是后向,則該畫面中每個(gè)宏塊相對(duì)于前向參考幀的運(yùn)動(dòng)向量將為零,即MVl或MV3中的每個(gè)元素均為零。在本發(fā)明的實(shí)施例中,由于RGBA(紅-綠-藍(lán)-透明度)通道中的每個(gè)通道具有8個(gè)比特,并且這8比特?cái)?shù)據(jù)沒有正負(fù)之分(即,都為正),所以需要將一個(gè)宏塊的前向或后向運(yùn)動(dòng)向量打包為這樣的形式(運(yùn)動(dòng)向量的χ分量的絕對(duì)值,運(yùn)動(dòng)向量的Χ分量的符號(hào)標(biāo)記,運(yùn)動(dòng)向量的y分量的絕對(duì)值,運(yùn)動(dòng)向量的y分量的符號(hào)標(biāo)記)。其中,當(dāng)運(yùn)動(dòng)向量的χ和 y分量為負(fù)時(shí),運(yùn)動(dòng)向量的χ和y分量的符號(hào)標(biāo)記均為1. 0,當(dāng)運(yùn)動(dòng)向量的χ和y分量為正時(shí),運(yùn)動(dòng)向量的χ和y分量的符號(hào)標(biāo)記均為0. 0。另外,對(duì)于需要處理的一個(gè)畫面,該畫面中每個(gè)宏塊的運(yùn)動(dòng)補(bǔ)償標(biāo)記MC_flag、預(yù)測(cè)方向標(biāo)記ref_direCt、DCT編碼類型標(biāo)記dct_type、以及顯示場(chǎng)選擇標(biāo)記ffs被打包為 (MC_flag,ref_direct, dct_type, ffs),并且被作為紋理發(fā)送給MC著色器302。另外,每個(gè)宏塊的參考場(chǎng)選擇標(biāo)記mvfs也被作為紋理利用RGBA通道發(fā)送到MC著色器302。對(duì)于每個(gè)宏塊,這些紋理被與該宏塊相關(guān)聯(lián)地打包在一起。這里需要說明的是,一個(gè)畫面中的宏塊可以具有不同的運(yùn)動(dòng)補(bǔ)償方式、不同的DCT編碼類型、以及不同的顯示場(chǎng)選擇,但是一個(gè)畫面中的宏塊一定具有相同的預(yù)測(cè)方向。DCT編碼類型只存在于幀畫面中,而不存在于場(chǎng)畫面中。在本發(fā)明的實(shí)施例中,當(dāng)一個(gè)宏塊是幀內(nèi)編碼宏塊時(shí),該宏塊的運(yùn)動(dòng)補(bǔ)償標(biāo)記MC_ flag = 0 ;當(dāng)一個(gè)宏塊不是幀內(nèi)編碼宏塊時(shí),該宏塊的運(yùn)動(dòng)補(bǔ)償標(biāo)記MC_flag = 1。當(dāng)一個(gè)宏塊的預(yù)測(cè)方向?yàn)榍跋驎r(shí),該宏塊的預(yù)測(cè)方向標(biāo)記ref_direct = 0 ;當(dāng)一個(gè)宏塊的預(yù)測(cè)方向?yàn)楹笙驎r(shí),該宏塊的預(yù)測(cè)方向標(biāo)記ref_direct = 1 ;以及當(dāng)一個(gè)宏塊的預(yù)測(cè)方向?yàn)殡p向時(shí),該宏塊的預(yù)測(cè)方向標(biāo)記ref_direct = 2。當(dāng)一個(gè)宏塊的DCT編碼類型為幀DCT編碼時(shí), 該宏塊的DCT編碼類型標(biāo)記dct_type = 0 ;當(dāng)一個(gè)宏塊的DCT編碼類型為場(chǎng)DCT編碼時(shí), 該宏塊的DCT編碼類型標(biāo)記dct_type = 1。當(dāng)一個(gè)宏塊的顯示場(chǎng)為頂場(chǎng)時(shí),該宏塊的顯示場(chǎng)選擇標(biāo)記ffs = 0 ;當(dāng)一個(gè)宏塊的顯示場(chǎng)為底場(chǎng)時(shí),該宏塊的顯示場(chǎng)選擇標(biāo)記ffs = 1。圖4A和圖4B分別示出了幀DCT編碼和場(chǎng)DCT編碼的示意圖。如圖4A中所示,在需要處理的幀畫面中的一個(gè)像素所在宏塊的DCT編碼類型為幀DCT編碼的情況下,可以從該需要處理的幀畫面中獲取該像素的亮度/色度殘差值,并將所獲取的亮度/色度殘差值作為將要顯示的畫面中的相同位置的像素的亮度/色度殘差值。如圖4B所示,在需要處理的幀畫面中的一個(gè)像素所在宏塊的DCT編碼類型為場(chǎng)DCT編碼的情況下,可以從該需要處理的幀畫面中獲取該像素的亮度/色度殘差值,并將所獲取的亮度/色度殘差值作為將要顯示的畫面中的相對(duì)于該像素的紋理坐標(biāo)存在一定偏移的位置的像素的亮度/色度殘差值。具體地,假設(shè)需要處理的畫面中的像素A的紋理坐標(biāo)為v_teXC00rd,可以將需要處理的畫面中的相對(duì)于像素A存在一定偏移的、紋理坐標(biāo)為texRef的像素B的亮度/色度殘差值作為將要顯示的畫面中與像素A的紋理坐標(biāo)相同的像素C的亮度/色度殘差值texRef. s = v_texCoord. s(1)texRef. t = startTexCoord. t+(dety+2. 0*fraction*8. 0)*texDet. t (2)fraction = fract((gl_FragCoord-0. 5)/2. 0). y(3)其中,v_teXC00rd. s表示需要處理的畫面中的像素A的紋理坐標(biāo)的s分量, texRef. s表示需要處理的畫面中的像素B的紋理坐標(biāo)的s分量,texRef. t表示需要處理的畫面中的像素B的紋理坐標(biāo)的t分量,startTexCoord. t表示需要處理的畫面中的像素 A所在宏塊的最左下側(cè)像素的紋理坐標(biāo)的t分量,dety表示需要處理的畫面中的像素A與像素A所在宏塊的最下側(cè)像素行之間的距離,texDet.t表示需要處理的畫面中的像素A 與像素A所在宏塊的最左下側(cè)像素之間的紋理坐標(biāo)距離的t分量,gl_FragCoord表示需要處理的畫面中的像素A的位置坐標(biāo),fract ()表示求余函數(shù),fraction表示fract((gl_ FragCoord-O. 5) /2. 0)的 y 分量。注意,gl_FragCoord 通常取諸如(0. 5,0. 5)、(0. 5,1. 5)、 (1.5,0. 5), (1.5, 2. 5)之類的值,所以fraction通常取0. 0或0. 5。對(duì)于幀DCT編碼類型, 可以將紋理坐標(biāo)偏移看作0。圖5示出了根據(jù)本發(fā)明實(shí)施例的視頻解碼系統(tǒng)的邏輯框圖。如圖5所示,該視頻解碼系統(tǒng)包括中央處理單元502和可編程圖形處理單元504。其中,可編程圖形處理單元 504進(jìn)一步包括畫面類型判斷單元5042、編碼類型判斷單元5044、殘差值獲取單元5046、預(yù)測(cè)模式判斷單元5048、預(yù)測(cè)方向判斷單元5050、運(yùn)動(dòng)向量獲取單元5052、運(yùn)動(dòng)向量計(jì)算單元5054、預(yù)測(cè)值計(jì)算單元5056、以及偏移量計(jì)算單元5058。對(duì)于一個(gè)需要處理的畫面(為了描述方便,這里記為畫面D),中央處理單元502通過對(duì)畫面D的編碼后的視頻數(shù)據(jù)進(jìn)行變長(zhǎng)解碼和反掃描,獲取畫面D的變長(zhǎng)解碼和反掃描后的視頻數(shù)據(jù);可編程圖形處理單元504通過對(duì)畫面D的變長(zhǎng)解碼和反掃描后的視頻數(shù)據(jù)進(jìn)行反量化、反離散余弦變換、運(yùn)動(dòng)補(bǔ)償以及色彩空間轉(zhuǎn)換,獲取畫面D的完成解碼后的視頻數(shù)據(jù)。其中,畫面D的變長(zhǎng)解碼、反掃描、反量化、以及反離散余弦變換后的視頻數(shù)據(jù)包含有畫面D中的每個(gè)像素的亮度殘差值和色度殘差值,可編程圖形處理單元504可以通過根據(jù)等式(4)對(duì)畫面D中的任意一個(gè)像素(為了描述方便,這里記為像素P)的亮度/色度殘差值進(jìn)行運(yùn)動(dòng)補(bǔ)償來獲取像素P的亮度/色度值sum = residual+(1. 0-MC_flag)氺128. 0+MC_flag氺prediction (4)其中,sum表示像素P的亮度/色度值,residual表示像素P的亮度/色度殘差值,prediction表示像素P的亮度/色度預(yù)測(cè)值,MC_flag是像素P所在宏塊的運(yùn)動(dòng)補(bǔ)償標(biāo)記,當(dāng)像素P所在宏塊為幀內(nèi)編碼宏塊時(shí)MC_flag = 0,當(dāng)像素P所在宏塊不是幀內(nèi)編碼宏塊時(shí) MC_flag = 1。在可編程圖形處理單元獲取像素P的亮度/色度殘差值的過程中,畫面類型判斷單元5042根據(jù)畫面D的畫面類型標(biāo)記判斷畫面D是幀畫面還是場(chǎng)畫面。當(dāng)畫面D是場(chǎng)畫面時(shí),殘差值獲取單元5046根據(jù)像素P的紋理坐標(biāo)從畫面D的變長(zhǎng)解碼、反掃描、反量化、 以及反離散余弦變換后的視頻數(shù)據(jù)中獲取像素P的亮度/色度殘差值。當(dāng)畫面D是幀畫面時(shí),編碼類型判斷單元5044根據(jù)像素P所在宏塊的離散余弦變換編碼類型標(biāo)記判斷像素P 所在宏塊的離散余弦變換編碼類型是場(chǎng)離散余弦變換編碼還是幀離散余弦變換編碼。如果像素P所在宏塊的離散余弦變換編碼類型為幀離散余弦變換編碼,則殘差值獲取單元5046 根據(jù)像素P的紋理坐標(biāo)從畫面D的變長(zhǎng)解碼、反掃描、反量化、以及反離散余弦變換后的視頻數(shù)據(jù)中獲取像素P的亮度/色度殘差值,否則殘差值獲取單元5046根據(jù)等式(5)至(7) 計(jì)算像素P的偏移后的紋理坐標(biāo),并根據(jù)像素P的偏移后的紋理坐標(biāo)從畫面D的變長(zhǎng)解碼、 反掃描、反量化、以及反離散余弦變換后的視頻數(shù)據(jù)中獲取像素P的亮度/色度殘差值。texRef. s = v_texCoord. s(5)texRef. t = startTexCoord. t+(dety+2. 0*fraction*8. 0)*texDet. t (6)fraction = fract((gl_FragCoord-0. 5)/2. 0). y(7)其中,v_texCoord. s表示像素P的紋理坐標(biāo)的s分量,texRef. s表示像素P的偏移后的紋理坐標(biāo)的s分量,texRef.t表示像素P的偏移后的紋理坐標(biāo)的t分量, startTexCoord. t表示像素P所在宏塊的最左下側(cè)像素的紋理坐標(biāo)的t分量,dety表示像素P與像素P所在宏塊的最下側(cè)像素行之間的距離,texDet. t表示像素P與像素P所在宏塊的最左下側(cè)像素之間的紋理坐標(biāo)距離的t分量,glFragCoord表示像素P的位置坐標(biāo), fract O 表示求余函數(shù),fraction 表示 fract ((gl_FragCoord_0. 5) /2. 0)的 y 分量。在可編程圖形處理單元獲取像素P的亮度/色度預(yù)測(cè)值的過程中或者之前,預(yù)測(cè)模式判斷單元5048根據(jù)畫面D的預(yù)測(cè)模式標(biāo)記判斷畫面D的預(yù)測(cè)模式是幀預(yù)測(cè)、場(chǎng)預(yù)測(cè)、 雙基預(yù)測(cè)還是16X8預(yù)測(cè),預(yù)測(cè)方向判斷單元5050根據(jù)畫面D的預(yù)測(cè)方向標(biāo)記判斷畫面D 的預(yù)測(cè)方向是前向、后向還是雙向。當(dāng)畫面D的畫面類型是幀畫面、預(yù)測(cè)模式是幀預(yù)測(cè)模式、且預(yù)測(cè)方向?yàn)榍跋?后向時(shí),運(yùn)動(dòng)向量獲取單元5052根據(jù)像素P的紋理坐標(biāo)從第一向量組(MVl)/第二向量組(MV2) 中獲取像素P相對(duì)于前向參考幀/后向參考幀的運(yùn)動(dòng)向量;運(yùn)動(dòng)向量計(jì)算單元5054根據(jù)等式(8)和(9)計(jì)算像素P相對(duì)于前向參考幀/后向參考幀的運(yùn)動(dòng)向量的整數(shù)部分ixy和半整數(shù)部分hxy ;預(yù)測(cè)值計(jì)算單元5056根據(jù)等式(10)至(14)計(jì)算像素P的亮度/色度預(yù)測(cè)值。ixy = vec2 (floor (mvl. χ/2. 0), floor (mvl. y/2. 0))(8)hxy = vec2 (mvl. x/2. 0-ixy. x, mvl. y/2. 0-ixy. y)(9)其中,mvl. χ和mvl. y分別表示像素P相對(duì)于前向參考幀/后向參考幀的運(yùn)動(dòng)向量的X分量和ι分量的絕對(duì)值,ixy. X和ixy. y分別表示像素P相對(duì)于前向參考幀/后向參考幀的運(yùn)動(dòng)向量的整數(shù)部分的χ分量和y分量,floor()表示向下取整函數(shù)。texO至 tex3是用紋理坐標(biāo)表示的像素P周圍的四個(gè)像素相對(duì)于前向參考幀/后向參考幀的運(yùn)動(dòng)向量,texture2D (s_reference, texO),texture2D (s_reference, texl),texture2D(s_ reference, tex2),texture2D (s_reference, tex3)分別是根據(jù) texO 至 tex3 獲取的位于前向參考幀/后向參考幀上的參考像素的亮度/色度值,vp_width是畫面D的視窗寬度,vp_ height是畫面D的視窗高度,texShift. χ和texShift. y均為0。prediction = ((texture2D(s_reference, texO) +hxy. x*texture2D(s_reference, texl)+hxy. y氺(s_reference, tex2)+hxy. x*hxy. y*(10)texture2D (s_reference, tex3)) +hxy. x+hxy. y)/ (1. 0+hxy. x+hxy. y+hxy. χ氺hxy. y)
      權(quán)利要求
      1.一種視頻解碼方法,包括通過利用中央處理單元對(duì)一個(gè)畫面的編碼后的視頻數(shù)據(jù)進(jìn)行變長(zhǎng)解碼和反掃描,獲取所述一個(gè)畫面的變長(zhǎng)解碼和反掃描后的視頻數(shù)據(jù);以及通過利用可編程圖形處理單元對(duì)所述一個(gè)畫面的變長(zhǎng)解碼和反掃描后的視頻數(shù)據(jù)進(jìn)行反量化、反離散余弦變換、運(yùn)動(dòng)補(bǔ)償以及色彩空間轉(zhuǎn)換,獲取所述一個(gè)畫面的完成解碼后的視頻數(shù)據(jù),其中所述一個(gè)畫面的變長(zhǎng)解碼、反掃描、反量化、以及反離散余弦變換后的視頻數(shù)據(jù)包含有所述一個(gè)畫面中的每個(gè)像素的亮度殘差值和色度殘差值,通過根據(jù)等式(1)對(duì)所述一個(gè)畫面中的任意一個(gè)像素的亮度/色度殘差值進(jìn)行運(yùn)動(dòng)補(bǔ)償來獲取所述一個(gè)像素的亮度/ 色度值sum = residual+(1. 0_MC_flag)*128· 0+MC_flag*prediction (1) 其中,sum表示所述一個(gè)像素的亮度/色度值,residual表示所述一個(gè)像素的亮度/色度殘差值,prediction表示所述一個(gè)像素的亮度/色度預(yù)測(cè)值,MC_flag是所述一個(gè)像素所在宏塊的運(yùn)動(dòng)補(bǔ)償標(biāo)記,當(dāng)所述一個(gè)像素所在宏塊為幀內(nèi)編碼宏塊時(shí)MC_flag = 0,當(dāng)所述一個(gè)像素所在宏塊不是幀內(nèi)編碼宏塊時(shí)MC_flag= 1。
      2.根據(jù)權(quán)利要求1所述的視頻解碼方法,其特征在于,獲取所述一個(gè)像素的亮度/色度殘差值的處理包括根據(jù)所述一個(gè)畫面的畫面類型標(biāo)記判斷所述一個(gè)畫面是幀畫面還是場(chǎng)畫面; 當(dāng)所述一個(gè)畫面是場(chǎng)畫面時(shí),根據(jù)所述一個(gè)像素的紋理坐標(biāo)從所述一個(gè)畫面的變長(zhǎng)解碼、反掃描、反量化、以及反離散余弦變換后的視頻數(shù)據(jù)中獲取所述一個(gè)像素的亮度/色度殘差值。
      3.根據(jù)權(quán)利要求1所述的視頻解碼方法,其特征在于,獲取所述一個(gè)像素的亮度/色度殘差值的處理包括根據(jù)所述一個(gè)畫面的畫面類型標(biāo)記判斷所述一個(gè)畫面是幀畫面還是場(chǎng)畫面; 當(dāng)所述一個(gè)畫面是幀畫面時(shí),根據(jù)所述一個(gè)像素所在宏塊的離散余弦變換編碼類型標(biāo)記判斷所述一個(gè)像素所在宏塊的離散余弦變換編碼類型是場(chǎng)離散余弦變換編碼還是幀離散余弦變換編碼;如果所述一個(gè)像素所在宏塊的離散余弦變換編碼類型為幀離散余弦變換編碼,則根據(jù)所述一個(gè)像素的紋理坐標(biāo)從所述一個(gè)畫面的變長(zhǎng)解碼、反掃描、反量化、以及反離散余弦變換后的視頻數(shù)據(jù)中獲取所述一個(gè)像素的亮度/色度殘差值,否則根據(jù)等式(2)至(4)計(jì)算所述一個(gè)像素的偏移后的紋理坐標(biāo) texRef. s = v_texCoord. s(2)texRef. t = startTexCoord. t+(dety+2. 0*fraction*8. 0)*texDet. t (3) fraction = fract((gl_FragCoord-0. 5)/2. 0). y(4)其中,v_texCoord. s表示所述一個(gè)像素的紋理坐標(biāo)的s分量,texRef. s表示所述一個(gè)像素的偏移后的紋理坐標(biāo)的s分量,texRef. t表示所述一個(gè)像素的偏移后的紋理坐標(biāo)的 t分量,startTexCoord. t表示所述一個(gè)像素所在宏塊的最左下側(cè)像素的紋理坐標(biāo)的t分量,dety表示所述一個(gè)像素與所述一個(gè)像素所在宏塊的最下側(cè)像素行之間的距離,texDet. t表示所述一個(gè)像素與所述一個(gè)像素所在宏塊的最左下側(cè)像素之間的紋理坐標(biāo)距離的t分量,gl_FragC00rd表示所述一個(gè)像素的位置坐標(biāo),fract ()表示求余函數(shù),fraction表示 fract ((gl_FragCoord-0. 5) /2. 0)的 y 分量;并且根據(jù)所述一個(gè)像素的偏移后的紋理坐標(biāo)從所述一個(gè)畫面的變長(zhǎng)解碼、反掃描、反量化、 以及反離散余弦變換后的視頻數(shù)據(jù)中獲取所述一個(gè)像素的亮度/色度殘差值。
      4.根據(jù)權(quán)利要求1所述的視頻解碼方法,其特征在于,所述一個(gè)畫面的變長(zhǎng)解碼、反掃描、反量化、以及反離散余弦變換后的視頻數(shù)據(jù)中還包含有所述一個(gè)畫面中的每個(gè)宏塊的運(yùn)動(dòng)向量,其中在所述一個(gè)畫面是幀畫面的情況下,當(dāng)所述一個(gè)畫面的預(yù)測(cè)模式是幀預(yù)測(cè)模式時(shí),所述一個(gè)畫面中的每個(gè)宏塊相對(duì)于前向參考幀的運(yùn)動(dòng)向量組成第一向量組,且所述一個(gè)畫面中的每個(gè)宏塊相對(duì)于后向參考幀的運(yùn)動(dòng)向量組成第二向量組,當(dāng)所述一個(gè)畫面的預(yù)測(cè)模式是場(chǎng)預(yù)測(cè)模式時(shí),所述一個(gè)畫面的頂場(chǎng)中的每個(gè)宏塊相對(duì)于前向參考幀和后向參考幀的頂場(chǎng)的運(yùn)動(dòng)向量分別組成所述第一向量組和所述第二向量組,并且所述一個(gè)畫面的底場(chǎng)中的每個(gè)宏塊相對(duì)于前向參考幀和后向參考幀的底場(chǎng)的運(yùn)動(dòng)向量分別組成第三向量組和第四向量組,當(dāng)所述一個(gè)畫面的預(yù)測(cè)模式是雙基預(yù)測(cè)模式時(shí),所述一個(gè)畫面的頂場(chǎng)中的每個(gè)宏塊相對(duì)于前向參考幀的頂場(chǎng)和底場(chǎng)的運(yùn)動(dòng)向量分別組成所述第一向量組和所述第三向量組,并且所述一個(gè)畫面的底場(chǎng)中的每個(gè)宏塊相對(duì)于前向參考幀的頂場(chǎng)和底場(chǎng)的運(yùn)動(dòng)向量分別組成所述第二向量組和所述第四向量組, 在所述一個(gè)畫面是場(chǎng)畫面的情況下,當(dāng)所述一個(gè)畫面的預(yù)測(cè)模式是場(chǎng)預(yù)測(cè)模式時(shí),所述一個(gè)畫面中的每個(gè)宏塊相對(duì)于前向參考幀和后向參考幀的運(yùn)動(dòng)向量分別組成所述第一向量組和所述第二向量組,當(dāng)所述一個(gè)畫面的預(yù)測(cè)模式是雙基預(yù)測(cè)模式時(shí),所述一個(gè)畫面中的每個(gè)宏塊相對(duì)于前向參考幀的頂場(chǎng)和底場(chǎng)的運(yùn)動(dòng)向量分別組成所述第一向量組和所述第二向量組,當(dāng)所述一個(gè)畫面的預(yù)測(cè)模式是16X8預(yù)測(cè)模式時(shí),所述一個(gè)畫面中的每個(gè)宏塊的上半部分相對(duì)于前向參考幀和后向參考幀的運(yùn)動(dòng)向量分別組成所述第一向量組和所述第二向量組,且所述一個(gè)畫面中的每個(gè)宏塊的下半部分相對(duì)于前向參考幀和后向參考幀的運(yùn)動(dòng)向量分別組成所述第三向量組和所述第四向量組。
      5.根據(jù)權(quán)利要求4所述的視頻解碼方法,其特征在于,在獲取所述一個(gè)像素的亮度/ 色度預(yù)測(cè)值之前,根據(jù)所述一個(gè)畫面的畫面類型標(biāo)記判斷所述一個(gè)畫面是幀畫面還是場(chǎng)畫面,根據(jù)所述一個(gè)畫面的預(yù)測(cè)模式標(biāo)記判斷所述一個(gè)畫面的預(yù)測(cè)模式是幀預(yù)測(cè)、場(chǎng)預(yù)測(cè)、雙基預(yù)測(cè)、還是16X8預(yù)測(cè),并根據(jù)所述一個(gè)像素所在宏塊的預(yù)測(cè)方向標(biāo)記判斷所述一個(gè)像素所在宏塊的預(yù)測(cè)方向是前向、后向還是雙向。
      6.根據(jù)權(quán)利要求5所述的視頻解碼方法,其特征在于,當(dāng)所述一個(gè)畫面的畫面類型是幀畫面、所述一個(gè)畫面的預(yù)測(cè)模式是幀預(yù)測(cè)模式、且所述一個(gè)畫面的預(yù)測(cè)方向是前向/后向時(shí),獲取所述一個(gè)像素的亮度/色度預(yù)測(cè)值的處理包括根據(jù)所述一個(gè)像素的紋理坐標(biāo)從所述第一向量組/所述第二向量組中獲取所述一個(gè)像素相對(duì)于前向參考幀/后向參考幀的運(yùn)動(dòng)向量;根據(jù)等式(5)和(6)計(jì)算所述一個(gè)像素相對(duì)于前向參考幀/后向參考幀的運(yùn)動(dòng)向量的整數(shù)部分ixy和半整數(shù)部分hxy,其中mvl. χ和mvl. y分別表示所述一個(gè)像素相對(duì)于前向參考幀/后向參考幀的運(yùn)動(dòng)向量的χ分量和ι分量的絕對(duì)值,ixy. χ和ixy. y分別表示所述一個(gè)像素相對(duì)于前向參考幀/后向參考幀的運(yùn)動(dòng)向量的整數(shù)部分的χ分量和y分量,floor () 表示向下取整函數(shù)ixy = vec2 (floor (mvl. χ/2. 0), floor (mvl. y/2. 0)) hxy = vec2 (mvl. x/2. 0-ixy. x, mvl. y/2. 0-ixy. y)(5)(6)根據(jù)等式(7)至(11)計(jì)算所述一個(gè)像素的亮度/色度預(yù)測(cè)值,其中,texO至tex3是用紋理坐標(biāo)表示的所述一個(gè)像素周圍的四個(gè)像素相對(duì)于前向參考幀/后向參考幀的運(yùn)動(dòng)向 量,texture2D(s—reference,texO)、texture2D(s—reference,texl)、texture2D(s_ reference, tex2)、texture2D (s—reference,tex3)分別是根據(jù) texO 至 tex3 獲取的位于前向參考幀/后向參考幀上的參考像素的亮度/色度值,vp—width是所述一個(gè)畫面的視窗寬度,vp—height是所述一個(gè)畫面的視窗高度,texShift. χ和texShift. y均為0 prediction = ((texture2D(s—reference,texO) +hxy. χ氺texture2D(s—reference,texl)+hxy. y* (s—reference,tex2) +hxy. χ5^hxy. y* texture2D(s—reference,tex3))+hxy.x+hxy. y) / (1. 0+hxy. x+hxy. y+hxy. χ5^hxy. y)(7)texO=vec2(texShift.x +lxy.x-,texShift.y-lxy.yvp 一 height'vp __ widthtexl = tex0+vec2(l. 0/vp—width,0. 0)tex2 = tex0+vec2(0. 0,_1. 0/vp—height)tex3 = tex0+vec2 (1. 0/vp—width,-L 0/vp—height) (9)(10) (11)
      7.根據(jù)權(quán)利要求5所述的視頻解碼方法,其特征在于,當(dāng)所述一個(gè)畫面的畫面類型是幀畫面、所述一個(gè)畫面的預(yù)測(cè)模式是場(chǎng)預(yù)測(cè)模式、且所述一個(gè)畫面的預(yù)測(cè)方向是前向/后向時(shí)以及當(dāng)所述一個(gè)畫面的畫面類型是場(chǎng)畫面、所述一個(gè)畫面的預(yù)測(cè)模式為場(chǎng)預(yù)測(cè)模式或者16X8預(yù)測(cè)模式、且所述一個(gè)畫面的預(yù)測(cè)方向是前向/后向時(shí),獲取所述一個(gè)像素的亮度 /色度預(yù)測(cè)值的處理包括根據(jù)所述一個(gè)像素的紋理坐標(biāo)從相應(yīng)的向量組中獲取所述一個(gè)像素相對(duì)于前向參考幀/后向參考幀的運(yùn)動(dòng)向量;根據(jù)所述一個(gè)像素所在宏塊的參考場(chǎng)選擇標(biāo)記判斷是否需要對(duì)所述一個(gè)像素相對(duì)于前向參考幀/后向參考幀的運(yùn)動(dòng)向量進(jìn)行偏移,如果需要,則在所述一個(gè)像素處于所述一個(gè)畫面的頂場(chǎng)中的情況下根據(jù)等式(12)計(jì)算偏移量texShift,在所述一個(gè)像素處于所述一個(gè)畫面的底場(chǎng)中的情況下根據(jù)等式(13)計(jì)算偏移量texShift,其中v_teXC00rd. s和v_ texCoord. t分別表示所述一個(gè)像素的紋理坐標(biāo)的s分量和t分量,vp_height是所述一個(gè)畫面的視窗高度texShift = vec2(v_texCoord. s, v_texCoord. t_l/vp_height)(12)texShift = vec2(v_texCoord. s, v_texCoord. t+l/vp_height)(13)根據(jù)等式(14)和(15)計(jì)算所述一個(gè)像素相對(duì)于前向參考幀/后向參考幀的運(yùn)動(dòng)向量的整數(shù)部分ixy和半整數(shù)部分hxy,其中mvl. χ和mvl. y分別表示所述一個(gè)像素相對(duì)于前向參考幀/后向參考幀的運(yùn)動(dòng)向量的χ分量和y分量的絕對(duì)值,ixy. χ和ixy. y分別表示所述一個(gè)像素相對(duì)于前向參考幀/后向參考幀的運(yùn)動(dòng)向量的整數(shù)部分的χ分量和y分量, floor()表示向下取整函數(shù)
      8.根據(jù)權(quán)利要求6或7所述的視頻解碼方法,其特征在于,當(dāng)所述一個(gè)畫面的預(yù)測(cè)方向?yàn)殡p向預(yù)測(cè)時(shí),將根據(jù)所述一個(gè)像素相對(duì)于前向參考幀的運(yùn)動(dòng)向量獲取的所述一個(gè)像素的亮度/色度預(yù)測(cè)值和根據(jù)所述一個(gè)像素相對(duì)于后向參考幀的運(yùn)動(dòng)向量獲取的所述一個(gè)像素的亮度/色度預(yù)測(cè)值的平均值作為所述一個(gè)像素的最終亮度/色度預(yù)測(cè)值。
      9.根據(jù)權(quán)利要求5所述的視頻解碼方法,其特征在于,當(dāng)所述一個(gè)畫面的畫面類型是幀畫面、所述一個(gè)畫面的預(yù)測(cè)模式是雙基預(yù)測(cè)模式時(shí)以及當(dāng)所述一個(gè)畫面的畫面類型是場(chǎng)畫面、所述一個(gè)畫面的預(yù)測(cè)模式為雙基預(yù)測(cè)模式時(shí),獲取所述一個(gè)像素的亮度/色度預(yù)測(cè)值的處理包括根據(jù)所述一個(gè)像素的紋理坐標(biāo)從相應(yīng)的向量組中獲取所述一個(gè)像素相對(duì)于前向參考幀的運(yùn)動(dòng)向量;根據(jù)所述一個(gè)像素所在宏塊的參考場(chǎng)選擇標(biāo)記判斷是否需要對(duì)所述一個(gè)像素相對(duì)于前向參考幀的運(yùn)動(dòng)向量進(jìn)行偏移,如果需要,則在所述一個(gè)像素處于所述一個(gè)畫面的頂場(chǎng)中的情況下根據(jù)等式(12)計(jì)算偏移量texShift,在所述一個(gè)像素處于所述一個(gè)畫面的底場(chǎng)中的情況下根據(jù)等式(13)計(jì)算偏移量texShift,其中v_texCoord. s*v_texCoord. t分別表示所述一個(gè)像素的紋理坐標(biāo)的s分量和t分量,vp_height是所述一個(gè)畫面的視窗高度texShift = vec2(v_texCoord. s,v_texCoord. t-l/vp—height)(12)texShift = vec2(v_texCoord. s,v_texCoord. t+l/vp—height)(13)根據(jù)等式(14)和(15)計(jì)算所述一個(gè)像素相對(duì)于前向參考幀的運(yùn)動(dòng)向量的整數(shù)部分 ixy和半整數(shù)部分hxy,其中mvl. χ和mvl. y分別表示所述一個(gè)像素相對(duì)于前向參考幀的運(yùn)動(dòng)向量的χ分量和ι分量的絕對(duì)值,ixy. χ和ixy. y分別表示所述一個(gè)像素相對(duì)于前向參考幀的運(yùn)動(dòng)向量的整數(shù)部分的χ分量和y分量,floor ()表示向下取整函數(shù)ixy = vec2 (floor (mvl. χ/2. 0),floor (mvl. y/4. 0))(14)hxy = vec2 (mvl. x/2. 0-ixy. x, mvl. y/4. 0-ixy. y)(15)根據(jù)等式(16)至(20)計(jì)算所述一個(gè)像素的亮度/色度預(yù)測(cè)值,其中,texO至 tex3是用紋理坐標(biāo)表示的所述一個(gè)像素周圍的四個(gè)像素相對(duì)于前向參考幀的運(yùn)動(dòng)向量,texture2D(s_reference, texO)、 texture2D(s_reference, texl)、 texture2D(s_ reference, tex2)、texture2D (s_reference,tex3)分別是根據(jù) texO 至 tex3 獲取的位于前向參考幀上的參考像素的亮度/色度值,vp_width是所述一個(gè)畫面的視窗寬度,texShift. χ和texShift. y表示所述偏移量的χ和y分量prediction = ((texture2D(s_reference, texO) + hxy.x*texture2D(s_reference, texl)+hxy. y氺 (s_reference, tex2)+hxy. χ氺hxy. y氺 texture2D(s_reference, tex3))+hxy. x+hxy. y) / (1. 0+hxy. x+hxy. y+hxy. χ氺hxy. y)
      10.一種視頻解碼系統(tǒng),包括 中央處理單元,被配置為通過對(duì)一個(gè)畫面的編碼后的視頻數(shù)據(jù)進(jìn)行變長(zhǎng)解碼和反掃描,獲取所述一個(gè)畫面的變長(zhǎng)解碼和反掃描后的視頻數(shù)據(jù);可編程圖形處理單元,被配置為通過對(duì)所述一個(gè)畫面的變長(zhǎng)解碼和反掃描后的視頻數(shù)據(jù)進(jìn)行反量化、反離散余弦變換、運(yùn)動(dòng)補(bǔ)償以及色彩空間轉(zhuǎn)換,獲取所述一個(gè)畫面的完成解碼后的視頻數(shù)據(jù),其中所述一個(gè)畫面的變長(zhǎng)解碼、反掃描、反量化、以及反離散余弦變換后的視頻數(shù)據(jù)包含有所述一個(gè)畫面中的每個(gè)像素的亮度殘差值和色度殘差值,所述可編程圖形處理單元通過根據(jù)等式(1)對(duì)所述一個(gè)畫面中的任意一個(gè)像素的亮度/色度殘差值進(jìn)行運(yùn)動(dòng)補(bǔ)償來獲取所述一個(gè)像素的亮度/色度值sum = residual+(1. 0_MC_flag)*128· 0+MC_flag*prediction (1) 其中,sum表示所述一個(gè)像素的亮度/色度值,residual表示所述一個(gè)像素的亮度/色度殘差值,prediction表示所述一個(gè)像素的亮度/色度預(yù)測(cè)值,MC_flag是所述一個(gè)像素所在宏塊的運(yùn)動(dòng)補(bǔ)償標(biāo)記,當(dāng)所述一個(gè)像素所在宏塊為幀內(nèi)編碼宏塊時(shí)MC_flag = 0,當(dāng)所述一個(gè)像素所在宏塊不是幀內(nèi)編碼宏塊時(shí)MC_flag= 1。
      11.根據(jù)權(quán)利要求10所述的視頻解碼系統(tǒng),其特征在于,所述可編程圖形處理單元包括畫面類型判斷單元,被配置為根據(jù)所述一個(gè)畫面的畫面類型標(biāo)記判斷所述一個(gè)畫面是幀畫面還是場(chǎng)畫面;殘差值獲取單元,被配置為當(dāng)所述一個(gè)畫面是場(chǎng)畫面時(shí),根據(jù)所述一個(gè)像素的紋理坐標(biāo)從所述一個(gè)畫面的變長(zhǎng)解碼、反掃描、反量化、以及反離散余弦變換后的視頻數(shù)據(jù)中獲取所述一個(gè)像素的亮度/色度殘差值。
      12.根據(jù)權(quán)利要求10所述的視頻解碼系統(tǒng),其特征在于,所述可編程圖形處理單元包括畫面類型判斷單元,被配置為根據(jù)所述一個(gè)畫面的畫面類型標(biāo)記判斷所述一個(gè)畫面是幀畫面還是場(chǎng)畫面的裝置;編碼類型判斷單元,被配置為當(dāng)所述一個(gè)畫面是幀畫面時(shí),根據(jù)所述一個(gè)像素所在宏塊的離散余弦變換編碼類型標(biāo)記判斷所述一個(gè)像素所在宏塊的離散余弦變換編碼類型是場(chǎng)離散余弦變換編碼還是幀離散余弦變換編碼;殘差值獲取單元,被配置為如果所述一個(gè)像素所在宏塊的離散余弦變換編碼類型為幀離散余弦變換編碼,則根據(jù)所述一個(gè)像素的紋理坐標(biāo)從所述一個(gè)畫面的變長(zhǎng)解碼、反掃描、 反量化、以及反離散余弦變換后的視頻數(shù)據(jù)中獲取所述一個(gè)像素的亮度/色度殘差值,否則根據(jù)等式(2)至(4)計(jì)算所述一個(gè)像素的偏移后的紋理坐標(biāo) texRef. s = v_texCoord. s(2)texRef. t = startTexCoord. t+(dety+2. 0*fraction*8. 0)*texDet. t (3) fraction = fract((gl_FragCoord-0. 5)/2. 0). y(4)其中,v_texCoord. s表示所述一個(gè)像素的紋理坐標(biāo)的s分量,texRef. s表示所述一個(gè)像素的偏移后的紋理坐標(biāo)的s分量,texRef. t表示所述一個(gè)像素的偏移后的紋理坐標(biāo)的 t分量,startTexCoord. t表示所述一個(gè)像素所在宏塊的最左下側(cè)像素的紋理坐標(biāo)的t分量,dety表示所述一個(gè)像素與所述一個(gè)像素所在宏塊的最下側(cè)像素行之間的距離,texDet. t表示所述一個(gè)像素與所述一個(gè)像素所在宏塊的最左下側(cè)像素之間的紋理坐標(biāo)距離的t分量,gl_FragC00rd表示所述一個(gè)像素的位置坐標(biāo),fract ()表示求余函數(shù),fraction表示 fract ((gl_FragCoord-0. 5) /2. 0)的 y 分量;并且根據(jù)所述一個(gè)像素的偏移后的紋理坐標(biāo)從所述一個(gè)畫面的變長(zhǎng)解碼、反掃描、反量化、 以及反離散余弦變換后的視頻數(shù)據(jù)中獲取所述一個(gè)像素的亮度/色度殘差值。
      13.根據(jù)權(quán)利要求10所述的視頻解碼方法,其特征在于,所述一個(gè)畫面的變長(zhǎng)解碼、反掃描、反量化、以及反離散余弦變換后的視頻數(shù)據(jù)中還包含有所述一個(gè)畫面中的每個(gè)宏塊的運(yùn)動(dòng)向量,其中在所述一個(gè)畫面是幀畫面的情況下,當(dāng)所述一個(gè)畫面的預(yù)測(cè)模式是幀預(yù)測(cè)模式時(shí),所述一個(gè)畫面中的每個(gè)宏塊相對(duì)于前向參考幀的運(yùn)動(dòng)向量組成第一向量組,且所述一個(gè)畫面中的每個(gè)宏塊相對(duì)于后向參考幀的運(yùn)動(dòng)向量組成第二向量組,當(dāng)所述一個(gè)畫面的預(yù)測(cè)模式是場(chǎng)預(yù)測(cè)模式時(shí),所述一個(gè)畫面的頂場(chǎng)中的每個(gè)宏塊相對(duì)于前向參考幀和后向參考幀的頂場(chǎng)的運(yùn)動(dòng)向量分別組成所述第一向量組和所述第二向量組,并且所述一個(gè)畫面的底場(chǎng)中的每個(gè)宏塊相對(duì)于前向參考幀和后向參考幀的底場(chǎng)的運(yùn)動(dòng)向量分別組成第三向量組和第四向量組,當(dāng)所述一個(gè)畫面的預(yù)測(cè)模式是雙基預(yù)測(cè)模式時(shí),所述一個(gè)畫面的頂場(chǎng)中的每個(gè)宏塊相對(duì)于前向參考幀的頂場(chǎng)和底場(chǎng)的運(yùn)動(dòng)向量分別組成所述第一向量組和所述第三向量組,并且所述一個(gè)畫面的底場(chǎng)中的每個(gè)宏塊相對(duì)于前向參考幀的頂場(chǎng)和底場(chǎng)的運(yùn)動(dòng)向量分別組成所述第二向量組和所述第四向量組, 在所述一個(gè)畫面是場(chǎng)畫面的情況下,當(dāng)所述一個(gè)畫面的預(yù)測(cè)模式是場(chǎng)預(yù)測(cè)模式時(shí),所述一個(gè)畫面中的每個(gè)宏塊相對(duì)于前向參考幀和后向參考幀的運(yùn)動(dòng)向量分別組成所述第一向量組和所述第二向量組,當(dāng)所述一個(gè)畫面的預(yù)測(cè)模式是雙基預(yù)測(cè)模式時(shí),所述一個(gè)畫面中的每個(gè)宏塊相對(duì)于前向參考幀的頂場(chǎng)和底場(chǎng)的運(yùn)動(dòng)向量分別組成所述第一向量組和所述第二向量組,當(dāng)所述一個(gè)畫面的預(yù)測(cè)模式是16X8預(yù)測(cè)模式時(shí),所述一個(gè)畫面中的每個(gè)宏塊的上半部分相對(duì)于前向參考幀和后向參考幀的運(yùn)動(dòng)向量分別組成所述第一向量組和所述第二向量組,且所述一個(gè)畫面中的每個(gè)宏塊的下半部分相對(duì)于前向參考幀和后向參考幀的運(yùn)動(dòng)向量分別組成所述第三向量組和所述第四向量組。
      14.根據(jù)權(quán)利要求13所述的視頻解碼系統(tǒng),其特征在于,所述可編程圖形處理單元還包括預(yù)測(cè)模式判斷單元,被配置為根據(jù)所述一個(gè)畫面的預(yù)測(cè)模式標(biāo)記判斷所述一個(gè)畫面的預(yù)測(cè)模式是幀預(yù)測(cè)、場(chǎng)預(yù)測(cè)、雙基預(yù)測(cè)還是16X8預(yù)測(cè);預(yù)測(cè)方向判斷單元,被配置為根據(jù)所述一個(gè)畫面的預(yù)測(cè)方向標(biāo)記判斷所述一個(gè)畫面的預(yù)測(cè)方向是前向、后向還是雙向。
      15.根據(jù)權(quán)利要求14所述的視頻解碼系統(tǒng),其特征在于,所述可編程圖形處理單元還包括運(yùn)動(dòng)向量獲取單元,被配置為當(dāng)所述一個(gè)畫面的畫面類型是幀畫面、所述一個(gè)畫面的預(yù)測(cè)模式是幀預(yù)測(cè)模式、且所述一個(gè)畫面的預(yù)測(cè)方向?yàn)榍跋?后向時(shí),根據(jù)所述一個(gè)像素的紋理坐標(biāo)從所述第一向量組/所述第二向量組中獲取所述一個(gè)像素相對(duì)于前向參考幀/ 后向參考幀的運(yùn)動(dòng)向量;運(yùn)動(dòng)向量計(jì)算單元,被配置為根據(jù)等式(5)和(6)計(jì)算所述一個(gè)像素相對(duì)于前向參考幀/后向參考幀的運(yùn)動(dòng)向量的整數(shù)部分ixy和半整數(shù)部分hxy,其中mvl. χ和mvl. y分別表示所述一個(gè)像素相對(duì)于前向參考幀/后向參考幀的運(yùn)動(dòng)向量的χ分量和y分量的絕對(duì)值, ixy. χ和ixy. y分別表示所述一個(gè)像素相對(duì)于前向參考幀/后向參考幀的運(yùn)動(dòng)向量的整數(shù)部分的χ分量和ι分量,floor ()表示向下取整函數(shù)ixy = vec2 (floor (mvl. χ/2. 0),floor (mvl. y/2. 0))(5)hxy = vec2 (mvl. x/2. 0-ixy. x, mvl. y/2. 0-ixy. y)(6)預(yù)測(cè)值計(jì)算單元,被配置為根據(jù)等式(7)至(11)計(jì)算所述一個(gè)像素的亮度/色度預(yù)測(cè)值,texO至tex3是用紋理坐標(biāo)表示的所述一個(gè)像素周圍的四個(gè)像素相對(duì)于前向參考幀/ 后向參考中貞的運(yùn)動(dòng)向量,texture2D (s—reference,texO)、texture2D (s—reference,texl)、 texture2D (s—reference,tex2)、texture2D (s—reference,tex3)分別是根據(jù) texO 至 tex3 獲取的位于前向參考幀/后向參考幀上的參考像素的亮度/色度值,Vp_width是所述一個(gè)畫面的視窗寬度,vp_height是所述一個(gè)畫面的視窗高度,texShift. χ和texShift. y均為
      16.根據(jù)權(quán)利要求14所述的視頻解碼系統(tǒng),其特征在于,所述可編程圖形處理單元還包括運(yùn)動(dòng)向量獲取單元,被配置為當(dāng)所述一個(gè)畫面的畫面類型是幀畫面、所述一個(gè)畫面的預(yù)測(cè)模式是場(chǎng)預(yù)測(cè)模式、且所述一個(gè)畫面的預(yù)測(cè)方向?yàn)榍跋?后向時(shí)以及當(dāng)所述一個(gè)畫面的畫面類型是場(chǎng)畫面、所述一個(gè)畫面的預(yù)測(cè)模式為場(chǎng)預(yù)測(cè)模式或者16X8預(yù)測(cè)模式、且所述一個(gè)畫面的預(yù)測(cè)方向?yàn)榍跋?后向時(shí),根據(jù)所述一個(gè)像素的紋理坐標(biāo)從相應(yīng)的向量組中獲取所述一個(gè)像素相對(duì)于前向參考幀/后向參考幀的運(yùn)動(dòng)向量;偏移量計(jì)算單元,被配置為根據(jù)所述一個(gè)像素所在宏塊的參考場(chǎng)選擇標(biāo)記判斷是否需要對(duì)所述一個(gè)像素相對(duì)于前向參考幀/后向參考幀的運(yùn)動(dòng)向量進(jìn)行偏移,如果需要,在所述一個(gè)像素處于所述一個(gè)畫面的頂場(chǎng)中的情況下根據(jù)等式(12)計(jì)算偏移量texShift,在所述一個(gè)像素處于所述一個(gè)畫面的底場(chǎng)中的情況下根據(jù)等式(13)計(jì)算偏移量texShift, 其中v_teXC00rd. s和v_teXC00rd. t分別表示所述一個(gè)像素的紋理坐標(biāo)的s分量和t分量, vp_height是所述一個(gè)畫面的視窗高度texShift = vec2 (v_texCoord. s,v_texCoord. t-l/vp—height)(12)texShift = vec2 (v_texCoord. s,v_texCoord. t+l/vp—height)(13)運(yùn)動(dòng)向量計(jì)算單元,被配置為根據(jù)等式(5)和(6)計(jì)算所述一個(gè)像素相對(duì)于前向參考幀/后向參考幀的運(yùn)動(dòng)向量的整數(shù)部分ixy和半整數(shù)部分hxy,其中mvl. χ和mvl. y分別表示所述一個(gè)像素相對(duì)于前向參考幀/后向參考幀的運(yùn)動(dòng)向量的χ分量和y分量的絕對(duì)值, ixy. χ和ixy. y分別表示所述一個(gè)像素相對(duì)于前向參考幀/后向參考幀的運(yùn)動(dòng)向量的整數(shù)部分的χ分量和ι分量,floor ()表示向下取整函數(shù)ixy = vec2 (floor (mvl. χ/2. 0),floor (mvl. y/4. 0))(5)hxy = vec2 (mvl. x/2. 0-ixy. x, mvl. y/4. 0-ixy. y)(6)預(yù)測(cè)值計(jì)算單元,被配置為根據(jù)等式(7)至(11)計(jì)算所述一個(gè)像素的亮度/色度預(yù)測(cè)值,其中,texO至tex3是用紋理坐標(biāo)表示的所述一個(gè)像素周圍的四個(gè)像素相對(duì)于前向參考中貞 / 后向參考中貞的運(yùn)云力向量,texture2D (s_reference, texO) > texture2D (s_reference, texl)、texture2D (s_reference, tex2)、texture2D (s_reference, tex3)分別是根據(jù) texO 至tex3獲取的位于前向參考幀/后向參考幀上的參考像素的亮度/色度值,vp_width是所述一個(gè)畫面的視窗寬度,texShift. χ和texShift. y表示所述偏移量的χ和y分量
      17.根據(jù)權(quán)利要求15或16所述的視頻解碼系統(tǒng),其特征在于,當(dāng)所述-方向?yàn)殡p向預(yù)測(cè)時(shí),所述可編程圖形處理單元將根據(jù)所述一個(gè)像素相對(duì)于前向參考幀的運(yùn)動(dòng)向量獲取的所述一個(gè)像素的亮度/色度預(yù)測(cè)值和根據(jù)所述一個(gè)像素相對(duì)于后向參考幀的運(yùn)動(dòng)向量獲取的所述一個(gè)像素的亮度/色度預(yù)測(cè)值的平均值作為所述一個(gè)像素的最終亮度/色度預(yù)測(cè)值。
      18.根據(jù)權(quán)利要求14所述的視頻解碼系統(tǒng),其特征在于,所述可編程圖形處理單元還包括運(yùn)動(dòng)向量獲取單元,被配置當(dāng)所述一個(gè)畫面的畫面類型是幀畫面、所述一個(gè)畫面的預(yù)測(cè)模式是雙基預(yù)測(cè)模式時(shí)以及當(dāng)所述一個(gè)畫面的畫面類型是場(chǎng)畫面、所述一個(gè)畫面的預(yù)測(cè)模式為雙基預(yù)測(cè)模式時(shí),根據(jù)所述一個(gè)像素的紋理坐標(biāo)從相應(yīng)的向量組中獲取所述一個(gè)像素相對(duì)于前向參考幀的運(yùn)動(dòng)向量;偏移量計(jì)算單元,被配置為根據(jù)所述一個(gè)像素所在宏塊的參考場(chǎng)選擇標(biāo)記判斷是否需要對(duì)所述一個(gè)像素相對(duì)于前向參考幀的運(yùn)動(dòng)向量進(jìn)行偏移,如果需要,則在所述一個(gè)像素處于所述一個(gè)畫面的頂場(chǎng)中的情況下根據(jù)等式(12)計(jì)算偏移量texShift,在所述一個(gè)像素處于所述一個(gè)畫面的底場(chǎng)中的情況下根據(jù)等式(13)計(jì)算偏移量texShift,其中v_ texCoord. s和v_texCoord. t分別表示所述一個(gè)像素的紋理坐標(biāo)的s分量和t分量,vp_ height是所述一個(gè)畫面的視窗高度texShift = vec2(ν—texCoord· s,ν—texCoord· t-l/vp—height)(12)texShift = vec2(v—texCoord· s,v—texCoord· t+l/vp—height)(13)運(yùn)動(dòng)向量計(jì)算單元,被配置為根據(jù)等式(14)和(15)計(jì)算所述一個(gè)像素相對(duì)于前向參考幀的運(yùn)動(dòng)向量的整數(shù)部分ixy和半整數(shù)部分hxy,其中mvl. χ和mvl. y分別表示所述一個(gè)像素相對(duì)于前向參考幀的運(yùn)動(dòng)向量的χ分量和ι分量的絕對(duì)值,ixy. χ和ixy. y分別表示所述一個(gè)像素相對(duì)于前向參考幀的運(yùn)動(dòng)向量的整數(shù)部分的χ分量和y分量,floor()表示向下取整函數(shù)ixy = vec2 (floor (mvl. χ/2. 0),floor (mvl. y/4. 0))(14)hxy = vec2 (mvl. x/2. 0-ixy. x, mvl. y/4. 0-ixy. y)(15)預(yù)測(cè)值計(jì)算單元,被配置為根據(jù)等式(16)至(20)計(jì)算所述一個(gè)像素的亮度/色度預(yù)測(cè)值,其中,texO至tex3是用紋理坐標(biāo)表示的所述一個(gè)像素周圍的四個(gè)像素相對(duì)于前向參考中貞的運(yùn)動(dòng)向量,texture2D (s—reference,texO)、texture2D (s—reference,texl)、texture2D (s_reference, tex2) > texture2D (s_reference, tex3)分別是根據(jù) texO 至 tex3 獲取的位于前向參考幀上的參考像素的亮度/色度值,vp—width是所述一個(gè)畫面的視窗寬度,texShift. χ和texShift. y表示所述偏移量的χ和y分量
      全文摘要
      公開了一種視頻解碼方法和系統(tǒng)。該方法包括通過利用中央處理單元對(duì)一個(gè)畫面的編碼后的視頻數(shù)據(jù)進(jìn)行變長(zhǎng)解碼和反掃描,獲取所述一個(gè)畫面的變長(zhǎng)解碼和反掃描后的視頻數(shù)據(jù);以及通過利用可編程圖形處理單元對(duì)所述一個(gè)畫面的變長(zhǎng)解碼和反掃描后的視頻數(shù)據(jù)進(jìn)行反量化、反離散余弦變換、運(yùn)動(dòng)補(bǔ)償以及色彩空間轉(zhuǎn)換,獲取所述一個(gè)畫面的完成解碼后的視頻數(shù)據(jù)。所述一個(gè)畫面的變長(zhǎng)解碼、反掃描、反量化、以及反離散余弦變換后的視頻數(shù)據(jù)包含有所述一個(gè)畫面中的每個(gè)像素的亮度殘差值和色度殘差值,通過根據(jù)等式(1)對(duì)所述一個(gè)畫面中的任意一個(gè)像素的亮度/色度殘差值進(jìn)行運(yùn)動(dòng)補(bǔ)償來獲取所述一個(gè)像素的亮度/色度值sum=residual+(1.0-MC_flag)*128.0+MC_flag*prediction(1)。
      文檔編號(hào)H04N7/26GK102223525SQ20101014652
      公開日2011年10月19日 申請(qǐng)日期2010年4月13日 優(yōu)先權(quán)日2010年4月13日
      發(fā)明者洲鐮康, 白向暉, 譚志明 申請(qǐng)人:富士通株式會(huì)社
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1