国产精品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>

      計(jì)算編碼失真度和編碼模式控制的方法及其系統(tǒng)的制作方法

      文檔序號:10666509閱讀:557來源:國知局
      計(jì)算編碼失真度和編碼模式控制的方法及其系統(tǒng)的制作方法
      【專利摘要】本發(fā)明涉及視頻編碼處理領(lǐng)域,公開了一種計(jì)算編碼失真度和編碼模式控制的方法及系統(tǒng)。本發(fā)明中,該方法包括以下步驟:獲取編碼宏塊在當(dāng)前編碼模式下的預(yù)測像素值,并根據(jù)預(yù)測像素值與編碼宏塊像素值計(jì)算預(yù)測殘差值;獲取預(yù)測殘差值經(jīng)過當(dāng)前編碼模式下編碼過程中的量化和反量化處理后的帶有量化損失的預(yù)測殘差值;將預(yù)測殘差值和帶有量化損失的預(yù)測殘差值的差分平方和作為當(dāng)前編碼模式下的編碼失真度。本發(fā)明中,以編碼宏塊的預(yù)測殘差值和帶有量化損失的預(yù)測殘差值的差分平方和作為編碼失真度,避免了預(yù)測模塊,預(yù)測殘差計(jì)算模塊,重建模塊在計(jì)算通路中的延時,解決了傳統(tǒng)SSD編碼模式控制策略計(jì)算失真度時存在嚴(yán)重?cái)?shù)據(jù)通路延時的問題。
      【專利說明】
      計(jì)算編碼失真度和編碼模式控制的方法及其系統(tǒng)
      技術(shù)領(lǐng)域
      [0001] 本發(fā)明涉及視頻編碼和處理領(lǐng)域,特別涉及計(jì)算編碼失真度和編碼模式控制的方 法及其系統(tǒng)。
      【背景技術(shù)】
      [0002] 在AVC視頻編碼標(biāo)準(zhǔn)中,僅僅定義了編碼后比特流的句法結(jié)構(gòu)和解碼器的結(jié)構(gòu), 而對編碼器的結(jié)構(gòu)和實(shí)現(xiàn)模式并沒有具體的規(guī)定,即編碼器根據(jù)圖像內(nèi)容,采用率失真優(yōu) 化(其中,率失真優(yōu)化即是在限比特率為R的條件下,即R值不能超過信道傳輸率,選擇最 佳編碼模式,使得失真度最?。┑姆椒ǎ趲瑑?nèi)和幀間眾多可選的編碼模式(或稱預(yù)測模 式)中選取最佳的模式,對每一種編碼模式都要計(jì)算其失真度和比特率,從而根據(jù)失真度 和比特率計(jì)算該編碼模式的編碼代價值,致使編碼過程復(fù)雜,編碼時間增加。
      [0003] 然而,無論編碼器采用何種結(jié)構(gòu),相應(yīng)視頻編碼的模式控制策略都是編碼器實(shí)現(xiàn) 的核心問題,由于視頻序列中的圖像內(nèi)容隨著空間與實(shí)踐的不同變化很大,需要為圖像的 不同部分選擇不同的編碼參數(shù)進(jìn)行壓縮編碼,而編碼模式控制的目的就是通過編碼模式控 制策略來確定一組編碼參數(shù),例如宏塊的分割類型,運(yùn)動矢量以及量化參數(shù)等。JVT (Joint Video Team)的會議文檔里提議采用基于Lagrangian優(yōu)化算法的率失真編碼模式控制模 型來實(shí)現(xiàn)視頻編碼的模式控制策略,考慮K個信源樣本值的集合S = (S1, ...,Sk),宏塊Sk 的拉格朗曰代價函數(shù)如下:
      [0004]
      [0005] 其中,Ik為相應(yīng)宏塊的編碼模式,Q為量化參數(shù),λ M()DES拉格朗參數(shù)。
      [0006] DREe為編碼失真度,RREe為編碼后碼流的碼率。
      [0007] 失真度Drk的計(jì)算有2種計(jì)算方式,即絕對差分和SAD以及差分平方和SSD :
      [0008]
      [0009]
      [0010] 其中,A為當(dāng)前宏塊,s[x,y,t]為當(dāng)前編碼宏塊的像素值,p[x,y,t]為當(dāng)前編碼宏 塊相應(yīng)的預(yù)測值,r[x,y,t]為當(dāng)前編碼宏塊相應(yīng)的重建值。
      [0011]目前,所有AVC編碼器實(shí)現(xiàn)方案中,均一致采用基于SAD(或者SATD)和速率估計(jì) 的編碼模式控制策略,BP :
      [0012] Jmode= SAD+λ ' 圓E X R (RefIdx,Mode, Mvd)或
      [0013] JMODf^SATD+A'^EXRdtencb^Moc^Mvd)
      [0014] 其中,RefIdx為參考幀索引,Mode為編碼模式,Mvd為運(yùn)動矢量殘差=MV-MVP,MVP 為預(yù)測的運(yùn)動矢量。
      [0015] 其中,SAD(Sum of Absolute Difference)計(jì)算的差值是圖像預(yù)測值與當(dāng)前象素 值的差值,為了更準(zhǔn)確的比較每種模式的代價值,還需要對這些差值進(jìn)行哈達(dá)瑪變換,將差 值(這些值最后要變換到頻域進(jìn)行編碼)變換到頻域求絕對差值的累加和,這樣計(jì)算得到 SATD(Sum of Absolute Transformed Difference)〇
      [0016] 而基于SSD的失真度計(jì)算和精確碼率估計(jì)的編碼模式控制策略,即RD0(Rate Distortion Optimization)編碼模式控制策略,代價函數(shù)如下:
      [0017] Jmode= SSD+λ 圓EXR(RefIdx,Mode, Mvd,Residual)
      [0018] 其中,RefIdx為參考幀索引,Mode為編碼模式,Mvd為運(yùn)動矢量殘差Residual為 編碼殘差系數(shù)值
      [0019] RDO編碼模式控制策略,包含各種模式的實(shí)際編碼過程,也就是變換,量化、熵編 碼、反變換反量化、重建等,其中,SSD(Sum of Squared Difference)為當(dāng)前編碼宏塊與預(yù) 測模式為Mode的重建塊的方差的累加和,相比SAD/SATD更加準(zhǔn)確的反應(yīng)了編碼失真度, 并且為R值的精確計(jì)算提供了相應(yīng)的參數(shù),模式選擇的準(zhǔn)確度顯著提升,編碼性能至少有 0. 4dB提升。
      [0020] 但是,使用基于RDO模式選擇的方法與使用基于SAD的模式選擇方法相比,基于 SAD的模式選擇計(jì)算復(fù)雜度平均為RDO模式選擇的7 %,在RDO模式選擇中,SSD和R的精 確計(jì)算將帶來非常復(fù)雜的運(yùn)算邏輯和非常嚴(yán)重的數(shù)據(jù)通路延時,這使得基于RDO編碼模式 控制策略的硬件實(shí)現(xiàn)似乎成為不可能完成的任務(wù),這也是目前編碼器摒棄編碼性能顯著提 升的RDO策略,而普遍采用SAD/SATD的模式選擇的主要原因。

      【發(fā)明內(nèi)容】

      [0021] 本發(fā)明的目的在于提供一種計(jì)算編碼失真度和編碼模式控制的方法及其系統(tǒng),解 決了傳統(tǒng)SSD編碼模式控制策略存在嚴(yán)重?cái)?shù)據(jù)通路延時的問題。
      [0022] 為解決上述技術(shù)問題,本發(fā)明的實(shí)施方式公開了一種計(jì)算編碼失真度的方法,該 方法包括以下步驟:
      [0023] 獲取編碼宏塊在當(dāng)前編碼模式下的預(yù)測像素值,并根據(jù)預(yù)測像素值與編碼宏塊的 像素值計(jì)算預(yù)測殘差值;
      [0024] 獲取預(yù)測殘差值經(jīng)過當(dāng)前編碼模式下編碼過程中的量化和反量化處理后的帶有 量化損失的預(yù)測殘差值;
      [0025] 將編碼宏塊的預(yù)測殘差值和帶有量化損失的預(yù)測殘差值的差分平方和作為當(dāng)前 編碼模式下的編碼失真度。
      [0026] 本發(fā)明的實(shí)施方式還公開了一種編碼模式控制方法,包括以下步驟:
      [0027] 根據(jù)如上文所述計(jì)算編碼失真度的方法得到的當(dāng)前編碼模式下的編碼失真度,以 及當(dāng)前編碼模式下的編碼碼率,計(jì)算當(dāng)前編碼模式下的編碼代價值;
      [0028] 在所有可選編碼模式集中將對應(yīng)于最小編碼代價值的編碼模式作為編碼宏塊的 最優(yōu)編碼模式,用于編碼宏塊的編碼。
      [0029] 本發(fā)明的實(shí)施方式還公開了一種計(jì)算編碼失真度的系統(tǒng),該裝置包括以下模塊: [0030] 預(yù)測殘差計(jì)算模塊,用于獲取編碼宏塊在當(dāng)前編碼模式下的預(yù)測像素值,并根據(jù) 預(yù)測像素值與編碼宏塊的像素值計(jì)算預(yù)測殘差值;
      [0031] 帶有量化損失的預(yù)測殘差獲取模塊,用于獲取預(yù)測殘差值經(jīng)過當(dāng)前編碼模式下編 碼過程中的量化和反量化處理后的帶有量化損失的預(yù)測殘差值;
      [0032] 編碼失真度計(jì)算模塊,用于將編碼宏塊的預(yù)測殘差值和帶有量化損失的預(yù)測殘差 值的差分平方和作為當(dāng)前編碼模式下的編碼失真度。
      [0033] 本發(fā)明的實(shí)施方式還公開了一種編碼模式控制系統(tǒng),包括以下模塊:
      [0034] 編碼代價值計(jì)算模塊,用于根據(jù)如上文所述的計(jì)算編碼失真度的系統(tǒng)得到的當(dāng)前 編碼模式下的編碼失真度,以及當(dāng)前編碼模式下的編碼碼率,計(jì)算當(dāng)前編碼模式下的編碼 代價值;
      [0035] 最優(yōu)編碼模式確定模塊,用于在所有可選編碼模式集中將對應(yīng)于最小編碼代價值 的編碼模式作為編碼宏塊的最優(yōu)編碼模式,用于編碼宏塊的編碼。
      [0036] 本發(fā)明實(shí)施方式與現(xiàn)有技術(shù)相比,主要區(qū)別及其效果在于:
      [0037] 本發(fā)明計(jì)算編碼失真度時,取代失真度計(jì)算原型中編碼宏塊的重建值與編碼宏塊 像素值的差分平方和,而以編碼宏塊的預(yù)測殘差值和帶有量化損失的預(yù)測殘差值的差分平 方和作為對應(yīng)編碼模式下的編碼失真度,從而避免了預(yù)測模塊,預(yù)測殘差計(jì)算模塊,重建模 塊在計(jì)算通路中的延時,縮減了整體數(shù)據(jù)通路的延時,解決了傳統(tǒng)SSD編碼模式控制策略 計(jì)算失真度時存在嚴(yán)重?cái)?shù)據(jù)通路延時的問題。
      [0038] 并將改進(jìn)的編碼失真度的計(jì)算方法引入到編碼模式控制中,編碼模式選擇的準(zhǔn)確 度顯著提升。
      [0039] 進(jìn)一步地,為什么特定編碼模式需要單獨(dú)進(jìn)行HT,Q,IHT,IQ,有什么效果嗎?
      [0040] 進(jìn)一步地,通過多重復(fù)用,克服了 SSD率失真編碼模式控制的復(fù)雜的運(yùn)算邏輯,使 其硬件實(shí)現(xiàn)成為可能。
      [0041] 進(jìn)一步地,通過先將DC系數(shù)置零,將原本并行的AC,DC系數(shù)計(jì)算通路,拆解成先后 串行的數(shù)據(jù)計(jì)算過程,分兩個階段完成準(zhǔn)確SSD失真度的計(jì)算,不需要消耗龐大的存儲空 間。
      [0042] 進(jìn)一步地,將數(shù)據(jù)旋轉(zhuǎn)90度后,只需要完成一次矩陣轉(zhuǎn)置,進(jìn)一步減少了延時。
      [0043] 進(jìn)一步地,將14和116兩種編碼模式的預(yù)測過程進(jìn)行交織,利用沒有塊關(guān)聯(lián)性的 116預(yù)測計(jì)算,能夠填補(bǔ)14預(yù)測過程中的通路氣泡,能夠提高預(yù)測效率。
      [0044] 進(jìn)一步地,當(dāng)每種14預(yù)測模式完成模式代價的判決后馬上進(jìn)行是否需要重建的 仲裁,可以確保最優(yōu)的重建結(jié)果伴隨著預(yù)測過程而確定,避免了在確定14最優(yōu)模式后再進(jìn) 行預(yù)測重建的過程,有效縮減了數(shù)據(jù)通路延時和流水線氣泡。
      【附圖說明】
      [0045] 圖1是本發(fā)明第一實(shí)施方式中一種計(jì)算編碼失真度的方法的流程示意圖;
      [0046] 圖2是現(xiàn)有技術(shù)中計(jì)算SSD失真度的流程不意圖;
      [0047] 圖3是本發(fā)明第一實(shí)施方式優(yōu)選例中計(jì)算編碼失真度時的數(shù)據(jù)處理通路示意圖;
      [0048] 圖4是本發(fā)明第五實(shí)施方式中一種編碼模式控制方法的流程示意圖;
      [0049] 圖5是本發(fā)明第六實(shí)施方式中一種計(jì)算編碼失真度的系統(tǒng)的結(jié)構(gòu)示意圖;
      [0050] 圖6是本發(fā)明第十實(shí)施方式中一種編碼模式控制系統(tǒng)的結(jié)構(gòu)示意圖。
      【具體實(shí)施方式】
      [0051] 在以下的敘述中,為了使讀者更好地理解本申請而提出了許多技術(shù)細(xì)節(jié)。但是,本 領(lǐng)域的普通技術(shù)人員可以理解,即使沒有這些技術(shù)細(xì)節(jié)和基于以下各實(shí)施方式的種種變化 和修改,也可以實(shí)現(xiàn)本申請各權(quán)利要求所要求保護(hù)的技術(shù)方案。
      [0052] 為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對本發(fā)明的實(shí)施 方式作進(jìn)一步地詳細(xì)描述。
      [0053] 本發(fā)明第一實(shí)施方式涉及一種計(jì)算編碼失真度的方法,圖1是該計(jì)算編碼失真度 的方法的流程示意圖。
      [0054] 具體地說,如圖1所示,該計(jì)算編碼失真度的方法該方法包括以下步驟:
      [0055] 步驟101,獲取編碼宏塊在當(dāng)前編碼模式下的預(yù)測像素值,并根據(jù)預(yù)測像素值與編 碼宏塊的像素值計(jì)算預(yù)測殘差值。
      [0056] 步驟102,獲取預(yù)測殘差值經(jīng)過當(dāng)前編碼模式下編碼過程中的量化和反量化處理 后的帶有量化損失的預(yù)測殘差值。
      [0057] 步驟103,將編碼宏塊的預(yù)測殘差值和帶有量化損失的預(yù)測殘差值的差分平方和 作為當(dāng)前編碼模式下的編碼失真度。
      [0058] 本實(shí)施方式使用如上所述的步驟計(jì)算編碼失真度主要是考慮到:基于SSD的率失 真編碼模式控制策略對于每種編碼模式的編碼代價值的計(jì)算過程必須通過預(yù)測模塊,殘差 計(jì)算模塊,DCT變換模塊,量化模塊,反量化模塊,反DCT變換模塊,模式選擇模塊以及重建 模塊等一條冗長的數(shù)據(jù)計(jì)算通路,如圖2所示為現(xiàn)有技術(shù)中計(jì)算SSD失真度的流程示意圖, 存在較大的數(shù)據(jù)通路延時,具體地說:
      [0059] SSD原型計(jì)算公式為
      [0060] 其中,Cmb (X,y)為當(dāng)前宏塊的像素值,Rec (X,y)為對應(yīng)預(yù)測模式的重建值。而計(jì) 算重建值時是將帶有量化損失的預(yù)測殘差值Diff'(x,y)加上預(yù)測值,所以SSD失真度的計(jì) 算還需要存儲當(dāng)前宏塊的像素值和相應(yīng)的預(yù)測值,以便于計(jì)算重建值時能夠重新讀取編碼 宏塊的像素值和相應(yīng)的預(yù)測值,造成了存儲量的增大和數(shù)據(jù)計(jì)算通路的延時。
      [0061] 而發(fā)明人對上述SSD原型計(jì)算公式做了如下推導(dǎo):
      [0062]
      [0063] 其中,Cmb(x,y)為當(dāng)前宏塊的像素值,Pred(X,y)為對應(yīng)預(yù)測模式的預(yù)測結(jié)果, Rec (x,y)為對應(yīng)預(yù)測模式的重建結(jié)果,Diff (x,y)為預(yù)測殘差值,DifT'(x,y)為帶量化損 失的預(yù)測殘差值。
      [0064] 通過該推導(dǎo)發(fā)現(xiàn),計(jì)算SSD失真度時并不是必須由當(dāng)前宏塊的像素值Cmb (X,y)和 對應(yīng)預(yù)測模式的重建值Rec (X,y)得到,其中計(jì)算重建值時是將帶有量化損失的預(yù)測殘差 值Diff'(X,y)加上預(yù)測值Pred (X,y),SSD失真度的計(jì)算不再需要經(jīng)過冗長的數(shù)據(jù)計(jì)算通 路,同時也不需要存儲當(dāng)前宏塊的像素值和相應(yīng)的預(yù)測值,而可以直接如步驟101和步驟 102所述,分別獲取預(yù)測殘差值DifT(x,y)和帶量化損失的預(yù)測殘差值DifT'(x,y)后即可 計(jì)算編碼失真度,因此可以將(幀間或幀內(nèi))預(yù)測模塊,殘差計(jì)算模塊,重建模塊從原本的 SSD失真度的計(jì)算通路中去除,縮減了數(shù)據(jù)通路的部分延時。
      [0065] 本發(fā)明計(jì)算編碼失真度時,取代失真度計(jì)算原型中編碼宏塊的重建值與編碼宏塊 像素值的差分平方和,而以編碼宏塊的預(yù)測殘差值和帶有量化損失的預(yù)測殘差值的差分平 方和作為對應(yīng)編碼模式下的編碼失真度,從而避免了預(yù)測模塊,預(yù)測殘差計(jì)算模塊,重建模 塊在計(jì)算通路中的延時,縮減了整體數(shù)據(jù)通路的延時,解決了傳統(tǒng)SSD編碼模式控制策略 計(jì)算失真度時存在嚴(yán)重?cái)?shù)據(jù)通路延時的問題。
      [0066] 此外,當(dāng)前編碼模式(或者預(yù)測模式)是從可選的編碼模式集中選取的,包括幀內(nèi) 預(yù)測模式和幀間預(yù)測模式,其中,幀內(nèi)預(yù)測模式主要包含14亮度預(yù)測9種模式,116亮度預(yù) 測4種模式,18色度預(yù)測4種模式,幀間預(yù)測模式主要包含P16*16, P16*8, P8*16, P8*8, P8*4, P4*8, P4*4以及Pskip共8種模式(包括亮度與色度)。
      [0067] 作為本實(shí)施方式的優(yōu)選例,如圖3所示為計(jì)算編碼失真度時的數(shù)據(jù)處理通路示意 圖,如圖3所示,大虛線框內(nèi)為現(xiàn)有技術(shù)中計(jì)算失真度的數(shù)據(jù)處理通路,包括預(yù)測模塊,殘 差計(jì)算模塊,DCT變換模塊,量化模塊,反量化模塊,反DCT變換模塊,模式選擇模塊以及重 建模塊等。而在本優(yōu)選例中,計(jì)算失真度時僅需獲取小虛線框中DCT變換模塊的輸入信號, 即預(yù)測殘差值Diff (X,y),以及小虛線框的輸出,即帶量化損失的預(yù)測殘差值Diff'(X,y)。 此外,圖中其它部分的介紹將會在以下的各實(shí)施方式中分別提及,此處暫不進(jìn)行展開。
      [0068] 本發(fā)明第二實(shí)施方式涉及一種計(jì)算編碼失真度的方法,第二實(shí)施方式在第一實(shí)施 方式的基礎(chǔ)上進(jìn)行了改進(jìn),主要改進(jìn)之處在于:特定編碼模式單獨(dú)進(jìn)行HT,Q,IHT,IQ的效 果;將數(shù)據(jù)旋轉(zhuǎn)90度后,只需要完成一次矩陣轉(zhuǎn)置,進(jìn)一步減少了延時;將14和116兩種編 碼模式的預(yù)測過程進(jìn)行交織,利用沒有塊關(guān)聯(lián)性的116預(yù)測計(jì)算,能夠填補(bǔ)14預(yù)測過程中 的通路氣泡,能夠提高預(yù)測效率。具體地說:
      [0069] 當(dāng)前編碼模式下的編碼過程還包括離散余弦變換(即DCT變換)和反離散余弦變 換(即IDCT變換),其中編碼過程需要進(jìn)行離散余弦變換,而解碼過程則需要反離散余弦變 換。
      [0070] 上述預(yù)測殘差值DifT (X,y)經(jīng)離散余弦變換后得到DCT系數(shù),DCT系數(shù)包括DC系 數(shù)和AC系數(shù)。
      [0071] 首先,優(yōu)選地,基于上述的DC系數(shù)和AC系數(shù),在步驟102中,還包括以下子步驟:
      [0072] 判斷當(dāng)前編碼模式是否為預(yù)定編碼模式,預(yù)定編碼模式包括幀內(nèi)預(yù)測中的116預(yù) 測模式,以及幀內(nèi)預(yù)測和幀間預(yù)測中的色度預(yù)測模式;
      [0073] 如果判斷結(jié)果為預(yù)定編碼模式,則對離散余弦變換得到的DCT系數(shù)中的DC系數(shù)單 獨(dú)進(jìn)行哈達(dá)瑪變換(即HT變換),量化,反哈達(dá)瑪變換(即IHT變換)以及反量化的處理。
      [0074] 其中,離散余弦變換(即DCT變換)是先將整體圖像分成N*N的像素塊,然后針對 N*N的像素塊逐一進(jìn)行DCT操作,將圖像信號分解為直流成分和一些從低頻到高頻的各種 余弦成分,表示各種成分所占原圖像信號的份額大小構(gòu)成了矩陣形式的DCT系數(shù)。從而將 圖像從空間域轉(zhuǎn)換到了頻域。其中,(〇,〇)位置的系數(shù)大小是矩陣其余位置系數(shù)大小的均 值,相當(dāng)于直流分量,可稱之為DC系數(shù)或者直流系數(shù)。另外的系數(shù)則代表了水平空間頻率 和垂直空間頻率分量(高頻分量)的大小,多半是一些接近于0的正負(fù)浮點(diǎn)數(shù),稱之為交流 系數(shù)AC。DCT變換后的系數(shù)矩陣中,低頻分量集中在矩陣的左上角,高頻成分則集中在右下 角。由于大多數(shù)圖像高頻分量小,相應(yīng)地系數(shù)矩陣中高頻分量對應(yīng)的DCT系數(shù)接近于0,且 高頻分量只包含圖像細(xì)微變化信息,人眼對其并不敏感,所以,可以考慮將這一些高頻成分 予以拋棄,從而降低需要傳輸?shù)臄?shù)據(jù)量。傳送DCT變換系數(shù)的所需要的編碼長度要遠(yuǎn)遠(yuǎn)小 于傳送圖像像素的編碼長度。
      [0075] 上述對預(yù)定編碼模式下的DC系數(shù)單獨(dú)進(jìn)行哈達(dá)瑪變換,量化,反哈達(dá)瑪變換以及 反量化的處理時,具體如圖3所示,是將DC系數(shù)存儲在DCRAM中,并由殘差計(jì)算模塊讀取該 DC系數(shù),并輸入到HT模塊中進(jìn)行處理。
      [0076] 其次,優(yōu)選地,離散余弦變換和反離散余弦變換包括以下子步驟:
      [0077] 將輸入數(shù)據(jù)旋轉(zhuǎn)90度,先進(jìn)行垂直變換再進(jìn)行水平變換。
      [0078] 作上述優(yōu)選處理主要是考慮到:頻域變化及反變換模塊按照傳統(tǒng)的標(biāo)準(zhǔn)數(shù)據(jù)處理 流程,完成一次DCT/HT或IDCT/IHT的計(jì)算需要進(jìn)行兩次矩陣轉(zhuǎn)置以確保頻域變換及反變 換結(jié)果的正確性,其數(shù)據(jù)通路的延時完全由吞吐率決定。
      [0079] 因此,在保證現(xiàn)有吞吐率的前提下,根據(jù)本發(fā)明的編碼架構(gòu)框架可以做如下優(yōu) 化:
      [0080] DCT/HT :DCT/HT整數(shù)變化可逆,將輸入數(shù)據(jù)旋轉(zhuǎn)90度,即先進(jìn)行垂直變換,再進(jìn)行 水平變換,即只需要完成一次矩陣轉(zhuǎn)置;
      [0081] IDCT/IHT :IDCT/IHT整數(shù)變換不可逆,無法采用類似于DCT/HT的處理方式,但 IDCT結(jié)果輸出用于SSD代價值的累加計(jì)算,因此,不需要進(jìn)行第二次矩陣轉(zhuǎn)置;
      [0082] 通過對通路數(shù)據(jù)組織格式調(diào)整,確保正反頻域整數(shù)變化時間縮減一半。
      [0083] 最后,優(yōu)選地,在當(dāng)前編碼模式下的編碼過程中,對于幀內(nèi)預(yù)測中的14編碼模式, 還包括子步驟:
      [0084] 將幀內(nèi)預(yù)測中的116編碼模式的預(yù)測過程交織在14編碼模式的預(yù)測過程中。
      [0085] 作上述優(yōu)化處理主要是考慮到:相比傳統(tǒng)的基于SAD(SATD)的編碼控制策略的編 碼架構(gòu),數(shù)據(jù)處理通路產(chǎn)生的巨大延時,其中一個重大的影響就是由于對于幀內(nèi)14預(yù)測模 式下,相鄰4x4塊之間的預(yù)測參考的關(guān)聯(lián)性,預(yù)測過程中存在大量通路氣泡(即流水線中的 單位時間),具體影響表現(xiàn)在兩個方面:
      [0086] 對于某一個4x4塊內(nèi)的預(yù)測通路氣泡,提出消除塊內(nèi)氣泡的方法是,將14/116兩 種模式預(yù)測過程進(jìn)行交織,利用沒有塊關(guān)聯(lián)性的116預(yù)測計(jì)算,來填補(bǔ)14預(yù)測過程中的氣 泡,提高預(yù)測效率。
      [0087] 對于相鄰兩個4x4塊間的預(yù)測通路氣泡,將在本發(fā)明第五實(shí)施方式中進(jìn)行介紹。
      [0088] 本發(fā)明第三實(shí)施方式涉及一種計(jì)算編碼失真度的方法,第三實(shí)施方式在第二實(shí)施 方式的基礎(chǔ)上進(jìn)行了改進(jìn),主要改進(jìn)之處在于:通過多重復(fù)用,克服了 SSD率失真編碼模式 控制的復(fù)雜的運(yùn)算邏輯,使其硬件實(shí)現(xiàn)成為可能。具體地說:
      [0089] 在第二實(shí)施方式所述"如果判斷結(jié)果為預(yù)定編碼模式,則對離散余弦變換得到的 DCT系數(shù)中的DC系數(shù)單獨(dú)進(jìn)行哈達(dá)瑪變換,量化,反哈達(dá)瑪變換以及反量化的處理"的子步 驟中,
      [0090] 對預(yù)定編碼模式下的DC系數(shù)進(jìn)行哈達(dá)瑪變換,量化,反哈達(dá)瑪變換以及反量化處 理的DC數(shù)據(jù)處理通路,與對AC系數(shù)進(jìn)行離散余弦變換,量化,反量化,反離散余弦變換處理 的AC數(shù)據(jù)處理通路是復(fù)用的。
      [0091] 此外,可以理解,還包括其它復(fù)用,包括幀內(nèi)/幀間預(yù)測的復(fù)用,編碼失真度計(jì)算 數(shù)據(jù)通路和碼率精確估計(jì)數(shù)據(jù)通路的復(fù)用。
      [0092] 作上述優(yōu)化處理主要是考慮到:相比傳統(tǒng)的基于SAD(SATD)的編碼控制策略的編 碼架構(gòu)在預(yù)測和模式選擇階段只需要預(yù)測以及殘差計(jì)算模塊,而基于SSD的率失真編碼模 式控制策略的編碼架構(gòu),還額外需要DCT變換模塊,量化模塊,反量化模塊,反DCT變換模 塊,模式選擇模塊,重建模塊,以及更加復(fù)雜的碼率估計(jì)模塊,因此數(shù)據(jù)通路的多重復(fù)用可 極大地縮小實(shí)現(xiàn)規(guī)模:
      [0093] 作為本實(shí)施方式的優(yōu)選例,如圖3所示,采用如下的多重復(fù)用方案:
      [0094] (1)幀內(nèi)預(yù)測和幀間預(yù)測,SSD計(jì)算數(shù)據(jù)通路(殘差計(jì)算模塊,DCT&HT變換/ IDCT&IHT變換,Q/IQ)和碼率精確估計(jì)數(shù)據(jù)通路的復(fù)用;
      [0095] (2)DCT/HT變換實(shí)現(xiàn)邏輯的復(fù)用;
      [0096] (3) IDCT/IHT變換實(shí)現(xiàn)邏輯的復(fù)用;
      [0097] ⑷AC系數(shù)和DC系數(shù)數(shù)據(jù)處理通路的復(fù)用:針對116x16預(yù)測模式,以及幀內(nèi)和幀 間色度預(yù)測模式(U分量和V分量)DCT頻域變換結(jié)果的DC系數(shù)還需要完成單獨(dú)通過哈達(dá)瑪 變換模塊,量化模塊,反哈達(dá)瑪變化模塊,反量化模塊的計(jì)算處理,以及DCRAM模塊的復(fù)用。
      [0098] (5)模式選擇模塊和重建模塊的復(fù)用。
      [0099] 如圖3所示,上述模塊間的復(fù)用是由圖中的多個MUX來實(shí)現(xiàn)的。當(dāng)然,在本發(fā)明的 其它實(shí)施方式中,也可以通過其它方式進(jìn)行復(fù)用,而不局限于此。
      [0100] 本發(fā)明第四實(shí)施方式涉及一種計(jì)算編碼失真度的方法,第四實(shí)施方式在第三實(shí)施 方式的基礎(chǔ)上進(jìn)行了改進(jìn),主要改進(jìn)之處在于:通過先將DC系數(shù)置零,將原本并行的AC,DC 系數(shù)計(jì)算通路,拆解成先后串行的數(shù)據(jù)計(jì)算過程,分兩個階段完成準(zhǔn)確SSD失真度的計(jì)算, 不需要消耗龐大的存儲空間。具體地說:
      [0101] 在步驟103中,還包括以下子步驟:
      [0102] 將帶有量化損失的預(yù)測殘差值分解為由DC系數(shù)置零后的DCT系數(shù)經(jīng)過反離散余 弦變換輸出的第一預(yù)測殘差值Diff " (X,y),以及預(yù)定編碼模式下的DC系數(shù)經(jīng)過哈達(dá)瑪變 換,量化,反哈達(dá)瑪變換,反量化計(jì)算輸出的第二預(yù)測殘差值DC";
      [0103] 在AC數(shù)據(jù)處理通路上,將第一預(yù)測殘差值Diff" (x,y)與預(yù)測殘差值Diff(x,y) 的差值及該差值的平方值分別進(jìn)行累加計(jì)算并存儲;
      [0104] 在DC數(shù)據(jù)計(jì)算通路上,將第二預(yù)測殘差值DC"的平方值進(jìn)行累加計(jì)算,并將第二 預(yù)測殘差值DC"與存儲的第一預(yù)測殘差值Diff" (x,y)與預(yù)測殘差值Diff (x,y)的差值 進(jìn)行乘積累加計(jì)算;
      [0105] 將AC數(shù)據(jù)計(jì)算通路及DC數(shù)據(jù)計(jì)算通路上的兩部分?jǐn)?shù)據(jù)進(jìn)行合并累加得到編碼失 真度。
      [0106] 作上述優(yōu)化處理主要是考慮到:預(yù)設(shè)編碼模式下的DC系數(shù)要單獨(dú)完成HT,因此編 碼代價值的計(jì)算不能一次完成,傳統(tǒng)實(shí)現(xiàn)方案中都消耗了龐大的存儲空間來暫存SSD計(jì)算 過程中的中間結(jié)果。
      [0107] 作為本實(shí)施方式的優(yōu)選例,以下作詳細(xì)闡述:
      [0108] 在第三實(shí)施方式中提到的"AC系數(shù)和DC系數(shù)數(shù)據(jù)處理通路的復(fù)用",只是在數(shù)據(jù) 計(jì)算通路上優(yōu)化了硬件實(shí)現(xiàn)的結(jié)構(gòu),而針對116x16預(yù)測模式,以及幀內(nèi)和幀間色度預(yù)測模 式(u分量和V分量)DCT頻域變換結(jié)果的DC系數(shù)還需要單獨(dú)完成哈達(dá)瑪變換,量化,反哈 達(dá)瑪變化,反量化的一系列計(jì)算處理,而這個額外的計(jì)算過程也決定了基于SSD的率失真 編碼模式選擇代價計(jì)算不能一次完成整個計(jì)算過程,相比傳統(tǒng)實(shí)現(xiàn)方案中消耗龐大的存儲 空間面積來暫存SSD計(jì)算過程中的中間計(jì)算結(jié)果,本優(yōu)選例提出一種"DC系數(shù)補(bǔ)償"的算法 改進(jìn),基于"AC系數(shù)和DC系數(shù)數(shù)據(jù)處理通路的復(fù)用"的通路結(jié)構(gòu),分兩個階段完成準(zhǔn)確SSD 代價值的計(jì)算,具體實(shí)現(xiàn)步驟如下:
      [0109]
      [0110]
      [0111] 其中,Diff" (x,y)為頻域DC系數(shù)置零后,經(jīng)過IDCT變換的輸出結(jié)果,DC" (x,y) 為116或U/V分量的DC系數(shù)經(jīng)過了哈達(dá)瑪變換,量化,反哈達(dá)瑪變化,反量化計(jì)算的輸出結(jié) 果。
      [0112] 該算法改進(jìn)的理論依據(jù)是頻域DC系數(shù)為每個時域系數(shù)的均值,即需要為每個 Diff" (x,y)系數(shù)均補(bǔ)償一個DC" (x,y)系數(shù):
      [0113] DC(x,y) = 0+DC" (x,y) =>Diff" (x,y)+DC〃(x,y)
      [0114] 其中,DC(x,y)為頻域DC系數(shù)置零后的結(jié)果,DC(x,y) == 0 ;
      [0115] 通過該"DC系數(shù)補(bǔ)償"的算法優(yōu)化,可以將原本并行的AC/DC系數(shù)計(jì)算通路,拆解 成兩個可以先后串行的數(shù)據(jù)計(jì)算過程,并可以利用"AC系數(shù)和DC系數(shù)數(shù)據(jù)處理通路的復(fù) 用"提供的數(shù)據(jù)計(jì)算邏輯來完成這兩個計(jì)算過程。
      [0116] (2) "DC系數(shù)補(bǔ)償"具體實(shí)現(xiàn)過程:
      [0117] 首先,在AC數(shù)據(jù)計(jì)算通路上,模式選擇模塊對公式中的 (01打"(叉,7)-01打(叉,7)) 2分量進(jìn)行累加計(jì)算處理,并對(01打"(叉,7)-01打(叉,7))分量 同樣進(jìn)行累加計(jì)算,并以4x4塊為單位進(jìn)行數(shù)據(jù)存儲;
      [0118] 然后,在DC數(shù)據(jù)計(jì)算通路上,模式選擇模塊對對應(yīng)DC" (X,y)2分量的累加計(jì)算處 理,并從數(shù)據(jù)存儲單元中選擇對應(yīng)的(Diff" (x,y)-Diff(x,y))完成相乘及累加和的計(jì)算 處理;
      [0119] 最后,最終的累加結(jié)果便是SSD失真度值的精確值。
      [0120] 本發(fā)明第五實(shí)施方式涉及一種編碼模式控制方法,如圖4所示為該編碼模式控制 方法的流程示意圖。
      [0121] 具體地說,如圖4所示,該編碼模式控制方法包括以下步驟:
      [0122] 步驟401,根據(jù)如第一至第四實(shí)施方式中任一項(xiàng)的編碼失真度的計(jì)算方法得到的 當(dāng)前編碼模式下的編碼失真度,以及當(dāng)前編碼模式下的編碼碼率,計(jì)算當(dāng)前編碼模式下的 編碼代價值。
      [0123] 步驟402,在所有可選編碼模式集中將對應(yīng)于最小編碼代價值的編碼模式作為編 碼宏塊的最優(yōu)編碼模式,用于編碼宏塊的編碼。
      [0124] 利用改進(jìn)的編碼失真度的計(jì)算方法引入到編碼模式控制中,編碼模式選擇的準(zhǔn)確 度顯著提升。
      [0125] 具體地,本實(shí)施方式是通過以下技術(shù)方案實(shí)現(xiàn)的:
      [0126] A.根據(jù)宏塊預(yù)測階段的不同,將編碼控制策略劃分成4個不同的階段:
      [0127] 階段1,幀內(nèi)預(yù)測模式:主要包含14亮度預(yù)測9種模式,116亮度預(yù)測4種模式, 18色度(U分量和V分量)預(yù)測4種模式,均采用基于SSD的率失真編碼模式選擇策略,以 此確定14亮度最優(yōu)預(yù)測模式及其代價值,116亮度最優(yōu)預(yù)測模式及其代價值,18色度最優(yōu) 預(yù)測模式及其代價值(U分量和V分量);
      [0128] 階段2,幀間預(yù)測模式(預(yù)搜索階段):主要包含P16xl6, P16x8, P8xl6, P8x8, P8x4, P4x8, P4x4, PSkip共8種模式的幀間預(yù)測(包括亮度與色度),均 采用基于SATD的編碼模式控制策略,以此確定P16xl6預(yù)測模式,P16x8和P8xl6的最優(yōu)預(yù) 測模式,P8x8, P8x4, P4x4和P4x4的最優(yōu)預(yù)測模式,以及PSkip預(yù)測模式;
      [0129] 階段3,幀間預(yù)測模式(精確代價計(jì)算階段):利用階段2確定的P16xl6預(yù)測模 式,P16x8和P8xl6的最優(yōu)預(yù)測模式,P8x8,P8x4,P4x4和P4x4的最優(yōu)預(yù)測模式,以及PSkip 預(yù)測模式這4種模式,再采用基于SSD的率失真編碼模式選擇策略,重新計(jì)算其各自的代價 值;
      [0130] 階段4,幀內(nèi)與幀間最優(yōu)模式的選擇:利用階段1確定的14亮度最優(yōu)預(yù)測模式的 代價值,116亮度最優(yōu)預(yù)測模式的代價值,18色度最優(yōu)預(yù)測模式的代價值(U分量和V分 量),以及階段3確定的P16xl6預(yù)測模式的代價值,P16x8和P8xl6的最優(yōu)預(yù)測模式代價 值,P8x8, P8x4, P4x8和P4x4的最優(yōu)預(yù)測模式的代價值,以及PSkip預(yù)測模式的代價值,以 此來確定當(dāng)前宏塊的最優(yōu)預(yù)測模式(包括亮度和色度);
      [0131] B.針對步驟A中階段1幀內(nèi)預(yù)測模式,是以4x4的塊為最小計(jì)算單元,經(jīng)過幀內(nèi) 預(yù)測模塊(完成14亮度預(yù)測9種模式,116亮度預(yù)測4種模式,18色度預(yù)測4種模式的輸 出),殘差計(jì)算模塊(預(yù)測像素值與當(dāng)前像素的殘差計(jì)算),DCT變換模塊(時域到頻域的轉(zhuǎn) 換),量化模塊(量化模塊的輸出分為兩個方向:方向一,輸出到碼率計(jì)算模塊,進(jìn)行精確的 碼率計(jì)算;方向二,輸出到反量化模塊),反量化模塊,反DCT變換模塊,模式選擇模塊(完 成每種預(yù)測模式代價值的計(jì)算和比較,選擇確定最優(yōu)模式),其中,針對116亮度預(yù)測的4種 模式和18色度預(yù)測4種模式,還需要對DCT頻域變化輸出的DC系數(shù)矩陣單獨(dú)通過哈達(dá)瑪 變換模塊,量化模塊,反哈達(dá)瑪變化模塊,反量化模塊的計(jì)算處理,最終確定幀內(nèi)最優(yōu)模式 及其代價值;
      [0132] C.針對步驟A中階段2幀間預(yù)測模式(預(yù)搜索階段),由于預(yù)測點(diǎn)的個數(shù)由搜素算 法決定,隨著搜索范圍需求的不斷放大,搜索點(diǎn)數(shù)也成倍的增加,為了簡化搜索過程,縮短 搜索時間,該階段還是采用基于SAD(或SATD)和速率估計(jì)的編碼模式控制策略,以此來為 后續(xù)階段模塊提供4種備選的幀間預(yù)測模式:P16xl6, PSkip,P16x8或P8xl6, P8x8或P8x4 或 P4x8 或 P4x4 ;
      [0133] D.針對步驟A中階段3幀間預(yù)測模式(精確代價計(jì)算階段),對步驟A中的階段 2幀內(nèi)預(yù)測模式(預(yù)搜索階段)的輸出結(jié)果,采用基于SSD的率失真編碼模式選擇策略,類 似于步驟A中的階段1幀內(nèi)預(yù)測模式的處理步驟,通過殘差計(jì)算模塊,DCT變換模塊,量化 模塊,反量化模塊,反DCT變換模塊,模式選擇模塊,其中,針對P8色度預(yù)測4種模式,還需 要對DCT頻域變化輸出的DC系數(shù)矩陣單獨(dú)通過哈達(dá)瑪變換模塊,量化模塊,反哈達(dá)瑪變化 模塊,反量化模塊的計(jì)算處理,完成四種幀間模式的代價值(亮度和色度)的重算,并確定 幀間最優(yōu)模式及其代價值。
      [0134] 優(yōu)選地,針對塊間氣泡,在"計(jì)算當(dāng)前編碼模式下的編碼代價值"的步驟之后,還包 括以下步驟:
      [0135] 對于幀內(nèi)預(yù)測中的每種14編碼模式,完成編碼代價值的計(jì)算后,進(jìn)行是否需要重 建的仲裁。
      [0136] 當(dāng)每種14預(yù)測模式完成模式代價的判決后馬上進(jìn)行是否需要重建的仲裁,可以 確保最優(yōu)的重建結(jié)果伴隨著預(yù)測過程而確定,避免了在確定14最優(yōu)模式后再進(jìn)行預(yù)測重 建的過程,有效縮減了數(shù)據(jù)通路延時和流水線氣泡。
      [0137] 至此本發(fā)明描述的基于SSD的率失真編碼模式控制策略的編碼架構(gòu)和傳統(tǒng)的基 于SAD (SATD)的編碼控制策略相比,從性能角度來看,更加準(zhǔn)確的反應(yīng)了編碼失真度,并且 為R值得精確地計(jì)算提供了相應(yīng)的參數(shù),模式選擇的準(zhǔn)確度的顯著提升,從而使其編碼性 能相應(yīng)大幅提升;從實(shí)現(xiàn)角度來看,解決了 SSD和R的精確計(jì)算帶來的復(fù)雜運(yùn)算邏輯和嚴(yán)重 數(shù)據(jù)通路延時,并以可以接受的硬件代價來完成RDO編碼模式控制策略的硬件實(shí)現(xiàn)。
      [0138] 本發(fā)明的各方法實(shí)施方式均可以以軟件、硬件、固件等方式實(shí)現(xiàn)。不管本發(fā)明是 以軟件、硬件、還是固件方式實(shí)現(xiàn),指令代碼都可以存儲在任何類型的計(jì)算機(jī)可訪問的存儲 器中(例如永久的或者可修改的,易失性的或者非易失性的,固態(tài)的或者非固態(tài)的,固定的 或者可更換的介質(zhì)等等)。同樣,存儲器可以例如是可編程陣列邏輯(Programmable Array Logic,簡稱"PAL")、隨機(jī)存取存儲器(Random Access Memory,簡稱"RAM")、可編程只讀存 儲器(Programmable Read Only Memory,簡稱 "PROM")、只讀存儲器(Read-Only Memory, 簡稱"ROM")、電可擦除可編程只讀存儲器(Electrically Erasable Programmable ROM,簡 稱"EEPR0M")、磁盤、光盤、數(shù)字通用光盤(Digital Versatile Disc,簡稱"DVD")等等。
      [0139] 本發(fā)明第六實(shí)施方式涉及一種計(jì)算編碼失真度的系統(tǒng),圖5是該計(jì)算編碼失真度 的系統(tǒng)的結(jié)構(gòu)示意圖。
      [0140] 具體地說,如圖5所示,該計(jì)算編碼失真度的系統(tǒng)該裝置包括以下模塊:
      [0141] 預(yù)測殘差計(jì)算模塊,用于獲取編碼宏塊在當(dāng)前編碼模式下的預(yù)測像素值,并根據(jù) 預(yù)測像素值與編碼宏塊的像素值計(jì)算預(yù)測殘差值;
      [0142] 帶有量化損失的預(yù)測殘差獲取模塊,用于獲取預(yù)測殘差值經(jīng)過當(dāng)前編碼模式下編 碼過程中的量化和反量化處理后的帶有量化損失的預(yù)測殘差值;
      [0143] 編碼失真度計(jì)算模塊,用于將編碼宏塊的預(yù)測殘差值和帶有量化損失的預(yù)測殘差 值的差分平方和作為當(dāng)前編碼模式下的編碼失真度。
      [0144] 本發(fā)明計(jì)算編碼失真度時,取代失真度計(jì)算原型中編碼宏塊的重建值與編碼宏塊 像素值的差分平方和,而以編碼宏塊的預(yù)測殘差值和帶有量化損失的預(yù)測殘差值的差分平 方和作為對應(yīng)編碼模式下的編碼失真度,從而避免了預(yù)測模塊,預(yù)測殘差計(jì)算模塊,重建模 塊在計(jì)算通路中的延時,縮減了整體數(shù)據(jù)通路的延時,解決了傳統(tǒng)SSD編碼模式控制策略 計(jì)算失真度時存在嚴(yán)重?cái)?shù)據(jù)通路延時的問題。
      [0145] 第一實(shí)施方式是與本實(shí)施方式相對應(yīng)的方法實(shí)施方式,本實(shí)施方式可與第一實(shí)施 方式互相配合實(shí)施。第一實(shí)施方式中提到的相關(guān)技術(shù)細(xì)節(jié)在本實(shí)施方式中依然有效,為了 減少重復(fù),這里不再贅述。相應(yīng)地,本實(shí)施方式中提到的相關(guān)技術(shù)細(xì)節(jié)也可應(yīng)用在第一實(shí)施 方式中。
      [0146] 本發(fā)明第七實(shí)施方式涉及一種計(jì)算編碼失真度的系統(tǒng),第七實(shí)施方式在第六實(shí)施 方式的基礎(chǔ)上進(jìn)行了改進(jìn),主要改進(jìn)之處在于:特定編碼模式需要單獨(dú)進(jìn)行HT,Q,IHT,IQ 的效果;將數(shù)據(jù)旋轉(zhuǎn)90度后,只需要完成一次矩陣轉(zhuǎn)置,進(jìn)一步減少了延時;將14和116兩 種編碼模式的預(yù)測過程進(jìn)行交織,利用沒有塊關(guān)聯(lián)性的116預(yù)測計(jì)算,能夠填補(bǔ)14預(yù)測過 程中的通路氣泡,能夠提高預(yù)測效率。具體地說:
      [0147] 當(dāng)前編碼模式下的編碼過程還包括離散余弦變換和反離散余弦變換,預(yù)測殘差值 經(jīng)離散余弦變換后得到DCT系數(shù),DCT系數(shù)包括DC系數(shù)和AC系數(shù)。
      [0148] 首先,優(yōu)選地,在帶有量化損失的預(yù)測殘差獲取模塊中,還包括以下子模塊:
      [0149] 預(yù)定編碼模式判斷子模塊,用于判斷當(dāng)前編碼模式是否為預(yù)定編碼模式,預(yù)定編 碼模式包括幀內(nèi)預(yù)測中的116預(yù)測模式,以及幀內(nèi)預(yù)測和幀間預(yù)測中的色度預(yù)測模式;
      [0150] 預(yù)定編碼模式處理子模塊,用于如果判斷結(jié)果為預(yù)定編碼模式,則對離散余弦變 換得到的DCT系數(shù)中的DC系數(shù)單獨(dú)進(jìn)行哈達(dá)瑪變換,量化,反哈達(dá)瑪變換以及反量化的處 理。
      [0151] 其次,優(yōu)選地,帶有量化損失的預(yù)測殘差獲取模塊進(jìn)行離散余弦變換和反離散余 弦變換時,還包括以下子模塊:
      [0152] 數(shù)據(jù)旋轉(zhuǎn)子模塊,用于將輸入數(shù)據(jù)旋轉(zhuǎn)90度,先進(jìn)行垂直變換再進(jìn)行水平變換。
      [0153] 最后,優(yōu)選地,對于幀內(nèi)預(yù)測中的14編碼模式,還包括子模塊:
      [0154] 交織子模塊,用于將幀內(nèi)預(yù)測中的116編碼模式的預(yù)測過程交織在14編碼模式的 預(yù)測過程中。
      [0155] 第二實(shí)施方式是與本實(shí)施方式相對應(yīng)的方法實(shí)施方式,本實(shí)施方式可與第二實(shí)施 方式互相配合實(shí)施。第二實(shí)施方式中提到的相關(guān)技術(shù)細(xì)節(jié)在本實(shí)施方式中依然有效,為了 減少重復(fù),這里不再贅述。相應(yīng)地,本實(shí)施方式中提到的相關(guān)技術(shù)細(xì)節(jié)也可應(yīng)用在第二實(shí)施 方式中。
      [0156] 本發(fā)明第八實(shí)施方式涉及一種計(jì)算編碼失真度的系統(tǒng),第八實(shí)施方式在第七實(shí)施 方式的基礎(chǔ)上進(jìn)行了改進(jìn),主要改進(jìn)之處在于:通過多重復(fù)用,克服了 SSD率失真編碼模式 控制的復(fù)雜的運(yùn)算邏輯,使其硬件實(shí)現(xiàn)成為可能。具體地說:
      [0157] 在預(yù)定編碼模式處理子模塊中,對預(yù)定編碼模式下的DC系數(shù)進(jìn)行哈達(dá)瑪變換,量 化,反哈達(dá)瑪變換以及反量化處理的DC數(shù)據(jù)處理通路,與對AC系數(shù)進(jìn)行離散余弦變換,量 化,反量化,反離散余弦變換處理的AC數(shù)據(jù)處理通路是復(fù)用的。
      [0158] 第三實(shí)施方式是與本實(shí)施方式相對應(yīng)的方法實(shí)施方式,本實(shí)施方式可與第三實(shí)施 方式互相配合實(shí)施。第三實(shí)施方式中提到的相關(guān)技術(shù)細(xì)節(jié)在本實(shí)施方式中依然有效,為了 減少重復(fù),這里不再贅述。相應(yīng)地,本實(shí)施方式中提到的相關(guān)技術(shù)細(xì)節(jié)也可應(yīng)用在第三實(shí)施 方式中。
      [0159] 本發(fā)明第九實(shí)施方式涉及一種計(jì)算編碼失真度的系統(tǒng),第九實(shí)施方式在第八實(shí)施 方式的基礎(chǔ)上進(jìn)行了改進(jìn),主要改進(jìn)之處在于:通過先將DC系數(shù)置零,將原本并行的AC,DC 系數(shù)計(jì)算通路,拆解成先后串行的數(shù)據(jù)計(jì)算過程,分兩個階段完成準(zhǔn)確SSD失真度的計(jì)算, 不需要消耗龐大的存儲空間。具體地說:
      [0160] 在編碼失真度計(jì)算模塊中,還包括以下子模塊:
      [0161] 分解子模塊,用于將帶有量化損失的預(yù)測殘差值分解為由DC系數(shù)置零后的DCT系 數(shù)經(jīng)過反離散余弦變換輸出的第一預(yù)測殘差值Diff " (X,y),以及預(yù)定編碼模式下的DC系 數(shù)經(jīng)過哈達(dá)瑪變換,量化,反哈達(dá)瑪變換,反量化計(jì)算輸出的第二預(yù)測殘差值DC";
      [0162] 第一累加子模塊,用于在AC數(shù)據(jù)處理通路上,將第一預(yù)測殘差值Diff" (x,y)與 預(yù)測殘差值DifT (x,y)的差值及該差值的平方值分別進(jìn)行累加計(jì)算并存儲;
      [0163] 第二累加子模塊,用于在DC數(shù)據(jù)計(jì)算通路上,將第二預(yù)測殘差值DC"的平方值進(jìn) 行累加計(jì)算,并將第二預(yù)測殘差值DC"與存儲的第一預(yù)測殘差值Diff" (x,y)與預(yù)測殘差 值DifT (X,y)的差值進(jìn)行乘積累加計(jì)算;
      [0164] 合并子模塊,用于將AC數(shù)據(jù)計(jì)算通路及DC數(shù)據(jù)計(jì)算通路上的兩部分?jǐn)?shù)據(jù)進(jìn)行合 并累加得到編碼失真度。
      [0165] 第四實(shí)施方式是與本實(shí)施方式相對應(yīng)的方法實(shí)施方式,本實(shí)施方式可與第四實(shí)施 方式互相配合實(shí)施。第四實(shí)施方式中提到的相關(guān)技術(shù)細(xì)節(jié)在本實(shí)施方式中依然有效,為了 減少重復(fù),這里不再贅述。相應(yīng)地,本實(shí)施方式中提到的相關(guān)技術(shù)細(xì)節(jié)也可應(yīng)用在第四實(shí)施 方式中。
      [0166] 本發(fā)明第十實(shí)施方式涉及一種編碼模式控制系統(tǒng),圖6是該編碼模式控制系統(tǒng)的 結(jié)構(gòu)示意圖。
      [0167] 具體地說,如圖6所示,該編碼模式控制系統(tǒng)包括以下模塊:
      [0168] 編碼代價值計(jì)算模塊,用于根據(jù)前述編碼失真度的計(jì)算系統(tǒng)得到的當(dāng)前編碼模式 下的編碼失真度,以及當(dāng)前編碼模式下的編碼碼率,計(jì)算當(dāng)前編碼模式下的編碼代價值;
      [0169] 最優(yōu)編碼模式確定模塊,用于在所有可選編碼模式集中將對應(yīng)于最小編碼代價值 的編碼模式作為編碼宏塊的最優(yōu)編碼模式,用于編碼宏塊的編碼。
      [0170] 利用改進(jìn)的編碼失真度的計(jì)算方法引入到編碼模式控制中,編碼模式選擇的準(zhǔn)確 度顯著提升。
      [0171] 優(yōu)選地,還包括以下模塊:
      [0172] 重建仲裁模塊,用于對幀內(nèi)預(yù)測中的每種14編碼模式,在完成編碼代價值的計(jì)算 后,進(jìn)行是否需要重建的仲裁。
      [0173] 當(dāng)每種14預(yù)測模式完成模式代價的判決后馬上進(jìn)行是否需要重建的仲裁,可以 確保最優(yōu)的重建結(jié)果伴隨著預(yù)測過程而確定,避免了在確定14最優(yōu)模式后再進(jìn)行預(yù)測重 建的過程,有效縮減了數(shù)據(jù)通路延時和流水線氣泡。
      [0174] 第五實(shí)施方式是與本實(shí)施方式相對應(yīng)的方法實(shí)施方式,本實(shí)施方式可與第五實(shí)施 方式互相配合實(shí)施。第五實(shí)施方式中提到的相關(guān)技術(shù)細(xì)節(jié)在本實(shí)施方式中依然有效,為了 減少重復(fù),這里不再贅述。相應(yīng)地,本實(shí)施方式中提到的相關(guān)技術(shù)細(xì)節(jié)也可應(yīng)用在第五實(shí)施 方式中。
      [0175] 綜上所述,本發(fā)明要解決的技術(shù)問題是如何采用基于SSD的率失真編碼模式控制 策略來解決SAD/SATD算法模式選擇準(zhǔn)確性不足的缺陷,同時,也克服了 SSD率失真編碼模 式控制策略帶來的非常復(fù)雜的運(yùn)算邏輯和嚴(yán)重的數(shù)據(jù)通路延時,使其硬件實(shí)現(xiàn)成為可能。
      [0176] 需要說明的是,本發(fā)明各設(shè)備實(shí)施方式中提到的各模塊都是邏輯模塊,在物理上, 一個邏輯模塊可以是一個物理模塊,也可以是一個物理模塊的一部分,還可以以多個物理 模塊的組合實(shí)現(xiàn),這些邏輯模塊本身的物理實(shí)現(xiàn)方式并不是最重要的,這些邏輯模塊所實(shí) 現(xiàn)的功能的組合才是解決本發(fā)明所提出的技術(shù)問題的關(guān)鍵。此外,為了突出本發(fā)明的創(chuàng)新 部分,本發(fā)明上述各設(shè)備實(shí)施方式并沒有將與解決本發(fā)明所提出的技術(shù)問題關(guān)系不太密切 的模塊引入,這并不表明上述設(shè)備實(shí)施方式并不存在其它的模塊。
      [0177] 需要說明的是,在本專利的權(quán)利要求和說明書中,諸如第一和第二等之類的關(guān)系 術(shù)語僅僅用來將一個實(shí)體或者操作與另一個實(shí)體或操作區(qū)分開來,而不一定要求或者暗示 這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語"包括"、"包含"或者其 任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者 設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、 方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句"包括一個"限定的 要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
      [0178] 雖然通過參照本發(fā)明的某些優(yōu)選實(shí)施方式,已經(jīng)對本發(fā)明進(jìn)行了圖示和描述,但 本領(lǐng)域的普通技術(shù)人員應(yīng)該明白,可以在形式上和細(xì)節(jié)上對其作各種改變,而不偏離本發(fā) 明的精神和范圍。
      【主權(quán)項(xiàng)】
      1. 一種計(jì)算編碼失真度的方法,其特征在于,該方法包括以下步驟: 獲取編碼宏塊在當(dāng)前編碼模式下的預(yù)測像素值,并根據(jù)所述預(yù)測像素值與編碼宏塊的 像素值計(jì)算預(yù)測殘差值; 獲取所述預(yù)測殘差值經(jīng)過當(dāng)前編碼模式下編碼過程中的量化和反量化處理后的帶有 量化損失的預(yù)測殘差值; 將所述編碼宏塊的預(yù)測殘差值和所述帶有量化損失的預(yù)測殘差值的差分平方和作為 當(dāng)前編碼模式下的編碼失真度。2. 根據(jù)權(quán)利要求1所述的計(jì)算編碼失真度的方法,其特征在于,所述當(dāng)前編碼模式下 的編碼過程還包括離散余弦變換和反離散余弦變換,所述預(yù)測殘差值經(jīng)所述離散余弦變換 后得到DCT系數(shù),所述DCT系數(shù)包括DC系數(shù)和AC系數(shù); 在所述"獲取所述預(yù)測殘差值經(jīng)過當(dāng)前編碼模式下編碼過程中的量化和反量化處理后 的帶有量化損失的預(yù)測殘差值"的步驟中,還包括以下子步驟: 判斷所述當(dāng)前編碼模式是否為預(yù)定編碼模式,所述預(yù)定編碼模式包括幀內(nèi)預(yù)測中的 116預(yù)測模式,以及幀內(nèi)預(yù)測和幀間預(yù)測中的色度預(yù)測模式; 如果判斷結(jié)果為預(yù)定編碼模式,則對所述離散余弦變換得到的DCT系數(shù)中的DC系數(shù)單 獨(dú)進(jìn)行哈達(dá)瑪變換,量化,反哈達(dá)瑪變換以及反量化的處理。3. 根據(jù)權(quán)利要求2所述的計(jì)算編碼失真度的方法,其特征在于,在所述"如果判斷結(jié)果 為預(yù)定編碼模式,則對所述離散余弦變換得到的DCT系數(shù)中的DC系數(shù)單獨(dú)進(jìn)行哈達(dá)瑪變 換,量化,反哈達(dá)瑪變換以及反量化的處理"的子步驟中, 對所述預(yù)定編碼模式下的DC系數(shù)進(jìn)行哈達(dá)瑪變換,量化,反哈達(dá)瑪變換以及反量化處 理的DC數(shù)據(jù)處理通路,與所述對AC系數(shù)進(jìn)行離散余弦變換,量化,反量化,反離散余弦變換 處理的AC數(shù)據(jù)處理通路是復(fù)用的。4. 根據(jù)權(quán)利要求3所述的計(jì)算編碼失真度的方法,其特征在于,在所述"將所述編碼宏 塊的預(yù)測殘差值和所述帶有量化損失的預(yù)測殘差值的差分平方和作為當(dāng)前編碼模式下的 編碼失真度"的步驟中,還包括以下子步驟: 將所述帶有量化損失的預(yù)測殘差值分解為由DC系數(shù)置零后的DCT系數(shù)經(jīng)過反離散余 弦變換輸出的第一預(yù)測殘差值Diff",以及預(yù)定編碼模式下的DC系數(shù)經(jīng)過哈達(dá)瑪變換,量 化,反哈達(dá)瑪變換,反量化計(jì)算輸出的第二預(yù)測殘差值DC" ; 在所述AC數(shù)據(jù)處理通路上,將所述第一預(yù)測殘差值Diff"與所述預(yù)測殘差值的差值及 該差值的平方值分別進(jìn)行累加計(jì)算并存儲; 在DC數(shù)據(jù)計(jì)算通路上,將所述第二預(yù)測殘差值DC"的平方值進(jìn)行累加計(jì)算,并將所述 第二預(yù)測殘差值DC"與所述存儲的第一預(yù)測殘差值Diff"與預(yù)測殘差值的差值進(jìn)行乘積累 加計(jì)算; 將所述AC數(shù)據(jù)計(jì)算通路及DC數(shù)據(jù)計(jì)算通路上的兩部分?jǐn)?shù)據(jù)進(jìn)行合并累加得到編碼失 真度。5. 根據(jù)權(quán)利要求1所述的計(jì)算編碼失真度的方法,其特征在于,所述離散余弦變換和 反離散余弦變換包括以下子步驟: 將輸入數(shù)據(jù)旋轉(zhuǎn)90度,先進(jìn)行垂直變換再進(jìn)行水平變換。6. 根據(jù)權(quán)利要求1所述的計(jì)算編碼失真度的方法,其特征在于,在所述當(dāng)前編碼模式 下的編碼過程中,對于幀內(nèi)預(yù)測中的14編碼模式,還包括子步驟: 將幀內(nèi)預(yù)測中的116編碼模式的預(yù)測過程交織在所述14編碼模式的預(yù)測過程中。7. -種編碼模式控制方法,其特征在于,包括以下步驟: 根據(jù)如權(quán)利要求1至6中任一項(xiàng)所述的編碼失真度的計(jì)算方法得到的當(dāng)前編碼模式下 的編碼失真度,以及當(dāng)前編碼模式下的編碼碼率,計(jì)算當(dāng)前編碼模式下的編碼代價值; 在所有可選編碼模式集中將對應(yīng)于最小編碼代價值的編碼模式作為編碼宏塊的最優(yōu) 編碼模式,用于所述編碼宏塊的編碼。8. 根據(jù)權(quán)利要求7所述的編碼模式控制方法,其特征在于,在所述"計(jì)算當(dāng)前編碼模式 下的編碼代價值"的步驟之后,還包括以下步驟: 對于幀內(nèi)預(yù)測中的每種14編碼模式,完成編碼代價值的計(jì)算后,進(jìn)行是否需要重建的 仲裁。9. 一種計(jì)算編碼失真度的系統(tǒng),其特征在于,該裝置包括以下模塊: 預(yù)測殘差計(jì)算模塊,用于獲取編碼宏塊在當(dāng)前編碼模式下的預(yù)測像素值,并根據(jù)所述 預(yù)測像素值與編碼宏塊的像素值計(jì)算預(yù)測殘差值; 帶有量化損失的預(yù)測殘差獲取模塊,用于獲取所述預(yù)測殘差值經(jīng)過當(dāng)前編碼模式下編 碼過程中的量化和反量化處理后的帶有量化損失的預(yù)測殘差值; 編碼失真度計(jì)算模塊,用于將所述編碼宏塊的預(yù)測殘差值和所述帶有量化損失的預(yù)測 殘差值的差分平方和作為當(dāng)前編碼模式下的編碼失真度。10. 根據(jù)權(quán)利要求9所述的計(jì)算編碼失真度的系統(tǒng),其特征在于,所述當(dāng)前編碼模式下 的編碼過程還包括離散余弦變換和反離散余弦變換,所述預(yù)測殘差值經(jīng)所述離散余弦變換 后得到DCT系數(shù),所述DCT系數(shù)包括DC系數(shù)和AC系數(shù); 在所述帶有量化損失的預(yù)測殘差獲取模塊中,還包括以下子模塊: 預(yù)定編碼模式判斷子模塊,用于判斷所述當(dāng)前編碼模式是否為預(yù)定編碼模式,所述預(yù) 定編碼模式包括幀內(nèi)預(yù)測中的116預(yù)測模式,以及幀內(nèi)預(yù)測和幀間預(yù)測中的色度預(yù)測模 式; 預(yù)定編碼模式處理子模塊,用于如果判斷結(jié)果為預(yù)定編碼模式,則對所述離散余弦變 換得到的DCT系數(shù)中的DC系數(shù)單獨(dú)進(jìn)行哈達(dá)瑪變換,量化,反哈達(dá)瑪變換以及反量化的處 理。11. 根據(jù)權(quán)利要求10所述的計(jì)算編碼失真度的系統(tǒng),其特征在于,在所述預(yù)定編碼模 式處理子模塊中,對所述預(yù)定編碼模式下的DC系數(shù)進(jìn)行哈達(dá)瑪變換,量化,反哈達(dá)瑪變換 以及反量化處理的DC數(shù)據(jù)處理通路,與所述對AC系數(shù)進(jìn)行離散余弦變換,量化,反量化,反 離散余弦變換處理的AC數(shù)據(jù)處理通路是復(fù)用的。12. 根據(jù)權(quán)利要求11所述的計(jì)算編碼失真度的系統(tǒng),其特征在于,在所述編碼失真度 計(jì)算模塊中,還包括以下子模塊: 分解子模塊,用于將所述帶有量化損失的預(yù)測殘差值分解為由DC系數(shù)置零后的DCT系 數(shù)經(jīng)過反離散余弦變換輸出的第一預(yù)測殘差值Diff",以及預(yù)定編碼模式下的DC系數(shù)經(jīng)過 哈達(dá)瑪變換,量化,反哈達(dá)瑪變換,反量化計(jì)算輸出的第二預(yù)測殘差值DC" ; 第一累加子模塊,用于在所述AC數(shù)據(jù)處理通路上,將所述第一預(yù)測殘差值Diff"與所 述預(yù)測殘差值的差值及該差值的平方值分別進(jìn)行累加計(jì)算并存儲; 第二累加子模塊,用于在DC數(shù)據(jù)計(jì)算通路上,將所述第二預(yù)測殘差值DC"的平方值進(jìn) 行累加計(jì)算,并將所述第二預(yù)測殘差值DC"與所述存儲的第一預(yù)測殘差值Diff"與預(yù)測殘 差值的差值進(jìn)行乘積累加計(jì)算; 合并子模塊,用于將所述AC數(shù)據(jù)計(jì)算通路及DC數(shù)據(jù)計(jì)算通路上的兩部分?jǐn)?shù)據(jù)進(jìn)行合 并累加得到編碼失真度。13. 根據(jù)權(quán)利要求10所述的計(jì)算編碼失真度的系統(tǒng),其特征在于,所述帶有量化損失 的預(yù)測殘差獲取模塊進(jìn)行離散余弦變換和反離散余弦變換時,還包括以下子模塊: 數(shù)據(jù)旋轉(zhuǎn)子模塊,用于將輸入數(shù)據(jù)旋轉(zhuǎn)90度,先進(jìn)行垂直變換再進(jìn)行水平變換。14. 根據(jù)權(quán)利要求9所述的計(jì)算編碼失真度的系統(tǒng),其特征在于,對于幀內(nèi)預(yù)測中的14 編碼模式,還包括子模塊: 交織子模塊,用于將幀內(nèi)預(yù)測中的116編碼模式的預(yù)測過程交織在所述14編碼模式的 預(yù)測過程中。15. -種編碼模式控制系統(tǒng),其特征在于,包括以下模塊: 編碼代價值計(jì)算模塊,用于根據(jù)如權(quán)利要求1至14中任一項(xiàng)所述的編碼失真度的計(jì)算 系統(tǒng)得到的當(dāng)前編碼模式下的編碼失真度,以及當(dāng)前編碼模式下的編碼碼率,計(jì)算當(dāng)前編 碼模式下的編碼代價值; 最優(yōu)編碼模式確定模塊,用于在所有可選編碼模式集中將對應(yīng)于最小編碼代價值的編 碼模式作為編碼宏塊的最優(yōu)編碼模式,用于所述編碼宏塊的編碼。16. 根據(jù)權(quán)利要求15所述的編碼模式控制系統(tǒng),其特征在于,還包括以下模塊: 重建仲裁模塊,用于對幀內(nèi)預(yù)測中的每種14編碼模式,在完成編碼代價值的計(jì)算后, 進(jìn)行是否需要重建的仲裁。
      【文檔編號】H04N19/103GK106034235SQ201510106937
      【公開日】2016年10月19日
      【申請日】2015年3月11日
      【發(fā)明人】章旭東, 陳曉春, 錢學(xué)鋒, 徐寧
      【申請人】杭州??低晹?shù)字技術(shù)股份有限公司, 上海富瀚微電子股份有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1