亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

組合的并行流水線視頻編碼器的制造方法_3

文檔序號:9240338閱讀:來源:國知局
輸出的系數(shù)進行量化。
[0050]技術(shù)人員將認識到如何執(zhí)行這樣的量化,因此這里將不再重復(fù)對量化模塊27的進一步解釋。量化的系數(shù)隨后被輸出至熵編碼器29。
[0051]熵編碼器29對從量化模塊27輸出的系數(shù)進行編碼以形成編碼的流37。技術(shù)人員將認識到如何實現(xiàn)熵編碼器,因此這里將不提供更全面的解釋。
[0052]來自量化模塊27的輸出還被發(fā)送到上面提到的宏塊重建模塊19。宏塊重建模塊19包括反量化模塊31、逆離散余弦變換(IDCT)模塊33和環(huán)路濾波器35。
[0053]反量化模塊31接收來自量化模塊27的輸出,并對量化的輸出執(zhí)行反量化處理。IDCT模塊33隨后對反量化的輸出執(zhí)行逆DCT。技術(shù)人員將認識到如何實現(xiàn)這兩個過程,因此這里將不再重復(fù)全面的解釋。而注意如下內(nèi)容就足夠了:來自IDCT模塊33的輸出采用重建的宏塊的形式。
[0054]來自IDCT模塊33的輸出被傳送至環(huán)路濾波器35。環(huán)路濾波器35用以去除可由使用不同的估計技術(shù)對相鄰宏塊進行編碼的情況引起的假象。例如,如果使用運動估計對第一宏塊進行編碼,同時使用幀內(nèi)估計對相鄰的第二宏塊進行編碼,則可在這些宏塊之間的邊界處出現(xiàn)假象。技術(shù)人員將理解如何實現(xiàn)環(huán)路濾波器,因此這里將不提供更加詳細的解釋。
[0055]來自IDCT模塊33的輸出還被傳送至旁通模塊15。因此,如上所述,旁通模塊15可使用來自IDCT 33的重建的宏塊作為如上所述的殘差的部分計算。
[0056]來自環(huán)路濾波器35的輸出被傳送至運動估計器(ME)21。ME 21得到重建的經(jīng)環(huán)路濾波的宏塊,并對每個宏塊執(zhí)行運動估計,以確定該宏塊相對于前一幀或者相對于前一幀和后一幀兩者的運動估計。如上所述,ME 21還接收輸入流1,用以生成針對每個宏塊的運動估計。ME 21導(dǎo)出針對當前宏塊的運動向量的最佳估計。這里的最佳運動向量被假定為產(chǎn)生估計的宏塊和對其進行運動估計的宏塊之間的最小SAD的運動向量。技術(shù)人員將認識到如何使用這些輸入實現(xiàn)這樣的運動估計,因此這里將省略全面的解釋。ME 21的輸出采用估計的宏塊和其相應(yīng)的SAD的形式。
[0057]來自ME 21的輸出被傳送至預(yù)測器23,該預(yù)測器23基于針對每個宏塊或子宏塊的最佳運動向量計算運動補償?shù)膸?br>[0058]預(yù)測器23將幀間預(yù)測的宏塊和相關(guān)聯(lián)的SAD傳送至決策模塊13。如上所述,在決策模塊中的該SAD比較的結(jié)果隨后用于確定哪個版本的宏塊被傳送至編碼器17用以包含在編碼的流37內(nèi)。
[0059]因此,總之,該方法的作用如下:確定每個宏塊的幀內(nèi)估計版本和運動估計版本,選擇具有最小SAD的版本用以編碼。所選版本的宏塊隨后被編碼并被用在輸出流37中。
[0060]在替選的實施方式中,偏差(bias)被添加到用于在使用幀內(nèi)估計的宏塊或使用幀間估計的宏塊之間進行確定的SAD標準。因此,在該實施方式中,使用如下關(guān)系在宏塊的幀內(nèi)編碼版本和幀間估計版本之間進行確定:
[0061]如果SA%_i+ +偏差>SA%_Si+,則選擇幀間估計;否則選擇幀內(nèi)估計。
[0062]其中,SADSWSi+表示從幀內(nèi)估計的宏塊計算的SAD,SADlj!貞表示從幀間估計的宏塊計算的SAD。這樣的實施方式可用于幫助確保通過特定的方法對宏塊的期望部分進行編碼。
[0063]在圖3中描述的實施方式中,以GPU實現(xiàn)IE模塊11和預(yù)測器23兩者。以HW實現(xiàn)ME模塊21,以及以SW實現(xiàn)剩余的全部組件,即MB (宏塊)編碼模塊17、MB重建模塊19、決策模塊13和旁通模塊15。因此,可以采用最適合的方式實現(xiàn)所描述的編碼器的各個不同的功能。因此,所描述的編碼器可實現(xiàn)對可用HW資源的最佳使用,同時保持在CPU或GPU上運行的、在SW環(huán)境內(nèi)經(jīng)歷頻繁改變的功能。另外,能夠以并行和流水線兩者的方式運行編碼處理。
[0064]圖4示出使用圖3的編碼方法處理數(shù)據(jù)幀時出現(xiàn)的步驟。圖的頂行指示流水線中的步驟。這處于1、2、3、4的重復(fù)模式。因此,針對每幀,該流水線被劃分為四個處理步驟,并對每幀重復(fù)該處理。在各流水線步驟之間要求同步,因此在處理系統(tǒng)的CPU上發(fā)生中斷。
[0065]第二行指示由GPU執(zhí)行的步驟。處于流水線步驟I的第一步驟是對第一幀的第一區(qū)段執(zhí)行幀內(nèi)估計。該區(qū)段被標記為Al,其指示這是序列中的第一幀的正被編碼的區(qū)段A。因此,該幀是圖2中示出的幀的頂部區(qū)段。在第二行中的隨后步驟(換句話說對于GPU的隨后步驟)是對第一幀的區(qū)段B執(zhí)行幀內(nèi)估計,這被標記為BI。換句話說,區(qū)段BI是序列的第一幀的區(qū)段Al下方的區(qū)段。對于GPU的第三步驟是處理幀I中的區(qū)段C,即Cl。隨后,區(qū)段Dl被處理。在處理第一幀的每個區(qū)段后,GPU隨后以與對于第一幀相同的次序處理第二幀的區(qū)段。換句話說,處理區(qū)段A2、區(qū)段B2、區(qū)段C2和隨后的區(qū)段D2。
[0066]在圖4的表格的第三行中,CPU執(zhí)行第一區(qū)段Al的宏塊編碼和宏塊重建。在圖4中,該進程被標記為“E”。CPU在流水線的步驟2處(換句話說,在GPU正執(zhí)行區(qū)段BI的幀內(nèi)估計的時候)執(zhí)行該處理。這是因為宏塊編碼和宏塊重建進程需要對區(qū)段Al的幀內(nèi)估計的結(jié)果,因此不能在該結(jié)果可用之前開始。對于CPU的隨后步驟是在流水線步驟3期間對區(qū)段BI執(zhí)行進程E (宏塊編碼和宏塊重建)。CPU隨后以與GPU相同的次序?qū)瑓^(qū)段執(zhí)行進程E,每個區(qū)段在該區(qū)段已被GPU處理之后的一個流水線步驟被處理。
[0067]在圖4的第四行中,HW執(zhí)行運動估計。針對第二幀的區(qū)段A(即A2)的運動估計相對于第一幀中的相應(yīng)區(qū)段Al而進行。因此,針對第一幀不進行運動估計,這是因為不存在用于產(chǎn)生運動估計的前一幀。如關(guān)于圖3所述,運動估計的隨后步驟是運動預(yù)測,隨后,決策模塊13比較幀內(nèi)估計的宏塊和運動補償?shù)暮陦K的SAD。相比之下,在宏塊編碼之前緊連的進程E中,在幀內(nèi)估計之后緊接的步驟中,在決策模塊13中比較每個幀內(nèi)估計的宏塊。因此,要求特定宏塊的運動估計先于針對該同一宏塊的幀內(nèi)估計一步。因此,在流水線的步驟4中執(zhí)行區(qū)段A2的運動估計,同時在流水線的隨后步驟中(換句話說,在流水線的下一重復(fù)中的第一步驟期間)執(zhí)行區(qū)段B2的運動估計。在流水線的下一步驟中執(zhí)行區(qū)段B2的運動估計,接下來的步驟是依次對C2和D2的運動估計。
[0068]在圖4的第五行中,GPU執(zhí)行運動補償預(yù)測(MCP)。由于MCP依賴于行4中的運動估計的結(jié)果,因此在針對每個特定宏塊的運動估計之后的一個流水線步驟執(zhí)行MCP。因此,在第二個流水線步驟I處(換句話說,在自流水線開始之后的流水線中的第五步驟中)執(zhí)行針對區(qū)段A2的MCP。在隨后的步驟中,針對B2、然后C2及然后D2的MCP依次被執(zhí)行。
[0069]從圖4可知,前四個步驟實際上是流水線的開始,這是因為直到這前四個步驟之后所描述的宏塊編碼方法所需的全部數(shù)據(jù)才可用。由此,清楚可知,由區(qū)段A1、B1、C1和Dl組成的第一幀不能以與序列中的其余幀完全相同的方式被處理。通常,完全使用幀內(nèi)估計的宏塊對序列中的第一幀進行編碼。然而,技術(shù)人員將認識到用于處理這種情況的其它方法,因此這里將不再重復(fù)可用方法的全面解釋。
[0070]從圖4清楚可知,以并行流水線方式處理幀的四個區(qū)段A、B、C、D中的每個區(qū)段。由于在每個重復(fù)的流水線中具有四個待完成的任務(wù)(IE、E、ME和MCP),因此可以通過將待編碼的幀劃分為四個區(qū)段來實現(xiàn)有效處理。通過選擇將幀劃分為四個區(qū)段,在流水線的每個步驟期間可發(fā)生處理的意義上講,所描述的實施方式的流
當前第3頁1 2 3 4 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1