TW202337223A - 視訊處理電路與視訊處理方法 - Google Patents
視訊處理電路與視訊處理方法 Download PDFInfo
- Publication number
- TW202337223A TW202337223A TW111107995A TW111107995A TW202337223A TW 202337223 A TW202337223 A TW 202337223A TW 111107995 A TW111107995 A TW 111107995A TW 111107995 A TW111107995 A TW 111107995A TW 202337223 A TW202337223 A TW 202337223A
- Authority
- TW
- Taiwan
- Prior art keywords
- image block
- frame
- video
- memory
- processing circuit
- Prior art date
Links
- 238000003672 processing method Methods 0.000 title claims description 21
- 238000000034 method Methods 0.000 claims description 29
- 230000003068 static effect Effects 0.000 claims description 3
- 230000036961 partial effect Effects 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 8
- 230000000630 rising effect Effects 0.000 description 2
- 230000002860 competitive effect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
Images
Landscapes
- Closed-Circuit Television Systems (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本發明揭露了一種視訊處理電路,視訊處理電路耦接一外部記憶體並產生一視訊串流。該外部記憶體儲存一第一幀的部分資料。該視訊處理電路包含:一記憶體、一控制電路、一圖像處理電路以及一視訊編碼電路。控制電路用來從該外部記憶體讀取一第一影像區塊,並將該第一影像區塊儲存至該記憶體,該第一影像區塊係該第一幀的一部分。圖像處理電路用來從該記憶體讀取該第一影像區塊,並處理該第一影像區塊以產生一第二影像區塊,其中,該第二影像區塊係一第二幀的一部分,該第二幀不等於該第一幀。視訊編碼電路用來從該記憶體讀取該第一影像區塊,並且編碼該第一影像區塊以產生該視訊串流的一部分。
Description
本發明是關於影像處理,尤其是關於視訊串流(video streaming)之產生。
圖1顯示習知視訊處理電路100之一實施例的功能方塊圖。視訊處理電路100包含圖像處理電路110、記憶體122、記憶體124、記憶體126及視訊編碼電路130。視訊處理電路100處理輸入資料Din來產生視訊串流Dout_M、視訊串流Dout_S1、視訊串流Dout_S2、…。圖像處理電路110用來處理輸入資料Din以產生視訊串流Dout_M的源資料Din_M、視訊串流Dout_S1的源資料Din_S1及視訊串流Dout_S2的源資料Din_S2。源資料Din_M(源資料Din_S1或源資料Din_S2)包含多個幀,該些幀被依序存入記憶體122(記憶體124或記憶體126),以供視訊編碼電路130取用。視訊編碼電路130編碼源資料Din_M、源資料Din_S1及源資料Din_S2以分別產生視訊串流Dout_M、視訊串流Dout_S1及視訊串流Dout_S2。
如圖1所示,記憶體122包含兩個記憶體區塊:記憶體區塊122a及記憶體區塊122b,其中一者用來儲存源資料Din_M的第N-1幀,另一者用來儲存源資料Din_M的第N幀。記憶體124及記憶體126同理,不再贅述。換句話說,對於任一視訊串流(Dout_M、Dout_S1、Dout_S2或其他),視訊處理電路100至少需要同時儲存該視訊串流的源資料的兩個完整的幀,這無疑耗費許多系統資源,使得產品不具競爭力。當視訊處理電路100所輸出的視訊串流愈多時,此缺點更加顯著。
請參閱圖2,圖2是圖1之資料的時序圖。時脈CLK的下降緣(即,時間點t2、時間點t4、時間點t6、…)指示幀的起點,時脈CLK的上升緣(即,時間點t1、時間點t3、時間點t5、…)指示幀的終點。在此例中,圖像處理電路110包含三個子電路(該三個子電路處理輸入資料Din以分別產生源資料Din_M、源資料Din_S1及源資料Din_S2),所以圖像處理電路110可以在時間點t2及時間點t3之間同時輸出源資料Din_M的第N-1幀M(N-1)(灰底)、源資料Din_S1的第N-1幀S1(N-1)(灰底)及源資料Din_S2的第N-1幀S2(N-1)(灰底),以及在時間點t4及時間點t5之間同時輸出源資料Din_M的第N幀M(N)(灰底)、源資料Din_S1的第N幀S1(N)(灰底)及源資料Din_S2的第N幀S1(N)(灰底)。當圖像處理電路110產生第N幀時(即,時間點t4與時間點t5之間,第N幀儲存至兩個記憶體區塊的其中之一),視訊編碼電路130編碼儲存於另一個記憶體區塊中的第N-1幀(即,源資料Din_M的第N-1幀M(N-1)(灰底)、源資料Din_S1的第N-1幀S1(N-1)(灰底)及源資料Din_S2第N-1幀S2(N-1)(灰底)),以產生視訊串流的第N-1幀(即,M(N-1)(網格)、S1(N-1)(網格)及S2(N-1)(網格))。換言之,圖像處理電路110與視訊編碼電路130之間有一個幀的延遲。
綜上所述,習知的視訊處理電路100不僅耗費硬體資源(記憶體需要大量空間且圖像處理電路110包含多個子電路),而且效率不佳(具有延遲)。
鑑於先前技術之不足,本發明之一目的在於提供一種視訊處理電路與視訊處理方法,以改善先前技術的不足。
本發明之一實施例提供一種視訊處理電路,耦接一外部記憶體,該外部記憶體儲存一第一幀的部分資料。該視訊處理電路產生一視訊串流,該視訊處理電路包含:一記憶體、一控制電路、一圖像處理電路以及一視訊編碼電路。控制電路用來從該外部記憶體讀取一第一影像區塊,並將該第一影像區塊儲存至該記憶體,該第一影像區塊係該第一幀的一部分。圖像處理電路用來從該記憶體讀取該第一影像區塊並處理該第一影像區塊以產生一第二影像區塊,其中,該第二影像區塊係一第二幀的一部分,該第二幀不等於該第一幀。視訊編碼電路用來從該記憶體讀取該第一影像區塊,並且編碼該第一影像區塊以產生該視訊串流的一部分。
本發明之另一實施例提供一種視訊處理方法,用來根據一第一幀產生一視訊串流,該視訊處理方法包含以下步驟:從一外部記憶體讀取一第一影像區塊,並將該第一影像區塊儲存至一記憶體,該第一影像區塊係該第一幀的一部分;一縮放操作,係從該記憶體讀取該第一影像區塊,並且處理該第一影像區塊以產生一第二影像區塊,其中,該第二影像區塊係一第二幀的一部分,且該第二幀不等於該第一幀;以及一編碼操作,係從該記憶體讀取該第一影像區塊,並且編碼該第一影像區塊以產生該視訊串流的一部分。
本發明之另一實施例提供一種視訊處理方法,用來產生一第一視訊串流及一第二視訊串流,該視訊處理方法包含以下步驟:從一外部記憶體讀取一第一幀的一第一影像區塊,並將該第一影像區塊儲存至一內部記憶體;處理該第一影像區塊以產生一第二影像區塊,該第二影像區塊係一第二幀的一部分,該第二幀不等於該第一幀;將該第二影像區塊儲存至該外部記憶體;編碼該第一影像區塊以產生該第一視訊串流的一部分;從該外部記憶體讀取該第二影像區塊,並將該第二影像區塊儲存至該內部記憶體;以及,編碼該第二影像區塊以產生該第二視訊串流的一部分。
本發明之實施例所體現的技術手段可以改善先前技術之缺點的至少其中之一,因此本發明相較於先前技術可以節省記憶體及/或減少延遲。
有關本發明的特徵、實作與功效,茲配合圖式作實施例詳細說明如下。
以下說明內容之技術用語係參照本技術領域之習慣用語,如本說明書對部分用語有加以說明或定義,該部分用語之解釋係以本說明書之說明或定義為準。
本發明之揭露內容包含視訊處理電路與視訊處理方法。由於本發明之視訊處理電路所包含之部分元件單獨而言可能為已知元件,因此在不影響該裝置發明之充分揭露及可實施性的前提下,以下說明對於已知元件的細節將予以節略。此外,本發明之視訊處理方法的部分或全部流程可以是軟體及/或韌體之形式,並且可藉由本發明之視訊處理電路或其等效裝置來執行,在不影響該方法發明之充分揭露及可實施性的前提下,以下方法發明之說明將著重於步驟內容而非硬體。
圖3是本發明影像處理系統200之一實施例的功能方塊圖。影像處理系統200包含記憶體210、處理器220及視訊處理電路230。
記憶體210包含記憶體區塊212及記憶體區塊214。記憶體區塊212用來儲存源資料Din_M,而記憶體區塊214用來儲存源資料Din_Sx(x=1, 2, 3, …)。更明確地說,源資料Din_M及源資料Din_Sx各包含許多幀;記憶體區塊212的儲存內容包含源資料Din_M之一個幀的全部資料或部分資料,而記憶體區塊214的儲存內容包含源資料Din_Sx之一個幀的全部資料或是部分資料。源資料Din_M可以是未經縮放(scaling)處理的資料(例如,影像感測器的輸出影像),或是經過縮放處理的資料(例如縮小後的輸出影像)。
視訊處理電路230包含控制電路231、記憶體232、圖像處理電路234及視訊編碼電路236。在一些實施例中,記憶體210是動態隨機存取記憶體(Dynamic Random Access Memory, DRAM),而記憶體232是靜態隨機存取記憶體(Static Random Access Memory, SRAM)。
對視訊處理電路230而言,記憶體210是外部記憶體,記憶體232是內部記憶體。
圖4是本發明視訊處理方法之一實施例的流程圖。圖4假設視訊處理電路230產生k+1個視訊串流(即,Dout_M、Dout_S1、Dout_S2、…、Dout_Sk,k為大於1之整數)。圖5是圖3及圖4之資料的時序圖的一個例子。在圖5的例子中,k=2。同樣的,時脈CLK的下降緣(即,時間點t2、時間點t4、時間點t8、…)指示幀的起點,時脈CLK的上升緣(即,時間點t1、時間點t3、時間點t6、…)指示幀的終點。以下配合圖4及圖5說明視訊處理電路230的操作細節。
S310:控制電路231從外部記憶體(更明確地說,從記憶體區塊212)讀取源資料Din_M的第N幀(即,幀M(N)(灰底))的目標影像區塊A1,並將目標影像區塊A1儲存至記憶體232。記憶體區塊212的儲存內容包含源資料Din_M的第N幀的部分資料(例如,至少一個影像區塊)或全部資料,而控制電路231在執行步驟S310時可以將第N幀的部分資料(即,目標影像區塊A1)複製或搬移至記憶體232。
S320:圖像處理電路234及視訊編碼電路236基於目標影像區塊A1分別產生輸出影像區塊B1(即,源資料Din_S1的第N幀S1(N)(灰底)的一部分)與視訊串流Dout_M的一部分(即,視訊串流Dout_M的第N幀M(N)(網格)的一部分),並且,圖像處理電路234將輸出影像區塊B1儲存至外部記憶體(更明確地說,儲存至記憶體區塊214)。舉例來說,此步驟可以對應到圖5之時間點t5與時間點t7之間。視訊處理電路230基於影像區塊進行影像處理,每處理完一個目標影像區塊A1,便將輸出影像區塊B1儲存至記憶體區塊214及輸出對應的視訊串流。在一些實施例中,視訊串流Dout_M的第N幀M(N)(網格)與源資料Din_S1的第N幀S1(N)(灰底)實質上同時開始產生(時間點t5)且實質上同時完整產生(時間點t7)。
由於視訊處理電路230是基於影像區塊(而非幀)進行影像處理,因此,源資料Din_S1的第N幀S1(N)(灰底)及視訊串流Dout_M的第N幀M(N)(網格)可以在時間點t5就開始產生,而不用等到源資料Din_M的第N幀M(N)(灰底)結束(即,時間點t6)才開始產生。在一個實施例中,視訊處理電路230與前級電路(例如,影像訊號處理器(image signal processor)或縮放電路,圖未示)以環緩衝器(ring buffer)的方式存取記憶體區塊212來達成此目的。環緩衝器的原理及操作細節為本技術領域具有通常知識者所熟知,故不再贅述。由前述說明可知,由於圖像處理電路234及視訊編碼電路236共享記憶體232中之目標影像區塊A1,在圖像處理電路234及視訊編碼電路236分別產生輸出影像區塊B1及視訊串流Dout_M的一部分之前,控制電路231只從外部記憶體將目標影像區塊A1寫入記憶體232一次,藉此,可降低視訊處理電路230與外部記憶體間的頻寬需求。
S330:判斷圖像處理電路234及視訊編碼電路236是否完成一個幀的所有影像區塊。如果否,則決定下一個目標影像區塊A1(步驟S335)後回到步驟S310;如果是,則進行步驟S340。
S340:控制電路231從外部記憶體(更明確地說,從記憶體區塊214)讀取源資料Din_Sx的第N幀的目標影像區塊A2,並將目標影像區塊A2儲存至記憶體232。記憶體區塊214的儲存內容包含源資料Din_Sx的第N幀的部分資料(例如,至少一個影像區塊)或全部資料,而控制電路231在執行步驟S340時可以將第N幀的部分資料(即,目標影像區塊A2)複製或搬移至記憶體232。
S350:如果視訊處理電路230正在處理最後一個視訊串流的第N幀(即,x=k,換言之,源資料Din_M、源資料Din_S1、源資料Din_S2、…、源資料Din_Sk-1的第N幀皆已處理完畢,並已產生對應的視訊串流),則執行步驟S380~S384;否則,執行步驟S360~S364。
S360:圖像處理電路234及視訊編碼電路236基於目標影像區塊A2分別產生輸出影像區塊B2(即,源資料Din_Sx+1的第N幀的一部分)與視訊串流Dout_Sx的一部分,並且,圖像處理電路234將輸出影像區塊B2儲存至外部記憶體(更明確地說,儲存至記憶體區塊214)。
S362:判斷圖像處理電路234及視訊編碼電路236是否完成一個幀的所有影像區塊。如果否,則決定源資料Din_Sx的第N幀的下一個目標影像區塊A2(步驟S370)後回到步驟S340;如果是,則進行步驟S364。
S364:令x=x+1,然後回到步驟S340以繼續處理下一個視訊串流的第N幀。
步驟S360~S364可以對應到圖5的時間點t7與時間點t9之間。更明確地說,目標影像區塊A2是S1(N)(灰底)的一個影像區塊,視訊串流Dout_Sx的一部分是視訊串流Dout_S1的第N幀S1(N)(網格)的一部分,而輸出影像區塊B2是源資料Din_S2的第N幀S2(N)(灰底)的一部分。同理,因為視訊處理電路230基於影像區塊進行影像處理(即,每處理完一個目標影像區塊A2,便將輸出影像區塊B2儲存至記憶體區塊214及輸出對應的視訊串流),所以S1(N)(網格)與S2(N)(灰底)實質上同時開始產生(時間點t7)且實質上同時完整產生(時間點t9)。
S380:視訊編碼電路236基於目標影像區塊A2產生視訊串流Dout_Sx的一部分。步驟S380可以對應到圖5的時間點t9與時間點t10之間;更明確地說,目標影像區塊A2是S2(N)(灰底)的一個影像區塊,而視訊串流Dout_Sx的一部分是視訊串流Dout_S2的第N幀S2(N)(網格)的一部分。
S382:判斷視訊編碼電路236是否完成一個幀的所有影像區塊。如果否,則決定源資料Din_Sx的第N幀的下一個目標影像區塊A2(步驟S370)後回到步驟S340;如果是,則進行步驟S384。
S384:令N=N+1且將x重設為1,然後回到步驟S310以繼續處理下一個幀(即,第N+1幀)。
由以上的討論可知,除了最初的源資料Din_M(非由視訊處理電路230產生)之外,其他的由視訊處理電路230產生的源資料(源資料Din_S1、源資料Din_S2、…)都儲存在記憶體區塊214;換言之,視訊處理電路230產生的源資料共用記憶體區塊214,以節省記憶體。此外,視訊處理電路230還可以減少延遲(即,視訊串流Dout_M的第N幀M(N)(網格)在時間點t5即開始產生,而非時間點t6之後)。
在一些實施例中,步驟S340及步驟S360可以同時或部分同時執行,例如,控制電路231及圖像處理電路234以環緩衝器的方式存取記憶體區塊214。
圖6是圖4之步驟S320或S360之一實施例的流程圖。圖6包含以下步驟。
S410:縮放操作,包含子步驟S412、S414及S416,由圖像處理電路234執行。
S412:從記憶體232讀取目標影像區塊(A1或A2)的一部分。請參閱圖7A及7B,圖7A及7B分別顯示幀710及幀720。幀710是源資料Din_M的第N幀或源資料Din_Sx的第N幀,而幀720是源資料Din_S1的第N幀或源資料Din_Sx+1的第N幀。在圖7A及7B的例子中,幀710包含6個影像區塊(A(a,b),1≦a≦3,1≦b≦2,每個影像區塊A(a,b)依序被選為圖4之目標影像區塊A1或目標影像區塊A2),而幀720包含2個影像區塊(B(c,d),c=1,1≦d≦2,每個影像區塊B(c,d)可以是圖4之輸出影像區塊B1或輸出影像區塊B2)。記憶體232的儲存內容包含至少一個影像區塊。在此步驟中,圖像處理電路234每次讀取目標影像區塊的一列資料進行處理。舉例來說,假設目標影像區塊是A(1,1),則圖像處理電路234每次執行此步驟時讀取像素資料P1~P5、P16~P20、P31~P35或P46~P50。
S414:處理該目標影像區塊(A1或A2)的該部分以產生輸出影像區塊(B1或B2)的一部分。輸出影像區塊即幀720的一個影像區塊。以縮小(scaling down)操作為例(假設縮小比例為1/3),圖像處理電路234執行方程式(1)來產生輸出影像區塊。
(1)
需注意的是,圖像處理電路234在處理影像區塊A(2,1)的某一列的像素(例如,P6~P10)時,會用到(1)相鄰影像區塊A(1,1)的同一列像素(例如,P1~P5)的部分像素,或是(2)基於相鄰影像區塊A(1,1)的同一列像素所得到的計算結果。承上例,因為幀720的像素Q2=(P4+P5+P6)/3(P4、P5及P6是連續的像素),所以,對情況(1)而言,圖像處理電路234在處理影像區塊A(2,1)的第一列的像素時,需要影像區塊A(1,1)的像素值P4及P5;對情況(2)而言,圖像處理電路234在處理影像區塊A(2,1)的第一列的像素時,圖像處理電路234同時對像素值P4及P5的計算結果(即,(P4+P5)/3)與像素值P6進行計算(即,Q2=(P4+P5)/3+P6/3)。像素值P4及P5及/或基於像素值P4及P5的計算結果((P4+P5)/3)可以儲存在記憶體232中,以供圖像處理電路234在處理影像區塊A(2,1)的第一列的像素時使用。
S416:圖像處理電路234將輸出影像區塊(B1或B2)的該部分儲存至記憶體210(更明確地說,至記憶體區塊214)。舉例來說,圖像處理電路234將像素值Q1儲存至記憶體區塊214。
S420:圖像處理電路234判斷是否完成該目標影像區塊(A1或A2)。當圖像處理電路234處理完目標影像區塊(A1或A2)的所有列(S420的結果為是)時,流程進到步驟S430;否則,圖像處理電路234繼續處理目標影像區塊(A1或A2)的其他部分。
S430:編碼操作,包含子步驟S432及S434,由視訊編碼電路236執行。
S432:視訊編碼電路236從記憶體讀取該目標影像區塊(A1或A2)的一部分。此步驟的目標影像區塊與步驟S412的目標影像區塊(A1或A2)相同;換言之,同一個目標影像區塊(A1或A2)會經過縮放處理及編碼處理。
S434:視訊編碼電路236編碼該目標影像區塊(A1或A2)的該部分以產生該視訊串流的一部分。在一些實施例中,視訊編碼電路236基於H.264的標準進行編碼;H.264的標準為本技術領域具有通常知識者所熟知,故不再贅述。
S440:視訊編碼電路236判斷是否完成該目標影像區塊(A1或A2)。當視訊編碼電路236處理完目標影像區塊的所有像素(S440的結果為是),則回到圖4之步驟S330或S362;否則,視訊編碼電路236繼續處理目標影像區塊的其他部分。
圖4之步驟S380的細節包含圖6的步驟S430及步驟S440。
由以上的討論可知,圖像處理電路234及視訊編碼電路236是基於影像區塊進行操作。
在不同的實施例中,圖6之步驟S410及步驟S430可以交換。
在一些實施例中,源資料Din_M(或視訊串流Dout_M)、源資料Din_S1(或視訊串流Dout_S1)、源資料Din_S2(或視訊串流Dout_S2)等的解析度不同。舉例來說,源資料Din_M(或視訊串流Dout_M)的解析度大於源資料Din_S1(或視訊串流Dout_S1)的解析度,且源資料Din_S1(或視訊串流Dout_S1)的解析度大於源資料Din_S2(或視訊串流Dout_S2)的解析度。
處理器220可以根據視訊串流Dout_Sx的幀率Fx及視訊串流Dout_Sx+1的幀率Fx+1來控制圖像處理電路234及/或視訊編碼電路236是否啟動,包含以下三種情境。
情境(1):當幀率Fx等於幀率Fx+1時,圖像處理電路234及視訊編碼電路236皆啟動,即,圖像處理電路234及視訊編碼電路236皆處理源資料Din_Sx的每一幀(對應到圖4及圖6的流程)。
情境(2):當幀率Fx小於幀率Fx+1時,圖像處理電路234處理某一幀,而視訊編碼電路236不編碼該幀。舉例來說,假設幀率Fx是30 fps(每秒幀數(frame per second)),而幀率Fx+1是60 fps,則圖像處理電路234處理源資料Din_Sx的每個幀,但視訊編碼電路236只編碼源資料Din_Sx之連續2(=60/30)個幀中的其中一個並略過另一個。在此情境中,圖4的步驟S320、步驟S360及步驟S380分別以圖8A的步驟S320A、步驟S360A及步驟S380A取代,而圖6的流程則新增兩個步驟:S910及S920,如圖9所示。在步驟S910中,圖像處理電路234根據第一設定值(由處理器220產生)判斷是否略過目前的幀。如果是,則圖像處理電路234不對該幀進行縮放操作。在步驟S920中,視訊編碼電路236根據第二設定值(由處理器220產生)判斷是否略過目前的幀。如果是,則視訊編碼電路236不對該幀進行編碼操作。
情境(3):當幀率Fx大於幀率Fx+1時,視訊編碼電路236編碼某一幀,但圖像處理電路234不處理該幀。舉例來說,假設幀率Fx是60 fps,而幀率Fx+1是30 fps,則視訊編碼電路236編碼源資料Din_Sx的每個幀,但圖像處理電路234只處理源資料Din_Sx之連續2(=60/30)個幀中的其中一個並略過另一個。在此情境中,圖4的步驟S320及步驟S360分別以圖8B的步驟S320B及步驟S360B取代,而圖6的流程則以圖9的流程取代。
圖10顯示圖3之記憶體232的內部電路。圖10與圖3基本上相同,圖10顯示記憶體232的一種實施方式。在圖10的實施例中,記憶體232包含記憶體區塊232a及記憶體區塊232b。控制電路231、圖像處理電路234及視訊編碼電路236皆耦接記憶體區塊232a及記憶體區塊232b。記憶體區塊232a及記憶體區塊232b以雙緩衝(double buffer)的形式供圖像處理電路234及視訊編碼電路236使用。圖11A顯示控制電路231從記憶體210讀取資料並將資料寫入記憶體232的流程圖,圖11B及圖11C顯示圖像處理電路234及視訊編碼電路236從記憶體232讀取資料的流程圖,詳述如下。
圖11A包含以下步驟。
步驟S1112:控制電路231選擇記憶體區塊232a及記憶體區塊232b中狀態為0者作為目標記憶體區塊。記憶體區塊232a及記憶體區塊232b有各自的狀態。此步驟包含控制電路231等待記憶體區塊232a或記憶體區塊232b的狀態變為0。
步驟S1114:控制電路231將目標記憶體區塊的狀態設為1。
步驟S1116:控制電路231從記憶體210讀取D1個位元,並將該D1個位元寫入目標記憶體區塊。
步驟S1118:控制電路231判斷累積已寫入目標記憶體區塊的位元數是否大於等於預設值。此預設值可以是控制電路231、圖像處理電路234及視訊編碼電路236每次讀/寫資料量的整數倍。舉例來說,假設控制電路231、圖像處理電路234及視訊編碼電路236每次讀或寫的資料量分別為D1、D2及D3,則預設值可以是D1、D2及D3之最小公倍數。在一些實施例中,預設值可以是圖4之目標影像區塊(A1或A2)的資料量;換言之,步驟S1118的結果為是代表控制電路231已將一個目標影像區塊(A1或A2)的資料寫入目標記憶體區塊。
圖11B包含以下步驟。
步驟S1122:圖像處理電路234或視訊編碼電路236選擇記憶體區塊232a及記憶體區塊232b中狀態為1者作為目標記憶體區塊。此步驟包含圖像處理電路234或視訊編碼電路236等待記憶體區塊232a或記憶體區塊232b的狀態變為1。
步驟S1124:圖像處理電路234或視訊編碼電路236判斷目標記憶體區塊中未讀取的資料大於D2(或D3)位元。如果是,則執行步驟S1126;如果否,則等待控制電路231寫入資料。
步驟S1126:圖像處理電路234或視訊編碼電路236從目標記憶體區塊讀取D2(或D3)個位元。
步驟S1128:圖像處理電路234或視訊編碼電路236判斷累積從目標記憶體區塊讀出的位元數是否大於等於預設值。如果是,則執行步驟S1129;如果否,則回到步驟S1124。
步驟S1129:圖像處理電路234或視訊編碼電路236將目標記憶體區塊的狀態設為2。
由圖11A及圖11B可知,由於狀態為1之記憶體區塊會同時被控制電路231寫入資料(圖11A)及被圖像處理電路234或視訊編碼電路236讀取資料(圖11B),所以目標記憶體區塊是作為環緩衝器使用。
圖11C包含以下步驟。
步驟S1132:圖像處理電路234或視訊編碼電路236選擇記憶體區塊232a及記憶體區塊232b中狀態為2者作為目標記憶體區塊。此步驟包含圖像處理電路234或視訊編碼電路236等待記憶體區塊232a或記憶體區塊232b的狀態變為2。
步驟S1134:圖像處理電路234或視訊編碼電路236從目標記憶體區塊讀取D2(或D3)個位元。
步驟S1136:圖像處理電路234或視訊編碼電路236判斷累積從目標記憶體區塊讀出的位元數是否大於等於預設值。如果是,則執行步驟S1138;如果否,則回到步驟S1134。
步驟S1138:圖像處理電路234或視訊編碼電路236將目標記憶體區塊的狀態設為0。
圖像處理電路234及視訊編碼電路236的其中一者執行圖11B,而另一者執行圖11C。舉例來說(請參閱圖7A),在某個時間點(區塊A(2,1)的第一列的像素值已被寫入記憶體區塊232a),控制電路231正在將區塊A(2,1)的第二列的像素值寫入記憶體區塊232a、圖像處理電路234正在從記憶體區塊232a讀取區塊A(2,1)的第一列的像素值,以及視訊編碼電路236正在從記憶體區塊232b讀取區塊A(1,1)的像素值。
在圖10的電路架構下,圖像處理電路234及視訊編碼電路236可以同時工作,以加速資料處理及產出。舉例來說,請參閱圖5,圖10的架構可以更快產生幀M(N)(網格)及幀S1(N)(灰底)(即,縮短t7-t5的時間長度),也可以更快產生幀Sx(N)(網格)及幀Sx+1(N)(灰底)(例如,縮短t9-t7的時間長度)。換言之,圖10的電路架構可以使圖4的流程更快速地進行,即,影像處理系統200有更高的效率。
雖然本發明之實施例如上所述,然而該些實施例並非用來限定本發明,本技術領域具有通常知識者可依據本發明之明示或隱含之內容對本發明之技術特徵施以變化,凡此種種變化均可能屬於本發明所尋求之專利保護範疇,換言之,本發明之專利保護範圍須視本說明書之申請專利範圍所界定者為準。
100,230:視訊處理電路
110,234:圖像處理電路
122,124,126,210,232:記憶體
130,236:視訊編碼電路
Din:輸入資料
Dout_M,Dout_S1,Dout_S2:視訊串流
Din_M,Din_S1,Din_S2:源資料
122a,122b,212,214,232a,232b:記憶體區塊
CLK:時脈
t1~t10:時間點
200:影像處理系統
220:處理器
231:控制電路
710,720:幀
S310,S320,S330,S335,S340,S350,S360,S362,S364,S370,S380,S382,S384,S410,S412,S414,S416,S420,S430,S432,S434,S440,S320A,S320B,S360A,S360B,S380A,S910,S920,S1112,S1114,S1116,S1118,S1122,S1124,S1126,S1128,S1129,S1132,S1134,S1136,S1138:步驟
圖1顯示習知視訊處理電路之一實施例的功能方塊圖;
圖2顯示圖1之資料的時序圖;
圖3是本發明影像處理系統之一實施例的功能方塊圖;
圖4是本發明視訊處理方法之一實施例的流程圖;
圖5顯示圖3及圖4之資料的時序圖的一個例子;
圖6顯示圖4之步驟S320或S360之一實施例的流程圖;
圖7A及7B分別顯示幀710及幀720;
圖8A顯示圖4之步驟S320、步驟S360及步驟S380的另一種實施方式;
圖8B顯示圖4之步驟S320及步驟S360的另一種實施方式;
圖9顯示步驟S320A、S320B、S360A或S360B之一實施例的流程圖;
圖10顯示圖3之記憶體232的內部電路;
圖11A顯示控制電路從記憶體210讀取資料並將資料寫入記憶體232的流程圖;
圖11B及圖11C顯示圖像處理電路及視訊編碼電路從記憶體232讀取資料的流程圖。
200:影像處理系統
210,232:記憶體
212,214:記憶體區塊
220:處理器
230:視訊處理電路
231:控制電路
234:圖像處理電路
236:視訊編碼電路
Din_M,Din_S1,Din_S2:源資料
Dout_M,Dout_S1,Dout_S2:視訊串流
Claims (20)
- 一種視訊處理電路,耦接一外部記憶體,該外部記憶體儲存一第一幀的部分資料,該視訊處理電路產生一視訊串流,該視訊處理電路包含: 一記憶體; 一控制電路,用來從該外部記憶體讀取一第一影像區塊,並將該第一影像區塊儲存至該記憶體,該第一影像區塊係該第一幀的一部分; 一圖像處理電路,用來從該記憶體讀取該第一影像區塊並處理該第一影像區塊以產生一第二影像區塊,其中,該第二影像區塊係一第二幀的一部分,該第二幀不等於該第一幀;以及 一視訊編碼電路,用來從該記憶體讀取該第一影像區塊,並且編碼該第一影像區塊以產生該視訊串流的一部分。
- 如請求項1之視訊處理電路,其中,該圖像處理電路更將該第二影像區塊存入該外部記憶體,該控制電路更從該外部記憶體讀取該第二影像區塊,並將該第二影像區塊儲存至該記憶體。
- 如請求項2之視訊處理電路,其中,該視訊串流係一第一視訊串流,該視訊處理電路更依序產生一第二視訊串流及一第三視訊串流,該圖像處理電路及該視訊編碼電路根據該第二視訊串流之幀率與該第三視訊串流之幀率決定是否處理或編碼該第二影像區塊。
- 如請求項2之視訊處理電路,其中,該視訊串流係一第一視訊串流,該視訊處理電路更依序產生一第二視訊串流及一第三視訊串流,當該第二視訊串流之幀率小於該第三視訊串流之幀率時,該圖像處理電路處理該第二影像區塊,但該視訊編碼電路不編碼該第二影像區塊。
- 如請求項2之視訊處理電路,其中,該視訊串流係一第一視訊串流,該視訊處理電路更依序產生一第二視訊串流及一第三視訊串流,當該第二視訊串流之幀率大於該第三視訊串流之幀率時,該視訊編碼電路編碼該第二影像區塊,但該圖像處理電路不處理該第二影像區塊。
- 如請求項1之視訊處理電路,其中,該圖像處理電路更將該第二影像區塊存入該外部記憶體,且該第一幀的解析度不等於該第二幀的解析度。
- 如請求項6之視訊處理電路,其中,該記憶體更儲存一第三影像區塊,該第三影像區塊是該第一幀的一部分且與該第一影像區塊相鄰,該圖像處理電路執行以下操作: 計算該第一影像區塊之X個像素與該第三影像區塊之Y個像素的平均值,X及Y皆為正整數,該X個像素及該Y個像素係該第一幀中同一列之連續的像素。
- 如請求項6之視訊處理電路,其中,該記憶體更儲存一第三影像區塊,該第三影像區塊是該第一幀的一部分且與該第一影像區塊相鄰,該圖像處理電路執行以下操作: (A)對該第一影像區塊之X個像素進行計算,以產生一計算結果;以及 (B)同時對該計算結果及該第三影像區塊之Y個像素進行計算; 其中,X及Y皆為正整數,且該X個像素及該Y個像素係該第一幀中同一列之連續的像素。
- 如請求項6之視訊處理電路,其中,該第一幀係由該圖像處理電路產生。
- 如請求項6之視訊處理電路,其中,該第一幀非由該圖像處理電路產生,且該第一幀係一縮放操作的結果。
- 如請求項1之視訊處理電路,其中,在該圖像處理電路及該視訊編碼電路分別產生該第二影像區塊及該視訊串流的該部分之前,該控制電路只將該第一影像區塊寫入該記憶體一次。
- 一種視訊處理方法,用來根據一第一幀產生一視訊串流,該視訊處理方法包含: 從一外部記憶體讀取一第一影像區塊,並將該第一影像區塊儲存至一記憶體,該第一影像區塊係該第一幀的一部分; 一縮放操作,係從該記憶體讀取該第一影像區塊,並且處理該第一影像區塊以產生一第二影像區塊,其中,該第二影像區塊係一第二幀的一部分,且該第二幀不等於該第一幀;以及 一編碼操作,係從該記憶體讀取該第一影像區塊,並且編碼該第一影像區塊以產生該視訊串流的一部分。
- 如請求項12之視訊處理方法,更包含: 將該第二影像區塊存入該外部記憶體; 從該外部記憶體讀取該第二影像區塊;以及 將該第二影像區塊儲存至該記憶體。
- 如請求項12之視訊處理方法,更包含: 將該第二影像區塊存入該外部記憶體; 其中,該第一幀的解析度不等於該第二幀的解析度。
- 如請求項14之視訊處理方法,其中,該記憶體更儲存一第三影像區塊,該第三影像區塊是該第一幀的一部分且與該第一影像區塊相鄰,該縮放操作更包含: 計算該第一影像區塊之X個像素與該第三影像區塊之Y個像素的平均值,X及Y皆為正整數,該X個像素及該Y個像素係該第一幀中同一列之連續的像素。
- 如請求項14之視訊處理方法,其中,該記憶體更儲存一第三影像區塊,該第三影像區塊是該第一幀的一部分且與該第一影像區塊相鄰,該縮放操作更包含: (A)對該第一影像區塊之X個像素進行計算,以產生一計算結果;以及 (B)同時對該計算結果及該第三影像區塊之Y個像素進行計算; 其中,X及Y皆為正整數,且該X個像素及該Y個像素係該第一幀中同一列之連續的像素。
- 如請求項12之視訊處理方法,其中,在該縮放操作及該編碼操作分別產生該第二影像區塊及該視訊串流的該部分之前,該第一影像區塊只被寫入該記憶體一次。
- 一種視訊處理方法,用來產生一第一視訊串流及一第二視訊串流,該視訊處理方法包含: 從一外部記憶體讀取一第一幀的一第一影像區塊,並將該第一影像區塊儲存至一內部記憶體; 處理該第一影像區塊以產生一第二影像區塊,該第二影像區塊係一第二幀的一部分,該第二幀不等於該第一幀; 將該第二影像區塊儲存至該外部記憶體; 編碼該第一影像區塊以產生該第一視訊串流的一部分; 從該外部記憶體讀取該第二影像區塊,並將該第二影像區塊儲存至該內部記憶體;以及 編碼該第二影像區塊以產生該第二視訊串流的一部分。
- 如請求項18之視訊處理方法,其中,該第一幀的解析度不等於該第二幀的解析度。
- 如請求項18之視訊處理方法,其中,該外部記憶體係一動態隨機存取記憶體,而該內部記憶體係一靜態隨機存取記憶體。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW111107995A TWI823281B (zh) | 2022-03-04 | 2022-03-04 | 視訊處理電路與視訊處理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW111107995A TWI823281B (zh) | 2022-03-04 | 2022-03-04 | 視訊處理電路與視訊處理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202337223A true TW202337223A (zh) | 2023-09-16 |
TWI823281B TWI823281B (zh) | 2023-11-21 |
Family
ID=88927386
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111107995A TWI823281B (zh) | 2022-03-04 | 2022-03-04 | 視訊處理電路與視訊處理方法 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI823281B (zh) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8009729B2 (en) * | 2005-11-30 | 2011-08-30 | Qualcomm Incorporated | Scaler architecture for image and video processing |
TWM306366U (en) * | 2006-08-30 | 2007-02-11 | Beacon Advanced Technology Co | Video integrated circuit and video processing apparatus thereof |
TWI512675B (zh) * | 2013-10-02 | 2015-12-11 | Mstar Semiconductor Inc | 影像處理裝置與方法 |
-
2022
- 2022-03-04 TW TW111107995A patent/TWI823281B/zh active
Also Published As
Publication number | Publication date |
---|---|
TWI823281B (zh) | 2023-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10943166B2 (en) | Pooling operation device and method for convolutional neural network | |
JP2019023900A (ja) | 画像信号プロセッサのための仮想ラインバッファ | |
US20180232621A1 (en) | Operation device and method for convolutional neural network | |
JP2013055529A (ja) | 固体撮像装置及びその駆動方法 | |
CN110519603B (zh) | 一种实时视频缩放的硬件电路及其缩放方法 | |
JP5359569B2 (ja) | メモリのアクセス方法 | |
JP2007072928A (ja) | 半導体記憶装置及びそれを用いた半導体集積回路システム並びに半導体記憶装置の制御方法 | |
JP5633355B2 (ja) | データ転送装置、データ転送方法、及び半導体装置 | |
TWI823281B (zh) | 視訊處理電路與視訊處理方法 | |
WO2009116115A1 (ja) | メモリコントローラ及びそれを使用したメモリシステム | |
US20170270979A1 (en) | Methods and systems for parallel column twist interleaving | |
CN110060196B (zh) | 图像处理方法及装置 | |
CN114785968A (zh) | 视频信号处理电路与视频信号处理方法 | |
KR102247741B1 (ko) | 이미지 프로세서, 상기 이미지 프로세서의 동작 방법, 및 상기 이미지 프로세서를 포함하는 애플리케이션 프로세서 | |
JP2008077418A (ja) | メモリアクセス装置 | |
JP5035344B2 (ja) | 動的再構成プログラム、該プログラムを記録した記録媒体、動的再構成装置および動的再構成方法 | |
US7928987B2 (en) | Method and apparatus for decoding video data | |
CN109767380B (zh) | 一种图形处理器图像缩放电路及方法 | |
JP5196946B2 (ja) | 並列処理装置 | |
US6717695B1 (en) | Method and circuit for the production of compressed or expanded images, and printer with such circuit | |
CN104657937A (zh) | 一种基于edma的图像放大的方法及装置 | |
TW200830862A (en) | Method and/or apparatus for implementing reduced bandwidth high performance vc1 intensity compensation | |
Desmouliers et al. | FPGA-based design of a high-performance and modular video processing platform | |
CN114862659A (zh) | 图像直方图生成方法、装置、电子设备及存储介质 | |
JP2008059717A (ja) | 半導体装置 |