TWI418220B - 結合軟硬體實現之視訊處理系統,方法及其電腦程式產品 - Google Patents
結合軟硬體實現之視訊處理系統,方法及其電腦程式產品 Download PDFInfo
- Publication number
- TWI418220B TWI418220B TW99126894A TW99126894A TWI418220B TW I418220 B TWI418220 B TW I418220B TW 99126894 A TW99126894 A TW 99126894A TW 99126894 A TW99126894 A TW 99126894A TW I418220 B TWI418220 B TW I418220B
- Authority
- TW
- Taiwan
- Prior art keywords
- frame
- video
- decoding
- encoding
- program
- Prior art date
Links
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Description
本發明係有關於一種視訊處理系統及方法,且特別有關於一種可以結合軟體與硬體實現相應視訊之編碼與解碼程序之系統及方法。
隨著電腦與網路的普及,數位化內容已經逐漸成為人們生活中重要的一部分。針對品質與資料尺寸的考量,數位視訊必須藉由數位壓縮技術,以在維持要求品質的前提下,降低視訊尺寸,以便於將視訊進行傳輸及用於各式樣的應用。
一般來說,視訊之編碼/解碼過程可以由相應巨集區塊(Macro Block,MB)之運動估計、變換與反變換、量化與反量化、預測及掃描、長度編碼/解碼,如可變長度編碼(Variable Length Coding,VLC)/解碼與游程編碼(Run Length Coding,RLC)/解碼等、與/或一去塊效應濾波(Deblocking Loop Filtering)等。注意的是,相應不同編碼/解碼規格之編碼/解碼過程與相關介紹為本領域具有通常知識所熟知,在此省略。
習知地,相應不同編碼/解碼規格之編碼/解碼過程皆係單純地透過軟體或硬體獨自完成。然而,由於相應視訊之不同編碼/解碼作業具有不同之處理特徵,若僅使用單一方式即僅使用軟體或硬體來對於視訊進行編碼/解碼,其效率將受到限制。
有鑑於此,本發明提供結合軟硬體實現之視訊處理系統及方法。
本發明實施例之一種結合軟硬體實現之視訊處理系統及方法適用於具有一中央處理單元與一硬體加速器之一電子裝置。中央處理單元係用以至少執行相應一視訊之熵編碼/解碼作業,且硬體加速器係用以執行相應視訊之熵編碼/解碼作業之外的其他編碼/解碼作業。
本發明實施例之一種結合軟硬體實現之視訊處理系統包括一中央處理單元與一硬體加速器。硬體加速器用以接收相應一視訊之至少一第一幀(Frame),且執行相應第一幀之一第一編碼程序,以產生至少一游程停止幅值(Run-Last-Level,RLL)碼。中央處理單元可以依據游程停止幅值碼執行相應第一幀之一第二編碼程序。其中,第二編碼程序包括一熵(Entropy)編碼,以產生相應第一幀之一碼流。
本發明實施例之一種結合軟硬體實現之視訊處理方法適用於具有一中央處理單元與一硬體加速器之一電子裝置。首先,藉由硬體加速器接收相應一視訊之至少一第一幀,且執行相應第一幀之一第一編碼程序,以產生至少一游程停止幅值碼。之後,藉由中央處理單元依據游程停止幅值碼執行相應第一幀之一第二編碼程序。其中,第二編碼程序包括一熵編碼,以產生相應該第一幀之一碼流。
本發明實施例之一種結合軟硬體實現之視訊處理系統包括一中央處理單元與一硬體加速器。中央處理單元接收相應一視訊之一碼流,且依據碼流執行一第一解碼程序。其中,第一解碼程序包括一熵解碼,以產生至少一游程停止幅值碼。硬體加速器依據游程停止幅值碼執行一第二解碼程序,以重建得到相應視訊之一第一幀。
本發明實施例之一種結合軟硬體實現之視訊處理方法適用於具有一中央處理單元與一硬體加速器之一電子裝置。首先,藉由中央處理單元接收相應一視訊之一碼流,且依據碼流執行一第一解碼程序。其中,第一解碼程序包括一熵解碼,以產生至少一游程停止幅值碼。之後,藉由硬體加速器依據游程停止幅值碼執行一第二解碼程序,以重建得到相應該視訊之一第一幀。
本發明實施例之一種結合軟硬體實現之視訊處理系統,包括一中央處理單元與一硬體加速器。硬體加速器接收相應一視訊之一第一幀,且執行相應第一幀之一第一編碼程序,以產生至少一第一游程停止幅值碼。當硬體加速器執行相應第一幀之第一編碼程序時,中央處理單元依據一第二游程停止幅值碼執行相應視訊之一第二幀之一第二編碼程序。其中,第二編碼程序包括一熵編碼,以產生相應第二幀之一碼流。第二幀係視訊中第一幀之前一個幀。
本發明實施例之一種結合軟硬體實現之視訊處理系統,包括一中央處理單元與一硬體加速器。中央處理單元接收相應一視訊之一第二幀之一碼流,且依據碼流執行一第一解碼程序。其中,第一解碼程序包括一熵解碼,以產生至少一第二游程停止幅值碼。當中央處理單元執行相應第二幀之第一解碼程序時,硬體加速器依據一第一游程停止幅值碼執行一第二解碼程序,以重建得到相應視訊之一第一幀。其中,第二幀係視訊中第一幀之下一個幀。
在一些實施例中,當硬體加速器完成相應一幀之第一編碼程序/第二解碼程序之後,硬體加速器可以發出一中斷至中央處理單元。相應於中斷,中央處理單元可以致使硬體加速器執行相應另一幀之第一編碼程序/第二解碼程序。
本發明上述方法可以透過程式碼方式存在。當程式碼被機器載入且執行時,機器變成用以實行本發明之裝置。
為使本發明之上述目的、特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖示,詳細說明如下。
第1圖顯示依據本發明實施例之結合軟硬體實現之視訊處理系統。
依據本發明實施例之結合軟硬體實現之視訊處理系統1000至少包括一儲存單元1100、一中央處理單元(Central Processing Unit,CPU)1200、與一硬體加速器(Hardware Accelerator)1300。儲存單元1100可以係一外部儲存裝置,用以儲存視訊編/解碼所需之相關資料。舉例來說,當進行視訊編碼時,儲存單元1100可以儲存目前要編碼的資料、參考幀(Frame)資料、重建幀資料、編碼參數、游程停止幅值(RLL)碼、及相應視訊之碼流(Bit Stream)等。當進行視訊解碼時,儲存單元1100可以儲存相應視訊之碼流、解碼參數、RLL碼、參考幀資料、及重建幀資料等。中央處理單元1200與硬體加速器1300可以結合來執行本案之結合軟硬體實現之視訊處理方法,其細節將於後進行說明。
第2圖顯示依據本發明實施例之結合軟硬體實現之視訊處理方法。依據本發明實施例之結合軟硬體實現之視訊處理方法適用於至少具有一中央處理單元與一硬體加速器之電子裝置。
首先,如步驟S2100,電子裝置由一儲存單元取得一視訊。其中,視訊可以包括複數幀,且每一幀包括複數巨集區塊。如步驟S2200,配置中央處理單元來執行相應視訊幀之熵(Entropy)編/解碼作業,且如步驟S2300,配置硬體加速器來執行相應視訊幀之熵編/解碼之外的相關編/解碼作業,以得到相應視訊幀之碼流。值得注意的是,依據不同的視訊規格,熵編/解碼之外的相關編/解碼作業可以有所不同。惟,其共通點在於藉由中央處理單元來執行相應視訊幀之熵編/解碼作業。值得注意的是,在一些實施例中,編碼時,熵編碼、邊緣擴展及碼率控制可以藉由中央處理單元來執行,其餘視訊編碼作業則由硬體加速器執行。在一些實施例中,解碼時,熵解碼、邊緣擴展、錯誤消除與隱藏可以藉由中央處理單元來執行,其餘視訊解碼作業則由硬體加速器執行。另外,中央處理單元與硬體加速器間的資料流可以依據不同的視訊規格進行設計與調整。之後,如步驟S2400,判斷目前幀是否係視訊之最後一個幀。若目前幀並非係視訊之最後一個幀,即步驟S2400的否,流程回到步驟S2200,繼續處理其他的幀。若目前幀係視訊之最後一個幀,即步驟S2400的是,結束流程。
第3圖顯示依據本發明另一實施例之結合軟硬體實現之視訊處理系統。
依據本發明實施例之結合軟硬體實現之視訊處理系統1000至少包括一儲存單元1100、一中央處理單元1200、與一硬體加速器1300。類似地,儲存單元1100可以係一外部儲存裝置,用以儲存視訊編/解碼所需之相關資料,如一目前幀1110、一參考幀1120、RLL碼1130、1132、及1134、一重建幀1140,其用法將於後進行說明。中央處理單元1200可以執行一硬體加速器控制1210、一解碼預處理1220、與一編碼後處理1230。當硬體加速器控制1210執行時,中央處理單元1200可以配置硬體加速器1300中的相關暫存器,且檢查相關配置是否正確,並啟動硬體加速器1300。另外,中央處理單元1200可以申請、與註冊DMA(Direct Memory Access,直接記憶體存取)通道(圖中未顯示)、檢查DMA通道狀態、配置DMA暫存器、啟動DMA等。硬體加速器1300與DMA控制器被啟動之後硬體加速器1300便可以開始編碼或解碼。當編碼後處理1230時,中央處理單元1200可以進行熵編碼與碼率(Bit Rate)控制。其中,中央處理單元1200可以由儲存單元1100讀取RLL碼與編碼參數,以進行熵編碼,且輸出相應幀之碼流。目前幀的編碼結果、總碼率以及幀率(Frame Rate)可以計算出下一幀之量化係數,且對於硬體加速器1300輸出的重建幀進行一邊緣擴展作業,以用於下一幀之運動估計。當解碼預處理1220執行時,中央處理單元1200可以對於相應視訊之碼流進行熵解碼,且以事先定義的解碼參數和RLL碼的格式輸出到儲存單元1100中。
在此實施例中,硬體加速器1300可以包括一硬體加速器控制器1310、一運動估計加速器(MEACC,Motion Estimation Accelerator)1320、一變換與量化加速器(DQACC,DCT/IDCT Quantization/Dequantization Accelerator)1330、一去塊效應濾波加速器(DFACC,DCT/IDCT and Quantization/Dequantization Accelerator)1340、與一內部儲存單元1350。硬體加速器控制器1310可以在相應每一幀之編碼作業開始時由中央處理單元接受相關參數,且依據接收之參數配置運動估計加速器1320、變換與量化加速器1330、與去塊效應濾波加速器1340。硬體加速器控制器1310亦可配置硬體加速器1300的暫存器,並啟動硬體加速器1300。在視訊之編碼或解碼過程中,硬體加速器控制器1310可以處理來自運動估計加速器1320、變換與量化加速器1330、與去塊效應濾波加速器1340的中斷,並依據接收之中斷控制硬體加速器1300中視訊編碼或解碼的流程。注意的是,在硬體加速器1300中係以巨集區塊為單位來進行視訊之編碼或解碼。當運動估計加速器1320、變換與量化加速器1330、與去塊效應濾波加速器1340完成相應巨集區塊之編碼或解碼時便會產生一中斷至硬體加速器控制器1310。當相應一個幀之編碼或解碼完成時,硬體加速器控制器1310會產生一個中斷給中央處理單元1200。相應於中斷,一中斷服務程式可以給編/解碼作業一個編/解碼結束的事件,中央處理單元1200可以處理相應下一幀之編/解碼作業。另外,硬體加速器控制器1310可以管理儲存單元1100與硬體加速器1300間一FIFO(先進先出)佇列/暫存器的讀寫作業,以避免FIFO發生上溢(Overflow)或下溢(Underflow)的情形。此外,硬體加速器控制器1310亦會計算內部儲存單元1350之基底位址,以對於內部儲存單元1350之存取進行相關管理。其中,內部儲存單元1350可以包括多個暫存器,如CB暫存器(Current Block)、SW暫存器(Search Window)、FIFO、及RCB暫存器(Reconstructed Block)等,其用法將於後進行說明。
運動估計加速器1320係於編碼時進行運動估計,且於解碼時進行運動補償。其中,運動估計加速器1320可以在編碼和解碼過程中進行1/2像素、1/4像素、1/8像素之內插。運動估計加速器1320可以在編碼過程中進行整像素、1/2像素、1/4像素之運動估計。對於一些特定視訊規格,如H.264、AVS,運動估計加速器1320可以進行巨集區塊之幀內(Intra-Frame)預測。此外,運動估計加速器1320亦可以進行巨集區塊之殘差計算(Residual Calculation)與運動向量預測等。變換與量化加速器1330係用以進行變換與反變換、量化與反量化、與預測及掃描等。其中,變換與量化加速器1330可以在編碼過程中對巨集區塊之殘差係數進行變換、量化、反量化、與反變換。變換與量化加速器1330可以將殘差係數與參考幀相加以得到重建幀。對於一些特定視訊規格,如MPEG4與VC-1,變換與量化加速器1330可以進行DC/AC(交流/直流)預測。變換與量化加速器1330亦可以進行Zigzag/垂直/水平掃描、相應量化後係數之游程編碼、游程解碼、及反Zigzag/垂直/水平掃描等。去塊效應濾波加速器1340主要用以消除區塊之失真。
第4圖顯示依據本發明實施例之結合軟硬體實現之視訊編碼方法。依據本發明實施例之結合軟硬體實現之視訊編碼方法適用於至少具有一中央處理單元與一硬體加速器之電子裝置。
如步驟S4100,中央處理單元進行相關初始化作業。其中,初始化作業主要係用以確定幀之編碼類型(幀內編碼或幀間編碼)、圖像尺寸、且進行碼率控制運算,以確定目前幀編碼所使用的量化係數。提醒的是,在一些實施例中,擷取之視訊(圖像資料)經過預處理後可以被緩衝儲存在儲存單元1100中,之後,可以先對於視訊進行縮放與顏色變換等作業。之後,如步驟S4200,中央處理單元配置且啟動硬體加速器與相關控制器,如一中斷控制器、一DMA控制器與相關暫存器等。其中,編碼參數可以包括幀類型,如內幀(I幀)或預測幀(P或B幀)、視訊編碼標準、圖像尺寸、量化類型、量化係數、運動估計搜索範圍等。如步驟S4300,硬體加速器取得視訊之一幀(目前幀),且對於目前幀執行一第一編碼程序,以產生至少一RLL碼。同時,如步驟S4400,中央處理單元對於視訊中目前幀之前一個幀進行編碼後處理,以執行相應此前一個幀之一第二編碼程序。其中,第二編碼程序包括熵編碼,以產生相應幀之碼流。第一編碼程序則可以包括熵編碼之外的相關視訊編碼作業。
提醒的是,如前所述,編碼參數可以包括幀類型,相應不同幀類型之第一編碼程序可以具有不同之作業細節。舉例來說,在相應內幀之第一編碼程序中,DMA可以由儲存單元讀取一個巨集區塊並寫到內部儲存單元之CB暫存器中。接著,MEACC由內部儲存單元之CB暫存器中讀取一個巨集區塊並重新按照區塊的方式寫到內部儲存單元之MB暫存器中。之後,DQACC執行變換和量化、對於視訊格式係MPEG4與VC-1之幀進行DC/AC預測、及掃描和游程編碼,並把產生之RLL碼和編碼參數存入FIFO中,且透過DMA將編碼結果搬到儲存單元。同時,DQACC對量化結果做反量化和反變換。對於視訊格式係H.264、VC-1與AVS之幀,則DFACC可以進行去塊效應濾波,並將重建幀存入儲存單元。另外,在相應單向預測幀(P幀)之第一編碼程序中,DMA可以從儲存單元讀一個巨集區塊並寫到內部儲存單元之CB暫存器。同時,DMA讀取搜索窗內容並寫到內部儲存單元之SW暫存器。接著,MEACC由內部儲存單元之CB暫存器中讀取一個巨集區塊,並進行運動估計,且輸出巨集區塊類型和巨集區塊殘差到內部儲存單元之RFB(Reference Block)暫存器。之後,DQACC執行變換和量化,並把產生之RLL碼和編碼參數存入FIFO中,且透過DMA將編碼結果搬到儲存單元。同時,DQACC對量化結果做反量化和反變換與運動補償。對於視訊格式係H.264、VC-1與AVS之幀,則DFACC可以進行去塊效應濾波,並將重建幀存入儲存單元。此外,在相應雙向預測幀(B幀)之第一編碼程序中,DMA可以從儲存單元讀一個巨集區塊並寫到內部儲存單元之CB暫存器,同時,DMA從兩個參考幀中分別讀取搜索窗內容並寫到內部儲存單元之SW暫存器中。接著,MEACC執行運動估計,且輸出巨集區塊類型和巨集區塊殘差到內部儲存單元之RFB暫存器。之後,DQACC執行變換和量化,並把產生之RLL碼和編碼參數存入FIFO中,且透過DMA將編碼結果搬到儲存單元。同時,DQACC對量化結果做反量化和反變換與運動補償,且DFACC進行去塊效應濾波,並將重建幀存入儲存單元。
提醒的是,由於硬體和軟體係以幀為單位來進行流水線操作,因此在等待硬體編碼即第一編碼程序結束的過程中,軟體可以處理相應上一幀之硬體編碼的結果,即熵編碼也稱第二編碼程序,並按照標準的格式產生碼流。當相應目前幀之第一編碼程序與相應目前幀之前一個幀之第二編碼程序完成之後,如步驟S4500,中央處理單元對於硬體加速器輸出的幀進行一邊緣擴展作業,以用於下一幀之運動估計。如步驟S4600,判斷目前幀是否係視訊之最後一個幀。若目前幀並非係視訊之最後一個幀,即步驟S4600的否,流程回到步驟S4100,繼續處理其他的幀。若目前幀係視訊之最後一個幀,即步驟S4600的是,如步驟S4700,中央處理單元對於目前幀進行編碼後處理,以執行相應目前幀之第二編碼程序,從而完成相應此視訊之編碼作業。
第5圖顯示依據本發明實施例之結合軟硬體實現之視訊解碼方法。依據本發明實施例之結合軟硬體實現之視訊解碼方法適用於至少具有一中央處理單元與一硬體加速器之電子裝置。
如步驟S5100,中央處理單元進行相關初始化作業。其中,初始化作業主要係初始化一變長碼表格,用於加速熵解碼的速度。如步驟S5200,中央處理單元進行相應視訊中第一個幀之解碼預處理,用以依據第一個幀之碼流執行相應該第一個幀之一第一解碼程序。其中,第一解碼程序包括熵解碼,以產生至少一RLL碼。RLL碼與解碼參數將以預定義的格式儲存至儲存單元中。提醒的是,在一些實施例中,儲存在外部記憶體,如SD卡或快閃記憶體中的多媒體檔(視訊)可以被讀取且解析其碼流,並將相應之幀資料儲存在儲存單元中。如步驟S5300,中央處理單元配置且啟動硬體加速器與相關控制器,如一中斷控制器、一DMA控制器與相關暫存器等。之後,如步驟S5400,硬體加速器依據中央處理單元所產生之RLL碼執行一第二解碼程序,以重建得到視訊之一目前幀。其中,第二解碼程序可以包括熵解碼之外的相關視訊解碼作業。同時,如步驟S5500,中央處理單元判斷目前幀是否係視訊之最後一個幀。若目前幀係視訊之最後一個幀,即步驟S5500中的是,流程至步驟S5700。若目前幀並非係視訊之最後一個幀,即步驟S5500的否,如步驟S5600,中央處理單元對於視訊中目前幀之下一個幀進行解碼預處理,以執行相應下一個幀之第一解碼程序。
類似地,相應不同幀類型之第二編碼程序可以具有不同之作業細節。舉例來說,在相應內幀之第二解碼程序中,DMA可以將RLL碼和解碼參數搬到FIFO中。接著,DQACC可以從FIFO中讀取資料,並執行反掃描、反變換、與反量化。對於視訊格式係H.264、VC-1與AVS之幀,DFACC可以進行去塊效應濾波,並將重建幀透過DMA存入儲存單元。另外,在相應單向預測幀(P幀)之第二解碼程序中,DMA可以將RLL碼和解碼參數搬到FIFO中。同時,DMA將搜索窗圖元搬到內部儲存單元之SW暫存器中。接著,MEACC進行像素內插。同時,DQACC從FIFO中讀取RLL碼,由RLL碼反游程得到殘差係數,並對殘差係數進行反掃描、反變換、反量化,之後將殘差係數與圖元內插後之結果相加得到運動補償重建畫面。對於視訊格式係H.264、VC-1與AVS之幀,DFACC可以進行去塊效應濾波,並將重建幀透過DMA存入儲存單元。此外,在相應雙向預測幀(B幀)之第二解碼程序中,DMA可以將RLL碼和解碼參數搬到FIFO中。同時,DMA將搜索窗圖元搬到內部儲存單元之SW暫存器中。接著,MEACC進行像素內插。同時,DQACC從FIFO中讀取RLL碼,由RLL碼反游程得到殘差係數,並對殘差係數進行反掃描、反變換、反量化,之後將殘差係數與圖元內插後之結果相加得到運動補償重建畫面。DFACC進行去塊效應濾波,並將重建幀透過DMA存入儲存單元。
值得注意的是,重建幀亦可以進行一圖像後處理,如圖像縮放與/或顏色變化等作業。提醒的是,如前所述,由於硬體和軟體係以幀為單位來進行流水線操作,因此在等待硬體解碼即第二解碼程序結束的過程中,軟體可以處理相應下一幀之解碼預處理,即第一解碼程序,並按照預定義的格式產生RLL碼。當相應目前幀之第二解碼程序與相應目前幀之下一個幀之第一解碼程序完成之後,如步驟S5700,中央處理單元對於硬體加速器輸出的幀進行一邊緣擴展作業,以用於下一幀之運動估計。如步驟S5800,判斷相應視訊之解碼作業是否完成。若相應視訊之解碼作業並未完成,即步驟S5800的否,流程回到步驟S5300,繼續處理其他幀之解碼作業。若相應視訊之解碼作業已經完成,即步驟S5800的是,結束流程。
在本案中,軟體與硬體之編/解碼作業可以進行流水線管理。軟體與硬體之編/解碼作業係以幀為單位進行流水線管理。第6圖顯示依據本發明實施例之視訊編碼與解碼之流水線管理。假設相應視訊之幀率為30且每個幀的長度為33毫秒。其中,P1係視訊幀開始輸入的時間點,P2係硬體開始進行編/解碼的時間點,P3係軟體開始進行編碼後處理/解碼預處理的時間點,且P4係視訊幀開始輸出的時間點。其中,N-3、N-2、...、N+1係編碼幀之編號,且M-2、M-1、...、M+2係解碼幀之編號。如圖所示,當硬體對於目前幀進行編碼的時候,軟體可以同時對於目前幀之前一個幀進行編碼。一般來說,相應一個幀之軟體編碼的時間要小於一個幀之硬體編碼的時間,所以中央處理單元還有多餘的時間可以去做其他的處理,如音頻解碼等。另一方面,當軟體對於目前幀進行解碼時,硬體可以對於目前幀的上一個幀進行解碼。如此一來,中央處理單元與硬體加速器的利用率可以提高。
另外,在本案中,硬體加速器中之編/解碼作業亦可以進行流水線管理。硬體加速器中之編/解碼作業係以巨集區塊為單位進行流水線管理。接下來,以預測幀(P幀)進行說明。第7A圖顯示依據本發明實施例之硬體加速器之視訊編碼之流水線管理。如圖所示,硬體加速器之視訊編碼可以分為原始圖像輸入(SC1),運動估計(SC2),變換和量化(SC3),去塊效應濾波(SC4),與輸出編碼參數、RLL碼和重建幀(SC5)等5級流水線。個別級中之巨集區塊可以並行處理相應之編碼作業。另一方面,第7B圖顯示依據本發明實施例之硬體加速器之視訊解碼之流水線管理。如圖所示,硬體加速器之視訊解碼可以分為參考圖像、解碼參數、及RLL碼輸入(SD1),像素內插、DC/AC預測、反量化、及反變換(SD2),去塊效應濾波(SD3),及輸出重建幀(SD4)等4級流水線。個別級中之巨集區塊可以並行處理相應之解碼作業。
因此,透過本案之結合軟硬體實現之視訊處理系統及方法可以結合中央處理單元與硬體加速器來協同完成相應視訊視編/解碼作業,從而提高相關裝置與元件之利用率。另外,由於硬體編碼或解碼中斷中央處理單元的次數減少到每個幀一次,使得中央處理單元處理中斷的次數只與編碼或解碼之幀率相關,而和圖像的解析度無關。因此,可以大幅降低了中央處理單元處理硬體加速器中斷的負荷。另一方面,依照本案之實施架構,編碼過程與解碼過程只分別需要4個與3個DMA通道,且編碼和解碼的DMA通道可以重複使用。僅需要較少的DMA通道便可完成相應視訊之編/解碼作業。
本發明之方法,或特定型態或其部份,可以以程式碼的型態存在。程式碼可以包含於實體媒體,如軟碟、光碟片、硬碟、或是任何其他機器可讀取(如電腦可讀取)儲存媒體,亦或不限於外在形式之電腦程式產品,其中,當程式碼被機器,如電腦載入且執行時,此機器變成用以參與本發明之裝置。程式碼也可以透過一些傳送媒體,如電線或電纜、光纖、或是任何傳輸型態進行傳送,其中,當程式碼被機器,如電腦接收、載入且執行時,此機器變成用以參與本發明之裝置。當在一般用途處理單元實作時,程式碼結合處理單元提供一操作類似於應用特定邏輯電路之獨特裝置。
雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明,任何熟悉此項技藝者,在不脫離本發明之精神和範圍內,當可做些許更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
1000...結合軟硬體實現之視訊處理系統
1100...儲存單元
1110...目前幀
1120...參考幀
1130、1132、1134...RLL碼
1140...重建幀
1200...中央處理單元
1210...硬體加速器控制
1220...解碼預處理
1230...編碼後處理
1300...硬體加速器
1310...硬體加速器控制器
1320、MEACC...運動估計加速器
1330、DQACC...變換與量化加速器
1340、DFACC...去塊效應濾波加速器
1350...內部儲存單元
CB、SW、FIFO、RCB、MV(Motion Vactor)、RFB、DBF(Deblocking Filter)、DC/AC、Scan...暫存器
MB...巨集區塊
S2100、S2200、S2300、S2400...步驟
S4100、S4200、...、S4700...步驟
S5100、S5200、...、S5800...步驟
P1、P2、P3、P4...時間點
N-3、N-2、...、N+1...編碼幀編號
M-2、M-1、...、M+2...解碼幀編號
第1圖為一示意圖係顯示依據本發明實施例之結合軟硬體實現之視訊處理系統。
第2圖為一流程圖係顯示依據本發明實施例之結合軟硬體實現之視訊處理方法。
第3圖為一示意圖係顯示依據本發明另一實施例之結合軟硬體實現之視訊處理系統。
第4圖為一流程圖係顯示依據本發明實施例之結合軟硬體實現之視訊編碼方法。
第5圖為一流程圖係顯示依據本發明實施例之結合軟硬體實現之視訊解碼方法。
第6圖為一示意圖係顯示依據本發明實施例之視訊編碼與解碼之流水線管理。
第7A圖為一示意圖係顯示依據本發明實施例之硬體加速器之視訊編碼之流水線管理。
第7B圖為一示意圖係顯示依據本發明實施例之硬體加速器之視訊解碼之流水線管理。
1000...結合軟硬體實現之視訊處理系統
1100...儲存單元
1110...目前幀
1120...參考幀
1130、1132、1134...RLL碼
1140...重建幀
1200...中央處理單元
1210...硬體加速器控制
1220...解碼預處理
1230...編碼後處理
1300...硬體加速器
1310...硬體加速器控制器
1320...運動估計加速器
1330...變換與量化加速器
1340...去塊效應濾波加速器
1350...內部儲存單元
CB、SW、FIFO、RCB...暫存器
Claims (18)
- 一種結合軟硬體實現之視訊處理系統,包括:一硬體加速器,用以接收相應一視訊之至少一第一幀,執行相應該第一幀之一第一編碼程式,以產生至少一游程停止幅值碼;以及一中央處理單元,用以依據該游程停止幅值碼執行相應該第一幀之一第二編碼程式,其中,該第二編碼程式包括一熵編碼,以產生相應該第一幀之一碼流。
- 如申請專利範圍第1項所述之結合軟硬體實現之視訊處理系統,其中,該硬體加速器更由該中央處理單元接收複數個編碼控制參數,且依據該複數個編碼控制參數進行一初始化操作,該複數個編碼控制參數包括以下參數或其結合:一幀類型;一視訊編碼標準;一圖像尺寸;一量化類型;一量化係數以及一運動估計搜索範圍。
- 如申請專利範圍第1項所述之結合軟硬體實現之視訊處理系統,其中,該中央處理單元更依據相應該第一幀之該游程停止幅值碼、一總碼率、及一幀率計算一量化係數,以進行相應該視訊之一碼率控制;該中央處理單元更依據相應一第二幀之該游程停止幅值碼、一總碼率、及一幀率計算一量化係數,對於該第一幀進行一邊緣擴展作業,其中,該第二幀係該視訊中該第一幀之前一個幀,相應該第一幀之該第一編碼程式與相應該第二幀之該第二編碼程式係分別由該硬體加速器與該中央處理單元同時執行,當相應該第二幀之該第一編碼程式完成之後,該硬體加速器發出一中斷至該中央處理單元,且相應於該中斷,該中央處理單元致使該硬體加速器執行相應該第一幀之該第一編碼程式。
- 如申請專利範圍第1項所述之結合軟硬體實現之視訊處理系統,其中,該硬體加速器於相應該第一幀之該第一編碼程式中更產生複數個編碼參數,且該中央處理單元依據該游程停止幅值碼與該複數個編碼參數執行相應該第一幀之該第二編碼程式,其中,該第一編碼程式更包括以下程式或其結合:一運動估計;一變換與反變換;一量化與反量化;一預測及掃描;一游程編碼;以及一去塊效應濾波。
- 一種結合軟硬體實現之視訊處理系統,包括:一中央處理單元,用以接收相應一視訊之一碼流,依據該碼流執行一第一解碼程式,其中,該第一解碼程式包括一熵解碼,以產生至少一游程停止幅值碼;以及一硬體加速器,用以依據該游程停止幅值碼執行一第二解碼程式,以重建得到相應該視訊之一第一幀。
- 如申請專利範圍第5項所述之結合軟硬體實現之視訊處理系統,其中,該硬體加速器更由該中央處理單元接收複數個解碼控制參數,且依據該複數個解碼控制參數進行啟動,該解碼控制參數包括以下參數或其結合:一幀類型;一視訊編碼標準;一圖像尺寸;一量化類型;一量化係數以及一運動估計搜索範圍。
- 如申請專利範圍第5項所述之結合軟硬體實現之視訊處理系統,其中,相應該第一幀之該第二解碼程式與相應一第二幀之該第一解碼程式係分別由該硬體加速器與該中央處理單元同時執行;其中,該第二幀係該視訊中該第一幀之下一個幀,當相應該第一幀之該第二解碼程式與相應一第二幀之該第一解碼程式完成時,該中央處理單元更對於該第一幀進行一邊緣擴展作業;當相應該第一幀之該第二解碼程式完成之後,該硬體加速器發出一中斷至該中央處理單元,且相應於該中斷,該中央處理單元致使該硬體加速器執行相應該第二幀之該第二編碼程式。
- 如申請專利範圍第5項所述之結合軟硬體實現之視訊處理系統,其中,該中央處理單元於相應該第一幀之該第一解碼程式中更產生複數個解碼參數,且該硬體加速器依據該游程停止幅值碼與該複數個解碼參數執行相應該第一幀之該第二解碼程式,其中,該第二解碼程式更包括以下程式或其結合:一運動補償;一反變換;一反量化;一預測;一游程編碼;以及一去塊效應濾波。
- 一種結合軟硬體實現之視訊處理方法,該方法包括下列步驟:接收相應一視訊之至少一第一幀,且執行相應該第一幀之一第一編碼程式,以產生至少一游程停止幅值碼;以及依據該游程停止幅值碼執行相應該第一幀之一第二編碼程式,其中,該第二編碼程式包括一熵編碼,以產生相應該第一幀之一碼流。
- 如申請專利範圍第9項所述之結合軟硬體實現之視訊處理方法,更包括下列步驟:傳送複數個編碼控制參數並根據該複數編碼控制個參數進行一初始化操作,其中該複數個編碼控制參數包括以下參數或其結合:一幀類型;一視訊編碼標準;一圖像尺寸;一量化類型;一量化係數以及一運動估計搜索範圍。
- 如申請專利範圍第10項所述之結合軟硬體實現之視訊處理方法,更包括下列步驟:依據相應該第一幀之該游程停止幅值碼、一總碼率、及一幀率計算一量化係數進行相應該視訊之一位碼率控制;以及依據相應一第二幀之該游程停止幅值碼、一總碼率、及一幀率計算一量化係數,對於該第一幀進行一邊緣擴展作業,其中,該第二幀係該視訊中該第一幀之前一個幀,相應該第一幀之該第一編碼程式與相應該第二幀之該第二編碼程式係同時執行,當相應該第二幀之該第一編碼程式完成之後,發出一中斷,相應於該中斷,執行相應該第一幀之該第一編碼程式。
- 如申請專利範圍第10項所述之結合軟硬體實現之視訊處理方法,更包括下列步驟:相應該第一幀之該第一編碼程式中更產生複數個編碼參數;以及依據該游程停止幅值碼與該複數個編碼參數執行相應該第一幀之該第二編碼程式,其中,該第一編碼程式更包括以下程式或其結合:一運動估計;一變換與反變換;一量化與反量化;一預測及掃描;一游程編碼;以及一去塊效應濾波。
- 一種結合軟硬體實現之視訊處理方法,該方法包括下列步驟:接收相應一視訊之一碼流,且依據該碼流執行一第一解碼程式,其中,該第一解碼程式包括一熵解碼,以產生至少一游程停止幅值碼;以及依據該游程停止幅值碼執行一第二解碼程式,以重建得到相應該視訊之一第一幀。
- 如申請專利範圍第13項所述之結合軟硬體實現之視訊處理方法,更包括下列步驟:傳送複數個解碼控制參數並根據該複數個解碼控制參數進行一初始化操作,其中該複數個解碼控制數包括以下參數或其結合:一幀類型;一視訊編碼標準;一圖像尺寸;一量化類型;一量化係數以及一運動估計搜索範圍。
- 如申請專利範圍第13項所述之結合軟硬體實現之視訊處理方法,其中,相應該第一幀之該第二解碼程式與相應一第二幀之該第一解碼程式係同時執行;其中,該第二幀係該視訊中該第一幀之下一個幀,當相應該第一幀之該第二解碼程式與相應一第二幀之該第一解碼程式完成時,進行一邊緣擴展作業;當相應該第一幀之該第二解碼程式完成之後,發出一中斷並相應於該中斷執行相應該第二幀之該第二解碼程式。
- 如申請專利範圍第13項所述之結合軟硬體實現之視訊處理方法,更包括下列步驟:相應該第一幀之該第一解碼程式中產生至少一解碼參數,依據該游程停止幅值碼與該至少一解碼參數執行相應該第一幀之該第二解碼程式,其中,該第二解碼程式更包括以下程式或其結合:一運動補償;一反變換;一反量化;一預測;一游程編碼;以及一去塊效應濾波。
- 一種電腦程式產品,用以被一機器載入且執行一結合軟硬體實現之視訊處理方法,其中,該機器包括一中央處理單元與一硬體加速器,該電腦程式產品包括:一第一程式碼,用以致使該硬體加速器接收相應一視訊之至少一第一幀,且執行相應該第一幀之一第一編碼程式,以產生至少一游程停止幅值碼;以及一第二程式碼,用以致使該中央處理單元依據該游程停止幅值碼執行相應該第一幀之一第二編碼程式,其中,該第二編碼程式包括一熵編碼,以產生相應該第一幀之一碼流。
- 一種電腦程式產品,用以被一機器載入且執行一結合軟硬體實現之視訊處理方法,其中,該機器包括一中央處理單元與一硬體加速器,該電腦程式產品包括:一第一程式碼,用以致使該中央處理單元接收相應一視訊之一碼流,且依據該碼流執行一第一解碼程式,其中,該第一解碼程式包括一熵解碼,以產生至少一游程停止幅值碼;以及一第二程式碼,用以致使該硬體加速器依據該游程停止幅值碼執行一第二解碼程式,以重建得到相應該視訊之一第一幀。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW99126894A TWI418220B (zh) | 2010-08-12 | 2010-08-12 | 結合軟硬體實現之視訊處理系統,方法及其電腦程式產品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW99126894A TWI418220B (zh) | 2010-08-12 | 2010-08-12 | 結合軟硬體實現之視訊處理系統,方法及其電腦程式產品 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201208380A TW201208380A (en) | 2012-02-16 |
TWI418220B true TWI418220B (zh) | 2013-12-01 |
Family
ID=46762484
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW99126894A TWI418220B (zh) | 2010-08-12 | 2010-08-12 | 結合軟硬體實現之視訊處理系統,方法及其電腦程式產品 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI418220B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1589025A (zh) * | 2004-07-30 | 2005-03-02 | 联合信源数字音视频技术(北京)有限公司 | 一种基于软硬件协同控制的视频解码器 |
US20070230658A1 (en) * | 2004-10-29 | 2007-10-04 | Sanyo Electric Co., Ltd. | Image coding method and apparatus, and image decoding method and apparatus |
TW200917850A (en) * | 2007-05-21 | 2009-04-16 | Nec Corp | Image encoding apparatus, image encoding method, and image encoding program product |
TW200931987A (en) * | 2007-10-30 | 2009-07-16 | Nippon Telegraph & Telephone | Image encoding method and decoding method, apparatuses therefor, programs therefor, and storage media for storing the programs |
US20090202176A1 (en) * | 2008-02-13 | 2009-08-13 | Qualcomm Incorporated | Shared block comparison architechture for image registration and video coding |
-
2010
- 2010-08-12 TW TW99126894A patent/TWI418220B/zh not_active IP Right Cessation
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1589025A (zh) * | 2004-07-30 | 2005-03-02 | 联合信源数字音视频技术(北京)有限公司 | 一种基于软硬件协同控制的视频解码器 |
US20070230658A1 (en) * | 2004-10-29 | 2007-10-04 | Sanyo Electric Co., Ltd. | Image coding method and apparatus, and image decoding method and apparatus |
TW200917850A (en) * | 2007-05-21 | 2009-04-16 | Nec Corp | Image encoding apparatus, image encoding method, and image encoding program product |
TW200931987A (en) * | 2007-10-30 | 2009-07-16 | Nippon Telegraph & Telephone | Image encoding method and decoding method, apparatuses therefor, programs therefor, and storage media for storing the programs |
US20090202176A1 (en) * | 2008-02-13 | 2009-08-13 | Qualcomm Incorporated | Shared block comparison architechture for image registration and video coding |
Also Published As
Publication number | Publication date |
---|---|
TW201208380A (en) | 2012-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7098805B2 (ja) | ニューラルネットワークを利用したコーデック | |
TWI382764B (zh) | 用於儲存中間迴路過濾資料之暫存記憶體(scratch pad) | |
TWI461065B (zh) | 重疊平滑與迴路內(in-loop)去區塊(deblocking)之分段處理 | |
JP5674752B2 (ja) | 適応型走査を用いる動画の符号化/復号化装置 | |
KR101260073B1 (ko) | 적응적 계수 스캔 순서 | |
US8395634B2 (en) | Method and apparatus for processing information | |
JP2009525001A (ja) | イントラ符号化されたビデオの並列復号化 | |
US8660191B2 (en) | Software video decoder display buffer underflow prediction and recovery | |
JP6085065B2 (ja) | 画像圧縮伸長装置 | |
WO2015041647A1 (en) | Parallel decode of a progressive jpeg bitstream | |
JP2006157925A (ja) | パイプラインデブロッキングフィルタ | |
KR101392349B1 (ko) | 비디오 디코딩 방법 및 장치 | |
CN1592417A (zh) | 编码设备和编码方法 | |
JP2009170992A (ja) | 画像処理装置およびその方法、並びにプログラム | |
CN102065288B (zh) | 结合软硬件实现的视频处理系统、方法及其装置 | |
TWI418220B (zh) | 結合軟硬體實現之視訊處理系統,方法及其電腦程式產品 | |
GB2533155A (en) | Video data processing system | |
US9723312B2 (en) | Method and system for random accessible image compression with adaptive quantization | |
US10694190B2 (en) | Processing apparatuses and controlling methods thereof | |
TWI514851B (zh) | 影像編碼/解碼系統與其方法 | |
JP4034793B2 (ja) | 補完映像を生成してデブロッキング処理に用いる映像圧縮装置及び方法 | |
CN1333601C (zh) | 一种实现缩放的视频解码方法 | |
JPH1056641A (ja) | Mpegデコーダ | |
JP2004007602A (ja) | 性能向上のための動画像圧縮方法及び装置 | |
US20130107943A1 (en) | Video Quantizer Unit and Method Thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |