TW202412523A - 視訊解碼裝置、其操作方法以及視訊系統 - Google Patents
視訊解碼裝置、其操作方法以及視訊系統 Download PDFInfo
- Publication number
- TW202412523A TW202412523A TW112129601A TW112129601A TW202412523A TW 202412523 A TW202412523 A TW 202412523A TW 112129601 A TW112129601 A TW 112129601A TW 112129601 A TW112129601 A TW 112129601A TW 202412523 A TW202412523 A TW 202412523A
- Authority
- TW
- Taiwan
- Prior art keywords
- pipeline
- unit
- block
- memory
- unit data
- Prior art date
Links
- 238000011017 operating method Methods 0.000 title claims 6
- 230000015654 memory Effects 0.000 claims abstract description 301
- 238000000034 method Methods 0.000 claims description 60
- 239000000872 buffer Substances 0.000 claims description 41
- 230000008569 process Effects 0.000 claims description 40
- 239000013598 vector Substances 0.000 claims description 32
- 238000013139 quantization Methods 0.000 claims description 13
- 230000008521 reorganization Effects 0.000 claims description 9
- 238000010586 diagram Methods 0.000 description 31
- 235000019161 pantothenic acid Nutrition 0.000 description 12
- 238000000638 solvent extraction Methods 0.000 description 11
- 230000009466 transformation Effects 0.000 description 9
- 230000006835 compression Effects 0.000 description 5
- 238000007906 compression Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000003044 adaptive effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 101001121408 Homo sapiens L-amino-acid oxidase Proteins 0.000 description 1
- 101000827703 Homo sapiens Polyphosphoinositide phosphatase Proteins 0.000 description 1
- 102100026388 L-amino-acid oxidase Human genes 0.000 description 1
- 102100023591 Polyphosphoinositide phosphatase Human genes 0.000 description 1
- 101100012902 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) FIG2 gene Proteins 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000011112 process operation Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Abstract
一種視訊解碼裝置包括:解碼器,包括多個硬體區塊及多個管線記憶體,所述多個硬體區塊按管線單元來對位元串流實行解碼處理,所述多個管線記憶體設置於硬體區塊之間且針對每一管線階段來儲存利用由硬體區塊按管線單元實行的處理而獲得的單元資料;以及記憶體,儲存利用由解碼器進行的解碼而獲得的影像資料。
Description
[相關申請案的交叉參考]
本申請案是基於在2022年9月5日在韓國智慧財產局提出申請的韓國專利申請案第10-2022-0112338號及在2022年11月14日在韓國智慧財產局提出申請的韓國專利申請案第10-2022-0151989號並根據35 U.S.C. §119主張各所述韓國專利申請案的優先權,所述韓國專利申請案中的每一者的揭露內容全文併入本案供參考。
本揭露是有關於一種電子裝置,且更具體而言是有關於一種用於按管線單元來實行解碼操作的視訊解碼裝置、其操作方法、顯示裝置以及視訊系統。
在影像或聲音變換成數位資料的情形中,數位資料的量非常大。經解壓縮的數位資料佔用大的儲存空間。因此,需要一種用於對數位資料進行壓縮且對經壓縮的數位資料進行解壓縮的技術。
近來,基於新的視訊壓縮標準(例如,通用視訊寫碼(versatile video coding,VVC)),區塊的處理單元已變得更多樣化,運動估計及補償方法已變得較相關技術中的方法更複雜,且運動補償(motion compensation,MC)所需的記憶體存取量已相較於相關技術中所使用的記憶體存取量而增加。因此,在視訊解碼器中需要高效的記憶體存取方法。
一態樣是提供一種用於使用相對小的管線記憶體(pipeline memory,PM)來實行解碼操作的視訊解碼裝置、其操作方法、顯示裝置以及視訊系統。
根據一或多個實施例的一態樣,提供一種視訊解碼裝置,所述視訊解碼裝置包括:解碼器,包括多個硬體區塊及多個管線記憶體,所述多個硬體區塊被配置成按管線單元(pipeline unit)來對位元串流實行解碼處理,所述多個管線記憶體設置於所述多個硬體區塊之間且被配置成針對每一管線階段(pipeline stage)來儲存由所述多個硬體區塊以管線單元處理的單元資料;以及記憶體,被配置成儲存由解碼器解碼的影像資料,其中單元資料包括當前寫碼單元(coding unit,CU)大小資訊、下一CU位置資訊及掃描類型資訊,當前CU大小資訊表示當前CU的大小,所述當前CU包括寫碼樹單元(coding tree unit,CTU)中所包括的多個單元畫素群組(unit pixel group)之中與管線區域單元(pipeline area unit,PAU)對應的單元畫素群組,下一CU位置資訊表示和包括所述單元畫素群組的當前CU挨著的CU的位置,掃描類型資訊表示單元畫素群組的掃描類型。
根據一或多個實施例的另一態樣,提供一種視訊解碼裝置的操作方法,所述操作方法包括:在第一管線階段期間,藉由第一硬體區塊來處理位元串流的在第一管線階段中按管線單元劃分的第一單元資料並且將第一單元資料儲存於第一管線記憶體中;在緊接地位於第一管線階段之後的第二管線階段期間,藉由第一硬體區塊來處理在第二管線階段中按管線單元劃分的第二單元資料並且將第二單元資料儲存於第一管線記憶體中;以及在藉由第一硬體區塊來處理第二單元資料的同時,藉由第二硬體區塊來讀取並處理儲存於第一管線記憶體中的第一單元資料。
根據一或多個實施例的又一態樣,提供一種視訊系統,所述視訊系統包括:視訊編碼裝置,被配置成提供包含關於管線區域單元的管線區域單元資訊的位元串流;以及視訊解碼裝置,被配置成對位元串流進行解碼並輸出經解碼影像資料。視訊解碼裝置包括:多個硬體區塊,被配置成處理按管線單元劃分的單元資料;以及多個管線記憶體,各自具有與管線區域單元資訊對應的記憶體大小,所述多個管線記憶體被配置成儲存所處理的單元資料。
根據一或多個實施例的又一態樣,提供一種顯示裝置,所述顯示裝置包括:解碼器,包括多個硬體區塊及多個管線記憶體,所述多個硬體區塊被配置成按管線單元來對位元串流實行解碼處理,所述多個管線記憶體設置於所述多個硬體區塊之間且被配置成針對每一管線階段來儲存與自所述多個硬體區塊提供的管線區域單元對應的單元資料;記憶體,被配置成儲存利用由解碼器進行的解碼而獲得的影像資料;以及顯示模組,被配置成基於影像資料來顯示影像。
在下文中,將參照附圖詳細闡述各種實施例。
圖1是根據一些實施例的視訊系統10的方塊圖。
參照圖1,視訊系統10可包括視訊編碼裝置100及視訊解碼裝置200。
視訊編碼裝置100可對視訊資料進行編碼,且可傳輸經編碼的位元串流BS。在一些實施例中,編碼可包括壓縮以及轉碼(transcoding)。視訊編碼裝置100可被實施為各自包括具有攝影功能的照相機的電子裝置(例如電腦、可攜式電話、眼鏡及手錶)。在此種情形中,視訊編碼裝置100可對藉由攝影而產生的視訊資料進行編碼。在一些實施例中,視訊編碼裝置100可自伺服器或另一電子裝置接收視訊資料,且可對所接收的視訊資料進行編碼。藉由視訊資料來表達的視訊可被稱為影像或圖片。
視訊編碼裝置100可對視訊資料進行編碼。視訊編碼裝置100可對視訊資料進行壓縮,以減小視訊資料的容量。視訊編碼裝置100可對經變換的視訊資料進行量化。視訊編碼裝置100可使用經量化的視訊資料來產生位元串流BS。視訊編碼裝置100可藉由有線通訊或無線通訊將位元串流BS傳輸至視訊解碼裝置200。
在一些實施例中,位元串流BS可包括關於管線區域單元的管線區域單元資訊。以下參照圖11闡述位元串流BS的實施例。
視訊解碼裝置200可對經編碼的位元串流BS進行解碼以向使用者提供影像。視訊解碼裝置200可對位元串流BS進行解碼以恢復視訊資料。視訊解碼裝置200可輸出經解碼影像資料DPD。經解碼影像資料DPD可被提供至可顯示影像的裝置(例如,顯示裝置)。
視訊解碼裝置200可包括解碼器210及記憶體220。
解碼器210可對位元串流BS進行解壓縮以恢復視訊資料。解碼器210可使用藉此接收的位元串流BS來擷取變換係數(transformation coefficient),且可對所擷取的變換係數實行逆變換及量化操作(inverse transformation and quantization operation)以恢復視訊資料。變換係數可為藉由將位元串流BS中所包含的係數變換成二維(two-dimensional,2D)形式而獲得的係數。
在一些實施例中,解碼器210可按管線單元來對位元串流BS進行解碼,且可輸出經解碼影像資料DPD。在一些實施例中,利用按管線單元實行的解碼而獲得的資料可被稱為單元資料。根據一些實施例的單元資料可對應於管線區域單元。管線區域單元可為與具有預定大小的管線單元對應的區,或者可為包括預定數目個單元畫素群組的區。一個寫碼樹單元(CTU)中可包括一或多個管線區域單元。以下參照圖8A至圖8E來闡述管線區域單元。
解碼器210可藉由一或多個處理器來實施。解碼器210可為嵌置於處理器中的程式。
記憶體220可儲存經解碼影像資料DPD。記憶體220可儲存供解碼器210用於補償運動的參考影像資料。記憶體220可儲存表示在解碼器210中使用的參考畫素值的資料。
記憶體220可儲存用於支援視訊解碼裝置200的各種功能的程式及資料,可儲存多條輸入/輸出資料,且可儲存由視訊解碼裝置200驅動的多個應用程式或應用以及用於視訊解碼裝置200的操作的多條資料及指令。
記憶體220可包括快閃記憶體、隨機存取記憶體(random access memory,RAM)、靜態隨機存取記憶體(static random access memory,SRAM)、可程式化唯讀記憶體(programmable read-only memory,PROM)及/或磁記憶體(magnetic memory)中的至少一種類型的儲存媒體。
圖2是根據一些實施例的解碼器210的方塊圖。
參照圖2,解碼器210可包括多個硬體區塊211、213、215及217以及多個管線記憶體212及214。
所述多個硬體區塊211、213、215及217可對按管線單元劃分的單元資料實行解碼處理。解碼處理可為基於每一硬體區塊的唯一功能來處理單元資料的操作。所述多個硬體區塊211、213、215及217中的每一者可為實行唯一功能的硬體元件。硬體區塊211、213、215及217的數目可為n數目。在一些實施例中,n可為2或大於2的整數。
所述多個硬體區塊211、213、215及217中的每一者可在對應的管線記憶體中儲存(或寫入)所處理的單元資料。所述多個硬體區塊211、213、215及217中的每一者可讀取儲存於對應的管線記憶體中的單元資料,且可對所讀取的單元資料實行解碼處理。為此,所述多個硬體區塊211、213、215及217中的每一者可包括能夠對一或多個對應的管線記憶體進行存取的直接記憶體存取(direct memory access,DMA)以及實行唯一功能的引擎。
所述多個管線記憶體212及214可儲存藉由利用所述多個硬體區塊211、213、215及217進行的處理而獲得的單元資料。所述多個管線記憶體212及214可輸出藉由利用所述多個硬體區塊211、213、215及217進行的處理而獲得的單元資料。在一些實施例中,在特定管線階段中,所述多個管線記憶體212及214可儲存特定單元資料,且同時可輸出先前所儲存的其他單元資料。管線階段可表示解碼器210按管線單元來實行解碼操作的操作階段及操作週期。
管線單元可為輸入至每一管線記憶體或自每一管線記憶體輸出的一個單元的單元資料。管線單元可被稱為虛擬管線資料單元(virtual pipeline data unit,VPDU)。
管線記憶體212及214的數目可為m數目。在一些實施例中,m可為小於或等於n的整數。在一些實施例中,所述多個管線記憶體(例如,第一管線記憶體212及第二管線記憶體214)中的每一者可佈置(或設置)於所述多個硬體區塊(例如,第一硬體區塊211、第二硬體區塊213、第三硬體區塊215及第n硬體區塊217)中的兩個相鄰的硬體區塊之間。舉例而言,在實施例中,第一管線記憶體212可設置於第一硬體區塊211與第二硬體區塊213之間,第二管線記憶體214可設置於第二硬體區塊213與第三硬體區塊215之間,等等。第n-1硬體區塊(未示出)與第n硬體區塊217之間亦可設置有管線記憶體(未示出)。如上所述,兩個不同的硬體區塊之間可設置有至少一個管線記憶體。
在一些實施例中,所述多個管線記憶體212及214可各自具有與位元串流BS中所包括的管線區域單元資訊對應的記憶體大小,以儲存單元資料。舉例而言,當管線區域單元資訊包括與一個CTU中的32*32個畫素(或被稱為32*32畫素數目)對應的管線區域單元的大小時,所述多個管線記憶體212及214中的每一者可具有對應於32*32個畫素的記憶體大小。然而,實施例並非僅限於此。
在一些實施例中,所述多個管線記憶體212及214可針對每一管線階段來儲存利用由所述多個硬體區塊211、213、215及217按管線單元實行的處理而獲得的單元資料。
在一些實施例中,所述多個管線記憶體212及214可針對每一管線階段來儲存與自所述多個硬體區塊211、213、215及217提供的管線區域單元對應的單元資料。
所述多個管線記憶體212及214中的每一者可被實施為RAM或SRAM,但實施例並非僅限於此。
如上所述,由於無論視訊壓縮方案或樹劃分模式(tree division mode)如何,解碼操作均是按相對小的管線單元實行,因此管線記憶體的大小及儲存容量可減小。
圖3A至圖3C是根據一些實施例的用於闡述管線記憶體的圖。詳言之,圖3A是示出在特定管線階段中進行操作的管線記憶體的圖,圖3B是示出在和所述特定管線階段挨著的管線階段中進行操作的管線記憶體的圖,且圖3C是示出在和圖3B所示管線階段挨著的管線階段中進行操作的管線記憶體的圖。舉例而言,在實施例中,圖3A至圖3C可示出第一管線記憶體212貫穿彼此相繼的三個相繼的管線階段進行的操作。
參照圖3A,管線記憶體300可設置於不同的硬體區塊之間。舉例而言,參照圖2,管線記憶體300可為設置於第一硬體區塊211與第二硬體區塊213之間的第一管線記憶體212。然而,實施例並非僅限於此。
在一些實施例中,管線記憶體300可包括第一記憶體310及第二記憶體320。第一記憶體310及第二記憶體320中的每一者可儲存單元資料。第一記憶體310及第二記憶體320中的每一者可輸出儲存於其中的單元資料。
在一些實施例中,在特定管線階段中,設置於管線記憶體300的前端處的硬體區塊可處理第一單元資料UD 1。管線記憶體300可被提供來自設置於管線記憶體300的前端處的硬體區塊的第一單元資料UD 1。舉例而言,可假定管線記憶體300是第一管線記憶體212。在第一管線階段中,管線記憶體300可被提供藉由利用第一硬體區塊211進行的處理而獲得的第一單元資料UD 1。第一硬體區塊211可將第一單元資料UD 1儲存於第一記憶體310中。在實施例中,第二記憶體320可為空的(empty)。當第二記憶體320為空的時,設置於管線記憶體300的後端處的硬體區塊(例如,第二硬體區塊213)可等待單元資料。然而,實施例並非僅限於此,且在其他實施例中,藉由利用設置於管線記憶體300的前端處的硬體區塊(例如,第一硬體區塊211)進行的處理而獲得的單元資料可儲存於第二記憶體320中。
參照圖3B,在特定管線階段之後的管線階段中,設置於管線記憶體300的前端處的硬體區塊可處理第二單元資料UD 2。管線記憶體300可被提供第二單元資料UD 2。舉例而言,可假定管線記憶體300是第一管線記憶體212。在第二管線階段中,管線記憶體300可被提供藉由利用第一硬體區塊211進行的處理而獲得的第二單元資料UD 2。第一硬體區塊211可將第二單元資料UD 2儲存於第二記憶體320中。此外,設置於管線記憶體300的後端處的硬體區塊可讀取在前一管線階段中儲存於管線記憶體300中的單元資料。舉例而言,可假定管線記憶體300是第一管線記憶體212。在第二管線階段中,第二硬體區塊213可讀取儲存於第一記憶體310中的第一單元資料UD 1,且可處理第一單元資料UD 1。在實施例中,可同時執行將第二單元資料UD 2儲存於第二記憶體320中的操作與自第一記憶體310輸出第一單元資料UD 1的操作。詳言之,舉例而言,第一硬體區塊211可處理第二單元資料UD 2以將所處理的第二單元資料UD 2儲存於第二記憶體320中,且同時,第二硬體區塊213可處理第一單元資料UD 1。在一些實施例中,第一硬體區塊211可處理第二單元資料UD 2並且將所處理的第二單元資料UD 2儲存於第二記憶體320中,且同時,第二硬體區塊213可自第一記憶體310讀取第一單元資料UD1並且處理第一單元資料UD 1。
參照圖3C,在圖3B所示管線階段之後的管線階段中,設置於管線記憶體300的前端處的硬體區塊可處理第三單元資料UD 3。管線記憶體300可被提供第三單元資料UD 3。舉例而言,可假定管線記憶體300是第一管線記憶體212。在第三管線階段中,管線記憶體300可被提供利用由第一硬體區塊211進行的處理而獲得的第三單元資料UD 3。第一硬體區塊211可將第三單元資料UD 3儲存於第一記憶體310中。在此種情形中,可抹除在圖3A所示管線階段中儲存於第一記憶體310中的第一單元資料UD 1。亦即,第三單元資料UD 3可重寫第一記憶體310中的第一單元資料UD 1。此外,設置於管線記憶體300的後端處的硬體區塊(例如,第二硬體區塊213)可讀取儲存於第二記憶體320中的第二單元資料UD 2並且可處理第二單元資料UD 2。此時,可同時執行將第三單元資料UD 3儲存於第一記憶體310中的操作與自第二記憶體320輸出第二單元資料UD 2的操作。
作為實例,使用第一管線記憶體212作出了對圖3A至圖3C的以上說明。然而,此項技術中具有通常知識者將理解,第二管線記憶體214至第m管線記憶體m貫穿所述三個相繼的管線階段以相似的方式進行操作。在本文中,以上參照圖3A至圖3C使用的「第一」、「第二」及「第三」可用於區分元件及用語,且其次序不受「第一」、「第二」及「第三」所限制。
圖4是根據一些實施例的視訊解碼裝置400的方塊圖。
參照圖4,視訊解碼裝置400可對應於圖1中所示的視訊解碼裝置200。視訊解碼裝置400可包括位元串流剖析區塊411、逆量化變換(inverse quantization transformation,IQT)區塊412、運動向量區塊(motion vector,MV)413、訊框內模式區塊(intra mode block)414、運動補償區塊(MC)415、訊框間預測區塊(inter prediction block)416、訊框內預測及重組(intra prediction and recon block)區塊417、迴路過濾器區塊(loop filter block)418、第一管線記憶體(PM1)421至第九管線記憶體(PM9)429以及記憶體430。
位元串流剖析區塊411、IQT區塊412、運動向量區塊413、訊框內模式區塊414、運動補償區塊415、訊框間預測區塊416、訊框內預測及重組區塊417以及迴路過濾器區塊418可包括於以上參照圖2闡述的所述多個硬體區塊211、213、215及217中。亦即,在圖4中所示的實例中,硬體區塊的數目n可被設定為8。
位元串流剖析區塊411可對位元串流BS進行剖析。位元串流剖析區塊411可針對每一語法來對位元串流BS進行剖析。剖析可包括上下文自適應可變長度解碼(context adaptive variable length decoding,CAVLD)及上下文自適應二進制算術解碼(context adaptive binary arithmetic decoding,CABAD)。位元串流剖析區塊411可被稱為熵解碼區塊(entropy decoding block)。
位元串流剖析區塊411可對位元串流BS實行熵解碼,以獲得包含於位元串流BS中的各條資訊。包含於位元串流BS中的所述各條資訊可包括例如經量化係數、經解碼寫碼參數、訊框間預測參數、訊框內預測參數、變換參數、經量化參數、迴路過濾器參數及/或其他語法。訊框間預測參數可包括例如參考影像索引(reference image index)及運動向量。訊框內預測參數可包括例如訊框內預測模式或索引。
在一些實施例中,位元串流剖析區塊411可按管線單元來對位元串流BS進行剖析,並且可將所剖析的結果儲存於第一管線記憶體421及第二管線記憶體422的每一者中。利用由位元串流剖析區塊411進行的處理而獲得的單元資料可儲存於第一管線記憶體421及第二管線記憶體422中。第一管線記憶體421可設置於位元串流剖析區塊411與IQT區塊412之間。第二管線記憶體422可設置於位元串流剖析區塊411與運動向量區塊413之間。
IQT區塊412可對所剖析的位元串流BS進行逆量化,並且可對經逆量化的結果實行逆變換。在一些實施例中,IQT區塊412可按管線單元來對所剖析的位元串流BS進行逆量化,並且可按管線單元來對經逆量化的結果實行逆變換。在一些實施例中,IQT區塊412可讀取儲存於第一管線記憶體421中的單元資料。IQT區塊412可被稱為逆量化及逆變換區塊。在一些實施例中,IQT區塊412可將逆量化及逆變換的結果儲存於第三管線記憶體423中。利用由IQT區塊412進行的處理而獲得的單元資料可儲存於第三管線記憶體423中。第三管線記憶體423可設置於IQT區塊412與訊框內預測及重組區塊417之間。
運動向量區塊413可基於自第二管線記憶體422獲得的單元資料來獲得運動向量。在一些實施例中,運動向量區塊413可處理按管線單元劃分的單元資料,以獲得運動向量。在一些實施例中,運動向量區塊413可將運動向量的單元資料儲存於第四管線記憶體424及第五管線記憶體425中的每一者中。第四管線記憶體424可設置於運動向量區塊413與訊框內模式區塊414之間。第五管線記憶體425可設置於運動向量區塊413與運動補償區塊415之間。
訊框內模式區塊414可基於運動向量來確定關於當前視訊片段(current video slice)的視訊區塊的預測資訊。訊框內模式區塊414可使用預測資訊來產生與正被解碼的當前視訊區塊對應的預測區塊。舉例而言,訊框內模式區塊414可使用一些語法來確定用於對視訊片段的視訊區塊進行寫碼的預測模式(例如,訊框內預測或訊框間預測)。訊框內模式區塊414可使用一些語法來確定訊框間預測片段類型(例如,B圖片(B picture,B)片段、P圖片(P picture,P)片段或廣義PB圖片(generalized P and B picture,GPB)片段)。訊框內模式區塊414可使用一些語法來確定關於與片段對應的參考影像列表中的一或多者的配置資訊。訊框內模式區塊414可使用一些語法來確定與每一片段的訊框間經編碼視訊區塊(inter encoded video block)對應的運動向量。訊框內模式區塊414可使用一些語法來確定每一片段的訊框間經寫碼視訊區塊(inter coded video block)的訊框間預測狀態。訊框內模式區塊414可使用一些語法來確定用於對當前視訊片段中的視訊區塊進行解碼的其他資訊。
在一些實施例中,訊框內模式區塊414可處理按管線單元劃分的單元資料,並且可將單元資料儲存於第六管線記憶體426中。第六管線記憶體426可設置於訊框內模式區塊414與訊框內預測及重組區塊417之間。
運動補償區塊415可使用與儲存於第五管線記憶體425中的單元資料對應的運動向量對一或多個參考影像實行運動補償,藉此產生預測影像。由於參考影像的參考影像資料的大小相對大,因此參考影像資料可儲存於記憶體430中。運動向量可表示當在當前寫碼單元中自參考影像(或參考訊框)實行運動預測時關於最相似區(most similar region)的位置資訊。在一些實施例中,運動補償區塊415可將與預測影像對應的單元資料儲存於第七管線記憶體427中。第七管線記憶體427可設置於運動補償區塊415與訊框間預測區塊416之間。
訊框間預測區塊416可基於儲存於第七管線記憶體427中的單元資料來實行訊框間預測。作為實行訊框間預測的結果,可產生與寫碼單元對應的預測區塊。訊框間預測可被稱為根據先前經寫碼的圖片的資料來預測寫碼單元的操作。在一些實施例中,訊框間預測區塊416可在第八管線記憶體428中儲存與訊框間預測的結果對應的單元資料。第八管線記憶體428可設置於訊框間預測區塊416與訊框內預測及重組區塊417之間。
訊框內預測及重組區塊417可基於儲存於第三管線記憶體423、第六管線記憶體426及第八管線記憶體428中的多條單元資料來實行訊框內預測,並且可對儲存於第三管線記憶體423、第六管線記憶體426及第八管線記憶體428中的多條單元資料或樣本值進行求和,以對樣本進行重組態。一般而言,訊框內預測可被稱為根據同一圖片的先前經寫碼的資料來預測寫碼單元的操作。在一些實施例中,訊框內預測及重組區塊417可將與重組態結果對應的單元資料儲存於第九管線記憶體429中。第九管線記憶體429可設置於訊框內預測及重組區塊417與迴路過濾器區塊418之間。
迴路過濾器區塊418可包括解塊過濾器(deblock filter)(未示出),所述解塊過濾器減少在恢復位元串流BS時發生的編塊現象(blocking phenomenon)。當迴路過濾器區塊418的旗標(flag)被啟用時,迴路過濾器區塊418可將在過濾之後利用解碼而獲得的影像資料儲存於記憶體430中。舉例而言,當迴路過濾器區塊418的旗標未被啟用時,迴路過濾器區塊418可將在訊框間預測或訊框內模式預測之後立即恢復的影像資料儲存於記憶體430中。迴路過濾器區塊418可被稱為迴路內過濾器(in-loop filter)。
記憶體430可儲存經解碼影像資料及參考影像資料。記憶體430亦可被稱為經解碼圖片緩衝器(decoded picture buffer,DPB)。
第一管線記憶體421至第九管線記憶體429可包括於以上參照圖2闡述的所述多個管線記憶體212及214中。
在一些實施例中,第一管線記憶體421至第九管線記憶體429可儲存當前寫碼單元(CU)大小資訊、下一CU位置資訊及掃描類型資訊。當前CU大小資訊可包括表示當前CU的大小的資料,所述當前CU包括CTU中所包括的多個單元畫素群組之中與管線區域單元對應的單元畫素群組。以下參照圖7A至圖7E闡述單元畫素群組。下一CU位置資訊可包括表示和包括與管線區域單元對應的單元畫素群組中的每一者的當前CU挨著的CU的位置的資料。掃描類型資訊可包括表示單元畫素群組的掃描類型的資料。舉例而言,掃描類型可為z掃描(z-scan)。作為另一實例,掃描類型可為光柵掃描(raster-scan)。然而,實施例並非僅限於此。在一些實施例中,第一管線記憶體421及第二管線記憶體422可進一步儲存表示經解碼資訊的資料。第三管線記憶體423可進一步儲存表示殘差(residual)的資料。第四管線記憶體424至第六管線記憶體426可進一步儲存表示訊框內模式及運動向量的資料。第七管線記憶體427至第九管線記憶體429可進一步儲存表示畫素值的資料。此外,第七管線記憶體427可進一步儲存表示參考畫素值(或參考影像或參考訊框)的資料。
圖5是根據一些實施例的用於闡述按管線單元進行的解碼處理操作的圖。
參照圖4及圖5,在第一管線階段PSTG 1中,位元串流剖析區塊411可處理第一單元資料UD 1,並且可將所處理的第一單元資料UD 1儲存於第一管線記憶體421及第二管線記憶體422中。此外,IQT區塊412、運動向量區塊413、訊框內模式區塊414、運動補償區塊415、訊框間預測區塊416、訊框內預測及重組區塊417以及迴路過濾器區塊418可等待單元資料。
在第二管線階段PSTG 2中,位元串流剖析區塊411可處理第二單元資料UD 2,並且可將所處理的第二單元資料UD 2儲存於第一管線記憶體421及第二管線記憶體422中。IQT區塊412及運動向量區塊413可讀取分別儲存於第一管線記憶體421及第二管線記憶體422中的第一單元資料UD 1,可處理第一單元資料UD 1,且可將第一單元資料UD 1儲存於第三管線記憶體423至第五管線記憶體425中。訊框內模式區塊414、運動補償區塊415、訊框間預測區塊416、訊框內預測及重組區塊417以及迴路過濾器區塊418可等待單元資料。
在第三管線階段PSTG 3中,位元串流剖析區塊411可處理第三單元資料UD 3,並且可將所處理的第三單元資料UD 3儲存於第一管線記憶體421及第二管線記憶體422中。IQT區塊412及運動向量區塊413可讀取分別儲存於第一管線記憶體421及第二管線記憶體422中的第二單元資料UD 2,可處理第二單元資料UD 2,且可將第二單元資料UD 2儲存於第三管線記憶體423至第五管線記憶體425中。訊框內模式區塊414及運動補償區塊415可讀取儲存於第四管線記憶體424至第五管線記憶體425中的第一單元資料UD 1,可處理第一單元資料UD 1,且可將第一單元資料UD 1儲存於第六管線記憶體426及第七管線記憶體427中。訊框間預測區塊416、訊框內預測及重組區塊417以及迴路過濾器區塊418可等待單元資料。
在第四管線階段PSTG 4中,位元串流剖析區塊411可處理第四單元資料UD 4,並且可將所處理的第四單元資料UD 4儲存於第一管線記憶體421及第二管線記憶體422中。IQT區塊412及運動向量區塊413可讀取分別儲存於第一管線記憶體421及第二管線記憶體422中的第三單元資料UD 3,可處理第三單元資料UD 3,且可將第三單元資料UD 3儲存於第三管線記憶體423至第五管線記憶體425中。訊框內模式區塊414及運動補償區塊415可讀取儲存於第四管線記憶體424至第五管線記憶體425中的第二單元資料UD 2,可處理第二單元資料UD 2,且可將第二單元資料UD 2儲存於第六管線記憶體426及第七管線記憶體427中。訊框間預測區塊416及訊框內預測及重組區塊417可處理第一單元資料UD 1。迴路過濾器區塊418可等待單元資料。
在第五管線階段PSTG 5中,位元串流剖析區塊411可處理第五單元資料UD 5。IQT區塊412及運動向量區塊413可處理第四單元資料UD 4。訊框內模式區塊414及運動補償區塊415可讀取第三單元資料UD 3。訊框間預測區塊416以及訊框內預測及重組區塊417可處理第二單元資料UD 2。迴路過濾器區塊418可處理第一單元資料UD 1。
以相似的方式,在第六管線階段PSTG 6、第七管線階段PSTG 7及相繼地位於第七管線階段PSTG 7之後的管線階段中,硬體區塊(例如,411至418)可進行操作。
圖6是根據一些實施例的用於闡述CTU及CU的圖。
參照圖6,圖片(圖片(PICTURE))可被劃分成多個CTU。在圖片(圖片)中,對應於每一CTU的區的大小可為恆定的。然而,實施例並非僅限於此。舉例而言,一個CTU可包括64*64個畫素。作為另一實例,一個CTU可包括128*128個畫素。然而,實施例並非僅限於此。
一個CTU可包括多個CU。在圖片(圖片)中,對應於每一CTU的區可具有各種大小及形狀。因此,對於每一CU,每一CU中所包括的畫素的數目可為恆定的或不同的。
圖7A至圖7E是根據一些實施例的用於闡述樹劃分模式的圖。
參照圖7A至圖7E,基於樹劃分模式,一個CTU中可包括至少一個CU。如使用圖7A至圖7E中所示的粗線所示,不同的CU可彼此區分開。不同的CU可包括相同或不同數目的單元畫素群組UPXG。在圖7A至圖7E中,可假定一個CTU包括64*64個畫素,且一個單元畫素群組UPXG包括4*4個畫素。
根據圖7A中所示的樹劃分模式,一個CTU可包括第一CU CU 1至第五CU CU 5。第一CU CU 1中所包括的單元畫素群組UPXG的數目可與第三CU CU 3中所包括的單元畫素群組UPXG的數目及第五CU CU 5中所包括的單元畫素群組UPXG的數目相同。舉例而言,第一CU CU 1、第三CU CU 3及第五CU CU 5中的每一者中所包括的單元畫素群組UPXG的數目可為16*4,且每一單元畫素群組UPXG中所包括的畫素的數目可為4*4,且因此,第一CU CU 1、第三CU CU 3及第五CU CU 5中的每一者中所包括的畫素的數目可為64*16。第二CU CU 2中所包括的單元畫素群組UPXG的數目可與第四CU CU 4中所包括的單元畫素群組UPXG的數目相同。舉例而言,第一CU CU 1及第四CU CU 4中的每一者中所包括的單元畫素群組UPXG的數目可為16*2,且第二CU CU 2及第四CU CU 4中的每一者中所包括的畫素的數目可為64*8。
根據圖7B中所示的樹劃分模式,一個CTU可包括第一CU CU 1至第三CU CU 3。第一CU CU 1中所包括的單元畫素群組UPXG的數目可與第三CU CU 3中所包括的單元畫素群組UPXG的數目相同。舉例而言,第一CU CU 1及第三CU CU 3中的每一者中所包括的單元畫素群組UPXG的數目可為4*16,且第一CU CU 1及第三CU CU 3中的每一者中所包括的畫素的數目可為16*64。第二CU CU 2中所包括的單元畫素群組UPXG的數目可為8*16,且第二CU CU 2中所包括的畫素的數目可為32*64。
根據圖7C中所示的樹劃分模式,一個CTU可包括五個CU。根據圖7D中所示的樹劃分模式,一個CTU可包括十一個CU。根據圖7E中所示的樹劃分模式,一個CTU可包括十四個CU。圖7A至圖7E中所示的樹劃分模式僅是實例,且在一些實施例中,可提供與圖7A至圖7E中所示的CU數目及佈置不同的CU數目及佈置。
圖8A至圖8E是用於分別闡述圖7A至圖7E中所示樹劃分模式中的管線區域單元的實例的圖。
參照圖8A至圖8E,無論樹劃分模式如何,一個CTU中均可包括多個管線區域單元。管線區域單元可為與具有預定大小的管線單元對應的區,或者可為包括單元畫素群組UPXG的區。一個管線區域單元中所包括的單元畫素群組的數目可為例如64,且一個管線區域單元中所包括的畫素的數目可為1,024(或32*32)。然而,實施例並非僅限於此。管線區域單元可對應於多個管線記憶體212及214以及第一管線記憶體421至第九管線記憶體429中的每一者的記憶體大小。此外,每一單元資料可為其中欲對一個管線區域單元實行解碼處理的資料。
管線區域單元的數目可為例如4,但實施例並非僅限於此。在下文中,為說明方便起見,可假定管線區域單元的數目為4。如圖8A至圖8E中所示,第一管線區域單元PAU 1至第四管線區域單元PAU 4可在一個CTU中彼此區分開。
圖9是根據一些實施例的用於闡述通用視訊寫碼(VVC)編解碼器中的寫碼單元及管線區域單元的圖。
參照圖9,作為一種視訊編解碼器的VVC可為近來已開發的視訊壓縮標準。根據VVC的樹劃分模式,如圖9中所示,一個單元的CU可被進一步細分。基於VVC的樹劃分模式,在「SPLIT_TT_VER」及「SPLIT_TT_HOR」中,一個CTU可被劃分成奇數個CU。
圖10A至圖10D是根據一些實施例的用於闡述按管線單元來處理單元資料的操作的圖。
可假定圖10A至圖10D中所示樹劃分模式是圖7A及圖8A中所示樹劃分模式。此外,可假定圖10A至圖10D中所示管線區域單元是圖8A中所示第一管線區域單元PAU 1至第四管線區域單元PAU 4。此外,可假定第一管線記憶體212中包括圖10A至圖10D中所示多個緩衝器(緩衝器(BUFFERS))。此外,可假定圖10A至圖10D中所示實施例中的每一者基於第一管線階段PSTG 1至第五管線階段PSTG 5中的每一者中的第一硬體區塊211、第一管線記憶體212及第二硬體區塊213來進行操作。可假定圖10A至圖10D中所示掃描類型是z掃描。
參照圖10A至圖10D,每一管線記憶體可包括多個緩衝器(緩衝器)。舉例而言,參照圖2,所述多個管線記憶體212及214中的每一者可包括多個緩衝器(緩衝器)。舉例而言,參照圖4,第一管線記憶體421至第九管線記憶體429中的每一者可包括多個緩衝器(緩衝器)。每一緩衝器可對應於一個位址。一個位址可對應於單元畫素群組UPXG。亦即,每一緩衝器可儲存關於單元畫素群組UPXG的各條資訊。舉例而言,所述多個緩衝器(緩衝器)中的每一者可儲存當前CU大小資訊(當前CU大小(CURRENT CU SIZE))、下一CU位置資訊(下一CU位置(NEXT CU POSITION))、掃描類型資訊(掃描類型(SCAN TYPE))及其他資料(其他資訊(OTHER INFO))。當前CU大小資訊(當前CU大小)可包括關於當前CU的大小的資訊,所述當前CU包括與管線區域單元對應的單元畫素群組UPXG。下一CU位置資訊(下一CU位置)可包括關於和包括與管線區域單元對應的單元畫素群組UPXG的當前CU挨著的CU的位置的資訊。掃描類型資訊(掃描類型)可包括關於單元畫素群組UPXG的掃描類型的資訊。其他資料(其他資訊)可包括關於參考畫素值(或參考影像、參考訊框或類似值)、運動向量、畫素值及預測模式中的每一者的資訊。對於第一管線記憶體421至第九管線記憶體429中的每一者,可改變其他資料(其他資訊)。
參照圖10A,可在第一管線階段PSTG 1中實行對第一管線區域單元PAU 1的處理操作。可藉由第一硬體區塊211來處理第一管線區域單元PAU 1的單元資料(例如,第一單元資料UD 1)。此外,可將第一管線區域單元PAU 1的單元資料儲存於多個緩衝器(緩衝器)中。詳言之,可將具有圖10A中所示CTU中所示的編號的單元畫素群組UPXG的資料儲存於具有對應位址的緩衝器中。舉例而言,可將關於圖10A中由「0」示出的單元畫素群組UPXG的資訊儲存於具有第0號位址的緩衝器中。第一單元資料UD 1可包括第一當前CU大小資訊、第一下一CU位置資訊及掃描類型資訊,所述第一當前CU大小資訊表示當前CU的大小,所述當前CU包括與第一管線區域單元PAU 1對應(或包括於第一管線區域單元PAU 1中)的單元畫素群組UPXG,所述第一下一CU位置資訊表示下一CU的位置。
參照圖10B,可在第二管線階段PSTG 2中實行對第二管線區域單元PAU 2的處理操作。可藉由第一硬體區塊211來處理第二管線區域單元PAU 2的單元資料(例如,第二單元資料UD 2),並且可將單元資料(例如,第二單元資料UD 2)儲存於多個緩衝器(緩衝器)中。第二單元資料UD 2可包括第二當前CU大小資訊、第二下一CU位置資訊及掃描類型資訊,所述第二當前CU大小資訊表示當前CU的大小,所述當前CU包括與第二管線區域單元PAU 2對應(或包括於第二管線區域單元PAU 2中)的單元畫素群組UPXG,所述第二下一CU位置資訊表示下一CU的位置。
參照圖10C,可在第三管線階段PSTG 3中處理第三管線區域單元PAU 3的單元資料(例如,第三單元資料UD 3),並且可將單元資料(例如,第三單元資料UD 3)儲存於多個緩衝器(緩衝器)中。第三單元資料UD 3可包括第三當前CU大小資訊、第三下一CU位置資訊及掃描類型資訊。
參照圖10D,可在第四管線階段PSTG 4中處理第四管線區域單元PAU 4的單元資料(例如,第四單元資料UD 4),並且可將單元資料(例如,第四單元資料UD 4)儲存於多個緩衝器(緩衝器)中。第四單元資料UD 4可包括第四當前CU大小資訊、第四下一CU位置資訊及掃描類型資訊。
圖11是根據一些實施例的用於闡述位元串流的結構的圖。
參照圖1及圖11,由視訊編碼裝置100產生的位元串流BS可包括序列標頭資訊(序列標頭(SEQUENCE HEADER))、圖片標頭資訊(圖片標頭(PICTURE HEADER))及圖片資訊(圖片資料(PICTURE DATA))。圖片標頭資訊(圖片標頭)及圖片資訊(圖片資料)可在位元串流BS中重複出現。序列標頭資訊(序列標頭)、圖片標頭資訊(圖片標頭)及圖片資訊(圖片資料)可為基於視訊編解碼器標準而定義的多條資訊,且因此,可不再對其予以贅述。
在一些實施例中,序列標頭資訊(序列標頭)可包括垂直大小資訊(垂直大小(VERTICAL SIZE))、水平大小資訊(水平大小(HORIZONTAL SIZE))、每畫素位元資訊(每畫素位元(BIT PER PIXEL))、色度格式資訊(色度格式(CHROMA FORMAT))、CTU大小資訊(CTU大小(CTU SIZE))及管線區域單元數目資訊(PAU_NUM_IN_CTU)。垂直大小資訊(垂直大小)、水平大小資訊(水平大小)、每畫素位元資訊(每畫素位元)、色度格式資訊(色度格式)及CTU大小資訊(CTU大小)可為基於視訊編解碼器標準而定義的多條資訊,且因此,可不再對其予以贅述。管線區域單元數目資訊(PAU_NUM_IN_CTU)可包括表示一個CTU中所包括的管線區域單元的數目的資料。舉例而言,管線區域單元數目資訊(PAU_NUM_IN_CTU)可表示一個CTU中所包括的管線區域單元的數目(例如,「2」、「4」、「8」或類似數目)。以下參照圖12闡述管線區域單元數目資訊(PAU_NUM_IN_CTU)的實施例。
在一些實施例中,圖片標頭資訊(圖片標頭)可包括圖片內旗標資訊(圖片內旗標(INTRA PICTURE FLAG))、圖片量化參數(quantization parameter,QP)資訊(圖片QP(PICTURE QP))、解塊過濾器賦能資訊(解塊過濾器賦能(DEBLOCK FILTER ENABLE))及管線區域單元模式資訊(PAU_MODE)。圖片內旗標資訊(圖片內旗標)、圖片量化參數(QP)資訊(圖片QP)及解塊過濾器賦能資訊(解塊過濾器賦能)可為基於視訊編解碼器標準而定義的多條資訊,且因此,可不再對其予以贅述。管線區域單元模式資訊(PAU_MODE)可包括表示在一個CTU中劃分管線區域單元的方法的資料。以下參照圖13闡述管線區域單元模式資訊(PAU_MODE)的實施例。
在一些實施例中,圖片資訊(圖片資料)可包括圖塊標頭資訊(圖塊標頭(TILE HEADER))及圖塊資訊(圖塊資料(TILE DATA))。圖塊標頭資訊(圖塊標頭)及圖塊資訊(圖塊資料)可在圖片資訊(圖片資料)中重複出現。在實施例中,圖塊標頭資訊(圖塊標頭)可包括圖塊類型資訊(圖塊類型(TILE TYPE))、圖塊QP資訊(圖塊QP(TILE QP))、圖塊大小資訊(圖塊大小(TILE SIZE))及管線區域單元模式資訊(PAU_MODE)。
在一些實施例中,當位元串流BS包括管線區域單元資訊(例如,管線區域單元數目資訊(PAU_NUM_IN_CTU)及管線區域單元模式資訊(PAU_MODE))時,解碼器210中所包括的管線記憶體中的每一者的大小可對應於管線區域單元資訊。在實施例中,每一管線記憶體的大小可對應於管線區域單元的最大數目、一個CTU中的管線區域單元的最大大小及/或一個CU中所包括的管線區域單元的最大數目。
在一些實施例中,管線區域單元模式資訊(PAU_MODE)可包含於與圖片、圖塊或CTU相關聯的欄位中。
儘管未示出,然而位元串流BS可更包括管線區域大小資訊,所述管線區域大小資訊表示一個CTU中的管線區域單元的大小(例如,「0:16×16個畫素」、「1:32×32個畫素」或類似大小)。
儘管未示出,然而位元串流BS可更包括各自包括基於影像的階層式結構(hierarchical structure)而在每一層中使用的語法的序列參數資訊、圖片參數資訊、片段資訊及變換資訊。
圖12是根據一些實施例的用於闡述管線區域單元數目資訊的圖。
參照圖11及圖12,管線區域單元數目資訊(PAU_NUM_IN_CTU)的值(PAU_NUM_IN_CTU的值)可被表示為2位元參數。舉例而言,管線區域單元數目資訊(PAU_NUM_IN_CTU)的值(PAU_NUM_IN_CTU的值)可為「0x00」、「0x01」、「0x02」或「0x03」。然而,實施例並非僅限於此。
當管線區域單元數目資訊(PAU_NUM_IN_CTU)的值(PAU_NUM_IN_CTU的值)是「0x00」時,一個CTU中所包括的管線區域單元的數目(CTU中的PAU的數目(THE NUMBER OF PAU IN CTU))可為1。此值可表示CTU的數目與PAU的數目相同並且CTU對應於PAU。
當管線區域單元數目資訊(PAU_NUM_IN_CTU)的值(PAU_NUM_IN_CTU的值)是「0x01」時,一個CTU中所包括的管線區域單元的數目(CTU中的PAU的數目)可為2。此值可表示一個CTU包括兩個PAU。亦即,一個CTU可被劃分成具有相同面積的兩個PAU。
當管線區域單元數目資訊(PAU_NUM_IN_CTU)的值(PAU_NUM_IN_CTU的值)是「0x02」時,一個CTU中所包括的管線區域單元的數目(CTU中的PAU的數目)可為4。此值可表示一個CTU包括四個PAU。亦即,一個CTU可被劃分成具有相同面積的四個PAU。
當管線區域單元數目資訊(PAU_NUM_IN_CTU)的值(PAU_NUM_IN_CTU的值)是「0x03」時,一個CTU中所包括的管線區域單元的數目(CTU中的PAU的數目)可為8。此值可表示一個CTU包括八個PAU。亦即,一個CTU可被劃分成具有相同面積的八個PAU。
圖13是根據一些實施例的用於闡述管線區域單元模式資訊(PAU_MODE)的圖。
參照圖13,管線區域單元模式資訊(PAU_MODE)可表示在一個CTU中劃分管線區域單元的方法。在一些實施例中,管線區域單元模式資訊(PAU_MODE)可表示當CTU的大小大於PAU的大小時將一個CTU劃分成具有特定形狀的PAU的方法。
舉例而言,參照圖13,管線區域單元模式資訊(PAU_MODE)可包括四邊形模式(四邊形(QUAD))、水平模式(水平(HOR))、垂直模式(垂直(VER))及其他模式(其他(ELSE))。然而,實施例並非僅限於此。
四邊形模式(四邊形)可為將一個CTU劃分成具有正方形形狀的管線區域單元的模式。舉例而言,一個CTU中可包括四個管線區域單元,且每一管線區域單元的形狀可為正方形形狀。
水平模式(水平)可為將所述一個CTU劃分成具有矩形形狀及相對長的水平長度的管線區域單元的模式。舉例而言,一個CTU中可包括二或更多個管線區域單元,且每一管線區域單元的形狀可為寬度長於高度的矩形形狀。
垂直模式(垂直)可為將一個CTU劃分成具有矩形形狀及相對長的垂直長度的管線區域單元的模式。舉例而言,一個CTU中可包括二或更多個管線區域單元,且每一管線區域單元的形狀可為高度長於寬度的矩形形狀。
其他模式(其他)可為基於CU的形狀而自四邊形模式(四邊形)、水平模式(水平)及垂直模式(垂直)之中選擇的模式。舉例而言,當CU的水平長度與CU的垂直長度相同時,即,當CU的形狀是正方形形狀時,其他模式(其他)可為四邊形模式(四邊形)或水平模式(水平)。作為另一實例,當CU的水平長度長於CU的垂直長度時,其他模式(其他)可為垂直模式(垂直)。作為另一實例,當CU的垂直長度長於CU的水平長度時,其他模式(其他)可為水平模式(水平)。
圖14是根據一些實施例的用於闡述視訊解碼裝置的操作方法的流程圖。
參照圖14,視訊解碼裝置的操作方法可包括第一管線階段S100及第二管線階段S200。
在第一管線階段S100中,可在操作S1000中實行使用第一硬體區塊來處理位元串流的在第一管線階段中按管線單元劃分的第一單元資料並且將第一單元資料儲存於第一管線記憶體中的操作。操作S1000可如以上參照圖3A所述。
在第一管線階段S100之後的第二管線階段S200中,可在操作S2000中實行使用第一硬體區塊來處理在第二管線階段中按管線單元劃分的第二單元資料並且將第二單元資料儲存於第一管線記憶體中的操作。在實行操作S2000的同時,可在操作S2100中實行使用第二硬體區塊來讀取並處理儲存於第一管線記憶體中的第一單元資料並且將第一單元資料儲存於第二管線記憶體中的操作。操作S2000及操作S2100可如以上參照圖3B所述。
在一些實施例中,在第一管線階段S100中,在實行操作S1000的同時,可實行使用第二硬體區塊自第一管線記憶體讀取利用在第一管線階段之前的前一管線階段中的處理而獲得的單元資料並且處理所述單元資料的操作。在實施例中,可將所處理的單元資料儲存於第二管線記憶體中。在一些實施例中,在第二管線階段S200中,在實行操作S2000及操作S2100的同時,可實行使用第三硬體區塊來讀取儲存於第二管線記憶體中的單元資料並且處理所述單元資料的操作。
在一些實施例中,視訊解碼裝置的操作方法可更包括在第二管線階段S200之後的第三管線階段。在第三管線階段中,可實行使用第一硬體區塊來處理位元串流中按管線單元劃分的第三單元資料並且將第三單元資料儲存於第一管線記憶體中的操作,同時可實行使用第二硬體區塊來讀取並處理儲存於第一管線記憶體中的第二單元資料並且將所處理的第二單元資料儲存於第二管線記憶體中的操作,且同時可實行使用第三硬體區塊來讀取並處理儲存於第二管線記憶體中的第一單元資料的操作。換言之,處理並儲存第三單元資料的操作、讀取、處理並儲存第二單元資料的操作、以及讀取、處理並儲存第一單元資料的操作皆可同時發生。
如上所述,由於無論視訊壓縮方案或樹劃分模式如何,解碼操作均是按相對小的管線單元來實行,因此管線記憶體的大小及儲存容量可減小。
圖15是根據一些實施例的用於闡述按管線單元來處理單元資料的方法的流程圖。
參照圖15,圖15中所示出的按管線單元來處理單元資料的方法可對應於以上參照圖2、圖3A、圖3B、圖3C、圖4及圖5所述的管線記憶體及硬體區塊中的每一者的操作方法。
在操作S10中,寫碼樹區塊(在下文中被稱為CTB)可開始。
在操作S20中,包括於一個CTB中的CU可開始。
在操作S30中,硬體區塊可對輸入緩衝器進行讀取,可處理單元資料,且可將所處理的單元資料寫入於輸出緩衝器中。在一些實施例中,輸入緩衝器可為設置於硬體區塊的前端處的管線記憶體的緩衝器。輸出緩衝器可為設置於硬體區塊的後端處的管線記憶體的緩衝器。在一些實施例中,對輸入緩衝器進行讀取、處理單元資料以及將所處理的單元資料寫入於輸出緩衝器中可同時發生。
在操作S40中,緩衝器位址可增加。緩衝器位址的增加可表示緩衝器位址的數目增加。參照圖10A,位址數目可自1增加至2。然而,實施例並非僅限於此。
在操作S50中,可判斷緩衝器位址對管線大小的比率是否為1。在一些實施例中,管線大小可為管線記憶體的大小(例如,管線記憶體的緩衝器的數目),且舉例而言,可為管線記憶體的儲存容量。
當緩衝器位址對管線大小的比率不為1時(S50,否),可實行操作S30。當緩衝器位址對管線大小的比率為1時(S50,是),在操作S60中,子管線(sub-pipeline)可完成。子管線可為包括於一個CU中的管線。
在操作S70中,可判斷CU的結束與否。當CU未結束時(S70,否),可實行操作S30。當到達CU的結束時(S70,是),可在操作S80中判斷CTB的結束與否。當CTB未結束時(S80,否),可實行操作S20。當到達CTB的結束時(S80,是),在操作S90中,CTB可完成。
圖16是根據一些實施例的顯示裝置1400的方塊圖。
參照圖16,顯示裝置1400可包括例如行動電話、智慧型電話、平板個人電腦(personal computer,PC)、可穿戴裝置、保健裝置或物聯網(Internet of things,IoT)等行動系統。然而,顯示裝置1400並非僅限於以上說明。顯示裝置1400可包括PC、膝上型電腦、伺服器、媒體播放器或例如導航裝置等汽車裝置。
顯示裝置1400可包括處理器1410、解碼器1420、記憶體1430及顯示模組1440。在實例中,處理器1410、解碼器1420、記憶體1430及顯示模組1440可連接至匯流排,且可藉由匯流排彼此進行通訊。
處理器1410可控制顯示裝置的總體操作,且更詳言之,可控制顯示裝置1400的元件的操作。處理器1410可被實施為通用處理器、專用處理器或應用處理器。
處理器1410可包括一或多個中央處理單元(central processing unit,CPU)核心。處理器1410可更包括用於控制解碼器1420、記憶體1430及顯示模組1440的至少一個控制器。
處理器1410可更包括加速器,所述加速器是用於例如人工智慧(artificial intelligence,AI)資料操作等高速資料操作的專用電路。加速器可包括圖形處理單元(graphics processing unit,GPU)、神經處理單元(neural processing unit,NPU)及/或資料處理單元(data processing unit,DPU),並且可被實施為實體上獨立於處理器1410的其他元件的單獨的晶片。
解碼器1420及記憶體1430可分別對應於各自在圖1中示出的解碼器210及記憶體220。
顯示模組1440可用作向使用者輸出每一視覺資訊的輸出裝置。顯示模組1440可基於利用由解碼器1420進行的解碼而獲得的影像資料來顯示影像。
已闡述各種實施例,且所述各種實施例不旨在限制本揭露。本揭露的範圍不受所述各種實施例所限制。確切而言,本揭露的範圍必須根據所附申請專利範圍來解釋,且等效範圍內的所有精神必須被解釋為包括於本揭露的範圍內。
在上文中,已在圖式及說明書中闡述了示例性實施例。已使用本文中所述的用語闡述了實施例,但該些用語僅用於闡述所述各種實施例,且並不用於限制在以下申請專利範圍中定義的本揭露的含義或限制本揭露的範圍。因此,此項技術中具有通常知識者可理解,可根據所述各種實施例來實施各種修改及其他等同實施例。因此,本揭露的精神及範圍可基於以下申請專利範圍的精神及範圍來定義。
儘管已參照圖式具體示出並闡述了各種實施例,然而應理解,在不背離以下申請專利範圍的精神及範圍的條件下,可在本文中作出形式及細節上的各種改變。
10:視訊系統
100:視訊編碼裝置
200、400:視訊解碼裝置
210、1420:解碼器
211:第一硬體區塊/硬體區塊
212:第一管線記憶體/管線記憶體
213:第二硬體區塊/硬體區塊
214:第二管線記憶體/管線記憶體
215:第三硬體區塊/硬體區塊
217:第n硬體區塊/硬體區塊
220、430、1430:記憶體
300:管線記憶體
310:第一記憶體
320:第二記憶體
411:位元串流剖析區塊/硬體區塊
412:逆量化變換(IQT)區塊/硬體區塊
413:運動向量區塊/硬體區塊
414:訊框內模式區塊/硬體區塊
415:運動補償(MC)區塊/硬體區塊
416:訊框間預測區塊/硬體區塊
417:訊框內預測及重組區塊/硬體區塊
418:迴路過濾器區塊/硬體區塊
421、PM1:第一管線記憶體
422、PM2:第二管線記憶體
423、PM3:第三管線記憶體
424、PM4:第四管線記憶體
425、PM5:第五管線記憶體
426、PM6:第六管線記憶體
427、PM7:第七管線記憶體
428、PM8:第八管線記憶體
429、PM9:第九管線記憶體
1400:顯示裝置
1410:處理器
1440:顯示模組
BS:位元串流
CU 1:第一CU
CU 2:第二CU
CU 3:第三CU
CU 4:第四CU
CU 5:第五CU
DPD:經解碼影像資料
PAU 1:第一管線區域單元
PAU 2:第二管線區域單元
PAU 3:第三管線區域單元
PAU 4:第四管線區域單元
PAU_MODE:管線區域單元模式資訊
PAU_NUM_IN_CTU:管線區域單元數目資訊
PSTG 1、S100:第一管線階段
PSTG 2、S200:第二管線階段
PSTG 3:第三管線階段
PSTG 4:第四管線階段
PSTG 5:第五管線階段
PSTG 6:第六管線階段
PSTG 7:第七管線階段
S10、S20、S30、S40、S50、S60、S70、S80、S90、S1000、S2000、S2100:操作
UD 1:第一單元資料
UD 2:第二單元資料
UD 3:第三單元資料
UD 4:第四單元資料
UD 5:第五單元資料
UPXG:單元畫素群組
藉由結合附圖閱讀以下詳細說明,將更清楚地理解各種實施例,在附圖中:
圖1是根據一些實施例的視訊系統的方塊圖。
圖2是根據一些實施例的解碼器的方塊圖。
圖3A至圖3C是根據一些實施例的用於闡述管線記憶體的圖。
圖4是根據一些實施例的視訊解碼裝置的方塊圖。
圖5是根據一些實施例的用於闡述按管線單元進行的解碼處理操作的圖。
圖6是根據一些實施例的用於闡述寫碼樹單元及寫碼單元的圖。
圖7A至圖7E是根據一些實施例的用於闡述樹劃分模式的圖。
圖8A至圖8E是根據各種實施例的用於分別闡述圖7A至圖7E中所示樹劃分模式中的管線區域單元的實例的圖。
圖9是根據一些實施例的用於闡述通用視訊寫碼(VVC)編解碼器中的寫碼單元及管線區域單元的圖。
圖10A至圖10D是根據一些實施例的用於闡述按管線單元來處理單元資料的操作的圖。
圖11是根據一些實施例的用於闡述位元串流的結構的圖。
圖12是根據一些實施例的用於闡述管線區域單元數目資訊的圖。
圖13是根據一些實施例的用於闡述管線區域單元模式資訊的圖。
圖14是根據一些實施例的用於闡述視訊解碼裝置的操作方法的流程圖。
圖15是根據一些實施例的用於闡述按管線單元來處理單元資料的方法的流程圖。
圖16是根據一些實施例的顯示裝置的方塊圖。
400:視訊解碼裝置
411:位元串流剖析區塊/硬體區塊
412:逆量化變換(IQT)區塊/硬體區塊
413:運動向量區塊/硬體區塊
414:訊框內模式區塊/硬體區塊
415:運動補償區塊/硬體區塊
416:訊框間預測區塊/硬體區塊
417:訊框內預測及重組區塊/硬體區塊
418:迴路過濾器區塊/硬體區塊
421、PM1:第一管線記憶體
422、PM2:第二管線記憶體
423、PM3:第三管線記憶體
424、PM4:第四管線記憶體
425、PM5:第五管線記憶體
426、PM6:第六管線記憶體
427、PM7:第七管線記憶體
428、PM8:第八管線記憶體
429、PM9:第九管線記憶體
430:記憶體
BS:位元串流
Claims (20)
- 一種視訊解碼裝置,包括: 解碼器,包括多個硬體區塊及多個管線記憶體,所述多個硬體區塊被配置成按管線單元來對位元串流實行解碼處理,所述多個管線記憶體設置於所述多個硬體區塊之間且被配置成針對每一管線階段來儲存由所述多個硬體區塊按所述管線單元處理的單元資料;以及 記憶體,被配置成儲存由所述解碼器解碼的影像資料, 其中所述單元資料包括當前寫碼單元(CU)大小資訊、下一寫碼單元位置資訊及掃描類型資訊,所述當前寫碼單元大小資訊表示當前寫碼單元的大小,所述當前寫碼單元包括寫碼樹單元(CTU)中所包括的多個單元畫素群組之中與管線區域單元對應的單元畫素群組,所述下一寫碼單元位置資訊表示和所述當前寫碼單元挨著的寫碼單元的位置,所述掃描類型資訊表示所述單元畫素群組的掃描類型。
- 如請求項1所述的視訊解碼裝置,其中所述多個硬體區塊包括第一硬體區塊及第二硬體區塊,且 所述多個管線記憶體包括第一管線記憶體,所述第一管線記憶體被配置成儲存由所述第一硬體區塊處理的第一單元資料且儲存欲提供至所述第二硬體區塊的第二單元資料。
- 如請求項2所述的視訊解碼裝置,其中所述第一硬體區塊被配置成將由所述第一硬體區塊處理的所述第一單元資料儲存於所述第一管線記憶體中,且同時,所述第二硬體區塊被配置成處理所述第二單元資料。
- 如請求項2所述的視訊解碼裝置,其中所述第一管線記憶體包括: 第一記憶體,被配置成儲存所述第一單元資料;以及 第二記憶體,被配置成儲存所述第二單元資料。
- 如請求項4所述的視訊解碼裝置,其中在第一管線階段中,所述第一硬體區塊被配置成將所述第一單元資料儲存於所述第一記憶體中,且所述第二硬體區塊被配置成自所述第二記憶體讀取所述第二單元資料,且 在緊接地位於所述第一管線階段之後的第二管線階段中,所述第一硬體區塊被配置成將新的單元資料儲存於所述第二記憶體中,且所述第二硬體區塊被配置成自所述第一記憶體讀取所述第一單元資料。
- 如請求項1所述的視訊解碼裝置,其中所述多個硬體區塊包括第一硬體區塊及第二硬體區塊,且 所述第一硬體區塊被配置成將所述位元串流的所述單元資料儲存於所述多個管線記憶體之中位於所述第一硬體區塊與所述第二硬體區塊之間的管線記憶體中。
- 如請求項1所述的視訊解碼裝置,其中所述多個管線記憶體中的每一者包括多個緩衝器,所述多個緩衝器具有與和所述管線區域單元對應的所述單元畫素群組對應的多個緩衝器位址。
- 如請求項1所述的視訊解碼裝置,其中所述多個硬體區塊包括: 位元串流剖析區塊,被配置成對所述位元串流進行剖析; 逆量化變換(IQT)區塊,被配置成對經剖析的所述位元串流進行逆量化且對逆量化結果實行逆變換; 運動向量區塊,被配置成基於經剖析的所述位元串流來產生運動向量; 訊框內模式區塊,被配置成基於所述運動向量來產生預測區塊; 運動補償區塊,被配置成基於所述運動向量來實行運動補償以產生預測影像; 訊框間預測區塊,被配置成基於與所述預測影像對應的單元資料來實行訊框間預測; 訊框內預測及重組區塊,被配置成基於所述逆量化變換區塊的實行結果、所述預測區塊、及所述訊框間預測的實行結果來實行訊框內預測;以及 迴路過濾器區塊,被配置成將所述影像資料儲存於所述記憶體中。
- 如請求項8所述的視訊解碼裝置,其中所述多個管線記憶體包括: 第一管線記憶體,設置於所述位元串流剖析區塊與所述逆量化變換區塊之間; 第二管線記憶體,設置於所述位元串流剖析區塊與所述運動向量區塊之間; 第三管線記憶體,設置於所述逆量化變換區塊與所述訊框內預測及重組區塊之間; 第四管線記憶體,設置於所述運動向量區塊與所述訊框內模式區塊之間; 第五管線記憶體,設置於所述運動向量區塊與所述運動補償區塊之間; 第六管線記憶體,設置於所述訊框內模式區塊與所述訊框內預測及重組區塊之間; 第七管線記憶體,設置於所述運動補償區塊與所述訊框間預測區塊之間; 第八管線記憶體,設置於所述訊框間預測區塊與所述訊框內預測及重組區塊之間;以及 第九管線記憶體,設置於所述訊框內預測及重組區塊與所述迴路過濾器區塊之間。
- 一種視訊解碼裝置的操作方法,所述操作方法包括: 在第一管線階段期間,藉由第一硬體區塊來處理位元串流的在所述第一管線階段中按管線單元劃分的第一單元資料並且將所述第一單元資料儲存於第一管線記憶體中; 在緊接地位於所述第一管線階段之後的第二管線階段期間,藉由所述第一硬體區塊來處理在所述第二管線階段中按管線單元劃分的第二單元資料並且將所述第二單元資料儲存於所述第一管線記憶體中;以及 在藉由所述第一硬體區塊來處理所述第二單元資料的同時,藉由第二硬體區塊來讀取並處理儲存於所述第一管線記憶體中的所述第一單元資料。
- 如請求項10所述的操作方法,更包括在藉由所述第一硬體區塊來儲存所述第一單元資料的同時,在所述第一管線階段期間,藉由所述第二硬體區塊自所述第一管線記憶體讀取利用在所述第一管線階段之前的前一管線階段期間的處理而獲得的單元資料並且處理所述單元資料。
- 如請求項11所述的操作方法,其中在所述第一管線階段期間,處理所述單元資料包括將所述單元資料儲存於第二管線記憶體中, 在所述第二管線階段期間,處理所述第一單元資料包括將所述第一單元資料儲存於所述第二管線記憶體中,且 在所述第二管線階段期間,在儲存所述第一單元資料的同時,藉由第三硬體區塊來讀取並處理單元先前儲存於所述第二管線記憶體中的資料。
- 如請求項12所述的操作方法,更包括: 在緊接地位於所述第二管線階段之後的第三管線階段期間,使用所述第一硬體區塊來處理所述位元串流中按管線單元劃分的第三單元資料並且將所述第三單元資料儲存於所述第一管線記憶體中; 在處理所述第三單元資料的同時,使用所述第二硬體區塊來讀取並處理儲存於所述第一管線記憶體中的所述第二單元資料並且將所述第二單元資料儲存於所述第二管線記憶體中;以及 在處理所述第三單元資料並且讀取並處理所述第二單元資料的同時,使用所述第三硬體區塊來讀取並處理儲存於所述第二管線記憶體中的所述第一單元資料。
- 如請求項10所述的操作方法,其中在所述第二管線階段期間,處理所述第一單元資料包括將所述第一單元資料儲存於第二管線記憶體中; 在緊接地位於所述第二管線階段之後的第三管線階段期間,藉由所述第一硬體區塊來處理在所述第三管線階段中按管線單元劃分的第三單元資料並且將所述第三單元資料儲存於所述第一管線記憶體中; 在處理並儲存所述第三單元資料的同時,藉由所述第二硬體區塊來讀取並處理儲存於所述第一管線記憶體中的所述第二單元資料並且將所述第二單元資料儲存於所述第二管線記憶體中;以及 在讀取並處理所述第二單元資料的同時,藉由第三硬體區塊來讀取並處理儲存於所述第二管線記憶體中的所述第一單元資料。
- 如請求項10所述的操作方法,其中所述第一單元資料包括第一當前寫碼單元(CU)大小資訊、第一下一寫碼單元位置資訊及掃描類型資訊,所述第一當前寫碼單元大小資訊表示第一當前寫碼單元的大小,所述第一當前寫碼單元包括寫碼樹單元(CTU)中所包括的多個單元畫素群組之中與第一管線區域單元對應的第一單元畫素群組,所述第一下一寫碼單元位置資訊表示和所述第一當前寫碼單元挨著的寫碼單元的位置,所述掃描類型資訊表示單元畫素群組的掃描類型,且 所述第二單元資料包括第二當前寫碼單元大小資訊、第二下一寫碼單元位置資訊及所述掃描類型資訊,所述第二當前寫碼單元大小資訊表示第二當前寫碼單元的大小,所述第二當前寫碼單元包括所述多個單元畫素群組之中與不同於所述第一管線區域單元的第二管線區域單元對應的第二單元畫素群組,所述第二下一寫碼單元位置資訊表示和所述第二當前寫碼單元挨著的寫碼單元的位置。
- 一種視訊系統,包括: 視訊編碼裝置,被配置成提供包含關於管線區域單元的管線區域單元資訊的位元串流;以及 視訊解碼裝置,被配置成對所述位元串流進行解碼並輸出經解碼影像資料, 其中所述視訊解碼裝置包括: 多個硬體區塊,被配置成處理按管線單元劃分的單元資料;以及 多個管線記憶體,各自具有與所述管線區域單元資訊對應的記憶體大小,所述多個管線記憶體被配置成儲存所處理的所述單元資料。
- 如請求項16所述的視訊系統,其中所述管線區域單元資訊包括管線區域單元數目資訊,所述管線區域單元數目資訊表示一個寫碼樹單元(CTU)中所包括的管線區域單元的數目。
- 如請求項17所述的視訊系統,其中所述管線區域單元資訊更包括管線區域單元模式資訊,所述管線區域單元模式資訊表示將一個寫碼樹單元劃分成所述管線區域單元的方法。
- 如請求項18所述的視訊系統,其中所述管線區域單元模式資訊包括四邊形模式、水平模式及垂直模式,所述四邊形模式是將所述一個寫碼樹單元劃分成具有正方形形狀的所述管線區域單元,所述水平模式是將所述一個寫碼樹單元劃分成具有較垂直長度長的水平長度且具有矩形形狀的所述管線區域單元,所述垂直模式是將所述一個寫碼樹單元劃分成具有較垂直長度長的垂直長度且具有矩形形狀的所述管線區域單元。
- 如請求項16所述的視訊系統,其中所述單元資料包括當前寫碼單元(CU)大小資訊、下一寫碼單元位置資訊及掃描類型資訊,所述當前寫碼單元大小資訊表示當前寫碼單元的大小,所述當前寫碼單元包括寫碼樹單元(CTU)中所包括的多個單元畫素群組之中與所述管線區域單元對應的單元畫素群組,所述下一寫碼單元位置資訊表示和所述當前寫碼單元挨著的寫碼單元的位置,所述掃描類型資訊表示所述單元畫素群組的掃描類型。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2022-0112338 | 2022-09-05 | ||
KR10-2022-0151989 | 2022-11-14 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202412523A true TW202412523A (zh) | 2024-03-16 |
Family
ID=
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4699685B2 (ja) | 信号処理装置及びそれを用いた電子機器 | |
KR100994979B1 (ko) | 인트라-인코딩된 비디오의 병렬 디코딩 | |
US8395634B2 (en) | Method and apparatus for processing information | |
KR20210077799A (ko) | 부호화 장치, 부호화 방법 및 프로그램 | |
JP4895400B2 (ja) | 画像フレームの非フレームエッジブロックの表現における改良された圧縮 | |
US9300984B1 (en) | Independent processing of data streams in codec | |
KR20070063048A (ko) | 화상 부호화 방법 및 장치와 화상 복호 방법 및 장치 | |
JP2008518289A (ja) | フィルム粒度シミュレーションのためのブロック平均決定方法 | |
US20090129478A1 (en) | Deblocking filter | |
CN112333446B (zh) | 一种帧内块复制参考块压缩方法 | |
JP2006157925A (ja) | パイプラインデブロッキングフィルタ | |
US20090304078A1 (en) | Variable length decoder and animation decoder therewith | |
JP2000050263A (ja) | 画像符号化並びに復号化装置及びこれを用いた撮像装置 | |
JP2006279574A (ja) | 復号装置と方法 | |
JP2024019496A (ja) | 画像符号化装置、画像復号装置、画像符号化方法、画像復号方法 | |
JP2024019495A (ja) | 画像符号化装置、画像復号装置、画像符号化方法、画像復号方法 | |
TW202412523A (zh) | 視訊解碼裝置、其操作方法以及視訊系統 | |
JP7064644B2 (ja) | 動画像符号化装置 | |
EP4340361A1 (en) | Video decoding device, operating method thereof, and video system | |
JP7359653B2 (ja) | 動画像符号化装置 | |
CN117651145A (zh) | 视频解码装置及其操作方法和视频系统 | |
KR20240033618A (ko) | 비디오 디코딩 장치, 그의 동작 방법, 디스플레이 장치, 및 비디오 시스템 | |
CN114173127A (zh) | 视频处理方法、装置、设备及存储介质 | |
TW202002635A (zh) | 影像編碼裝置、影像解碼裝置、其等之控制方法及程式 | |
CN111770338B (zh) | 编码单元的索引值确定方法、装置、设备及存储介质 |