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

      用于在多核處理器上轉(zhuǎn)碼到高效視頻編碼的高效軟件的制作方法_3

      文檔序號(hào):9492183閱讀:來源:國(guó)知局
      AMP的RD增益有限,并且因此可能在當(dāng)前轉(zhuǎn)碼器中不被支 持。
      [0036] 相對(duì)于遞歸地且徹底地將每一個(gè)塊劃分成盡可能更小的尺寸的HM參考軟件而 言,分區(qū)和模式?jīng)Q策功能僅根據(jù)輸入H. 264比特流檢查分區(qū)尺寸的子集。
      [0037] 對(duì)于擴(kuò)展CU,將使用下列過程,依據(jù)其覆蓋的4MB來檢查分區(qū)和模式:
      [0038] ?合并2NX 2N模式總是被檢查;
      [0039] ?當(dāng)存在多于2MB使用幀間16X16模式時(shí),檢查幀間2NX2N模式;
      [0040] ?當(dāng)左方的2MB均使用幀間16 X 16模式或者右方的兩MB均使用幀間16 X 16模 式時(shí),檢查幀間NX 2N模式;
      [0041] ?當(dāng)上方的2MB或下方的2MB均使用所述幀間16 X 16模式時(shí),檢查幀間2NXN模 式;
      [0042] ?當(dāng)存在多于2MB使用幀內(nèi)模式時(shí),檢查幀內(nèi)2NX2N模式。
      [0043] 圖6示出了對(duì)擴(kuò)展⑶的分區(qū)決策。圖6a示出了幀間2NX2N檢查時(shí)的示例;圖6b 示出了幀間NX 2N檢查的示例;圖6c示出了幀間2NXN檢查時(shí)的示例,且圖6d示出了幀內(nèi) 2NX2N檢查時(shí)的示例。
      [0044] 對(duì)于遺留⑶,僅檢查在相應(yīng)的Η. 264MB或子MB中使用的分區(qū)尺寸。也就是說,如 果分區(qū)尺寸具有當(dāng)前劃分深度,該分區(qū)將停止分成更小的分區(qū),或者,如果分區(qū)尺寸為下一 劃分深度,則將直接進(jìn)行下一深度而不在當(dāng)前深度下檢查任何分區(qū)。
      [0045] 采取實(shí)驗(yàn)以評(píng)估分區(qū)和模式?jīng)Q策算法。首先,測(cè)試對(duì)遺留CU的分區(qū),使用窮舉式 搜索,而不是以上所說明的快速模式?jīng)Q策,來選定擴(kuò)展CU的分區(qū)尺寸。如表1所示,在將比 特率變化考慮在內(nèi)時(shí),通過基于H. 264比特流對(duì)遺留CU進(jìn)行分區(qū)和模式?jīng)Q策可獲得穩(wěn)定的 3. 4倍的總體加速,且PSNR損失為0. 3至0. 5dB。
      [0046]
      [0047] 表1 :僅對(duì)遺留CU采用快速分區(qū)和模式?jīng)Q策獲得的性能
      [0048] 接下來,測(cè)試了用于擴(kuò)展CU的快速分區(qū)和模式?jīng)Q策算法,導(dǎo)致額外加速約1. 7倍 且R-D執(zhí)行的損失更小,如表2所示。將用于遺留的和擴(kuò)展CD二者的算法結(jié)合,快速分區(qū) 尺寸和模式?jīng)Q策后總體加速比約為5. 8倍,且PSNR損失約0. 5dB。
      [0050] 表2 :對(duì)遺留的和擴(kuò)展的CD均采用快速分區(qū)和模式?jīng)Q策獲得的性能
      [0051] 圖7示出了快速分區(qū)和模式?jīng)Q策算法。方法700用于確定對(duì)于擴(kuò)展CU的分區(qū)模 式。該方法將初始劃分深度設(shè)定為0 (702),并且然后確定⑶尺寸是否大于16 X 16 (704)。 對(duì)于⑶大于16 X 16 (在704為是),則如以上所說明的且如圖6所示的基于下層MB模式 檢查擴(kuò)展⑶模式(706),并然后使⑶進(jìn)一步分至下一深度(708)。方法700檢查以確定是 否CU處于最大深度下(710),如果確實(shí)處于最大深度(在710為是),則停止分區(qū)和模式?jīng)Q 策。如果確定CU尺寸為16 X 16或更?。ㄔ?04為否),則該方法確定相應(yīng)的Η. 264MB是否 以當(dāng)前深度被分區(qū)(712),且如果是以當(dāng)前深度分區(qū),則檢查相應(yīng)的遺留CU模式(714)并然 后將⑶進(jìn)一步分至下一深度(708)。
      [0052] 在進(jìn)行分區(qū)和模式?jīng)Q策之后選定參考圖像。對(duì)于遺留CU中的預(yù)測(cè)單元(PU),僅 檢查輸入H. 264比特流中相應(yīng)的MB或子MB分區(qū)的參考圖像。對(duì)于擴(kuò)展CU中的PU,嘗試 被HJ覆蓋的幀間MB的所有參考圖像。而且,在對(duì)H. 264到HEVC中的P條帶進(jìn)行轉(zhuǎn)碼時(shí), 其將如HEVC中的B條帶那樣編碼。將僅嘗試在H. 264中l(wèi)ist_0 (即前參考幀)中的參考 圖像,同時(shí)將嘗試HEVC的list_l(即,后參考幀)中的所有參考圖像。如表3所示,通過應(yīng) 用推薦的快速參考圖像決策,可取得另一個(gè)1. 7倍的總體加速,且PSNR損失小于0. ldB。
      [0053]
      [0054] 表3 :采用快速參考圖像決策的性能
      [0055] 圖8示出了對(duì)擴(kuò)展⑶的MV的估計(jì)。在轉(zhuǎn)碼器中,遺留⑶使用輸入H. 264比特流 中相應(yīng)的MB或子MB分區(qū)的參考圖像,以及H. 264比特流中相應(yīng)的MV。相對(duì)而言,擴(kuò)展CU 的MV使用CU所覆蓋的全部幀間MB的MV以及由HEVC本身提供的MV預(yù)測(cè)量(predictor) 評(píng)估,如圖8所示。如圖所示,被CU804覆蓋的相應(yīng)的MB 802&、80213、802〇、802(1分別與運(yùn) 動(dòng)矢量806&、80613、806(3、806(1相關(guān)聯(lián)。確定爪^0 1^預(yù)測(cè)量808。通過尋找.8063、80613、 806c、806d、808的中值進(jìn)行估計(jì),其中該中值810是基于來自均值的Ll距離(曼哈頓距離 (Manhattan distance))計(jì)算出的:
      [0058] 其中MV1= (X D yi)為候選MV中的一個(gè)??焖龠\(yùn)動(dòng)矢量估計(jì)導(dǎo)致約30%加速,以 及2%至3%的比特率增長(zhǎng)和約0.2dB的PSNR損失,如表4中的結(jié)果所示。
      [0060] 表4 :采用快速運(yùn)動(dòng)矢量估計(jì)的性能
      [0061] 除以上加速H. 264至H. 265的轉(zhuǎn)碼的技術(shù)以外,對(duì)SHffi和匯編等級(jí)的指令也可優(yōu) 化。在視頻編碼中,復(fù)雜性的很大一部分與幀間預(yù)測(cè)有關(guān),這歸因于適用于矢量化的求和絕 對(duì)差(SAD)計(jì)算和內(nèi)插過濾,以及單指令多數(shù)據(jù)流(SHffi)加速。這樣的SHffi加速使得在 一個(gè)指令下將單個(gè)操作在多操作數(shù)(multiple operands)上完成。x265是一種開源HEVC 編碼器項(xiàng)目,并且是構(gòu)建在x264編碼器上的免費(fèi)應(yīng)用數(shù)據(jù)庫(kù),其被廣泛用作高質(zhì)量H. 264 編碼器。x265的開發(fā)者已經(jīng)實(shí)現(xiàn)了對(duì)SAD計(jì)算和內(nèi)插過濾的匯編優(yōu)化并實(shí)現(xiàn)了具有較少質(zhì) 量損失的明顯加速。
      [0062] 傳統(tǒng)地,為了充分開發(fā)支持現(xiàn)代處理器的SHffi指令的優(yōu)勢(shì),匯編碼必須是由手寫 或經(jīng)過優(yōu)化。x264和x265編碼器的實(shí)現(xiàn)非常依賴這樣的手工優(yōu)化。發(fā)揮例如icc (Intel C/C++編譯器)的現(xiàn)代化現(xiàn)有編譯器的優(yōu)勢(shì),使用寫得很好的C/C++代碼來產(chǎn)生高質(zhì)量的 SHffi代碼以用于以前可能需要手工編碼的許多應(yīng)用成為可能,即使如此,保留少數(shù)算法用 于謹(jǐn)慎手工編寫的匯編碼仍可能是有益的。轉(zhuǎn)碼器可使用手寫代碼用于SAD和HAD計(jì)算, 而剩下的交給編譯器完成。
      [0063] 內(nèi)插濾波器(interpolation filter)和DCT實(shí)現(xiàn)可進(jìn)一步加速。代替使用一個(gè) C++模板來將具有不同動(dòng)態(tài)參數(shù)的濾波器呈現(xiàn)給編譯器,每個(gè)濾波器可通過手寫代碼進(jìn)行 各自優(yōu)化來獲得比完全依賴于C/C++編譯器時(shí)可能獲得的速度更快的速度。對(duì)于內(nèi)插法, 每10比特像素可由16比特整數(shù)表示,且每8比特像素可由8比特整數(shù)表示,而每個(gè)濾波系 數(shù)可由8比特整數(shù)表示。像素和濾波系數(shù)可被填入長(zhǎng)矢量中(例如,對(duì)于SSE為128比特, 且對(duì)于AVX2為256比特)和同時(shí)執(zhí)行的指令中(add、mul等),其可通過使用C/C++編譯 器或使用手寫匯編碼來實(shí)現(xiàn)。
      [0064] 有兩種策略可被用于進(jìn)一步加速S頂D處理。一方面,為進(jìn)一步發(fā)揮在那些濾波器 中復(fù)雜的嵌套循環(huán)結(jié)構(gòu)的并行機(jī)制,可將外循環(huán)中的指令矢量化,尤其是在濾波器寬度過 小以至于不能填補(bǔ)SMD矢量的時(shí)候。另一方面,例如10比特或8比特像素標(biāo)記的那些"偽 動(dòng)態(tài)參數(shù)"應(yīng)被修改成靜態(tài)參數(shù),以獲得進(jìn)一步的S頂D加速。例如,如果圖像具有8比特深 度,則可能將16像素填入128比特矢量,而不是8像素(用于10比特深度圖像),并且理 論上可獲得2倍本地加速,但如果被存儲(chǔ)在動(dòng)態(tài)變量中,則編譯器"看不懂"該8比特標(biāo)記。 考慮到所有這些因素后,必須將C/C++代碼寫得很好以用于編譯器的自動(dòng)矢量化。
      [0065] 實(shí)驗(yàn)通過標(biāo)準(zhǔn)HEVC測(cè)試剪輯進(jìn)行,以評(píng)估所描述的轉(zhuǎn)碼器的總體性能,如速度和 RD性能二者測(cè)量和體現(xiàn)的。以前面較小型設(shè)計(jì)而不包括全部所說明的加速的轉(zhuǎn)碼器和HEVC HM12. 0參考軟件以及x264H. 264(主配置)編碼器用作為基準(zhǔn)。
      [0066] 總體上,所說明的轉(zhuǎn)碼器比完全
      當(dāng)前第3頁1 2 3 4 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1