TW201811036A - 一種將係數儲存到逆掃描儲存裝置前確定係數的儲存位置的方法和相關裝置及機器可讀介質 - Google Patents

一種將係數儲存到逆掃描儲存裝置前確定係數的儲存位置的方法和相關裝置及機器可讀介質 Download PDF

Info

Publication number
TW201811036A
TW201811036A TW106118948A TW106118948A TW201811036A TW 201811036 A TW201811036 A TW 201811036A TW 106118948 A TW106118948 A TW 106118948A TW 106118948 A TW106118948 A TW 106118948A TW 201811036 A TW201811036 A TW 201811036A
Authority
TW
Taiwan
Prior art keywords
coefficient
transposition
storage device
coefficients
inverse
Prior art date
Application number
TW106118948A
Other languages
English (en)
Inventor
邱銘豪
張永昌
Original Assignee
聯發科技股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 聯發科技股份有限公司 filed Critical 聯發科技股份有限公司
Publication of TW201811036A publication Critical patent/TW201811036A/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/88Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving rearrangement of data among different coding units, e.g. shuffling, interleaving, scrambling or permutation of pixel data or permutation of transform coefficient data among different blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/18Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本發明提供一種係數存取方法,包括:接收熵解碼過程所生成的係數,其中所述接收到的係數是變換塊的一部分;在將所述接收到的係數儲存到逆掃描儲存裝置之前,根據與所述變換塊相關的轉置旗標確定所述接收到的係數的儲存位置,其中所述轉置旗標表示是否需要係數轉置過程;以及在確定所述儲存位置之後,將所述接收到的係數儲存到所述逆掃描儲存裝置內所述確定的儲存位置。

Description

一種將係數儲存到逆掃描儲存裝置前確定係數的儲存位置的方法和相關裝置及機器可讀介質
本發明涉及一種逆掃描設計,且更具體而言,涉及一種在將係數儲存到逆掃描儲存裝置(inverse scan storage device)前確定係數的儲存位置的方法和相關裝置及機器可讀介質。
傳統的視訊編碼標準一般採用基於塊的編碼技術,以利用空間和時間冗餘度。例如,基本的方法是將整個源幀分解成多個塊,對每個塊進行幀內預測/幀間預測,變換每個塊的殘餘,以及量化、掃描和熵編碼。另外,在編碼迴圈中生成重構幀,以提供用於編碼後續塊的參考像素資料。對於某些視訊編碼標準,環路濾波器用於增強該重構幀的圖像品質。
視訊解碼器用於執行由視訊編碼器所執行的視訊編碼操作的反向操作。例如,逆掃描(inverse scan,IS)用於儲存由熵解碼器所生成的係數,並以掃描/讀出的順序輸出所儲存的係數,以用於後續逆量化(inverse quantization,IQ)。然而,不同變換塊的逆量化可能需要係數的不同掃描/讀出順序。例如,第一變換塊的逆量化需要該第一變換塊的係數的非轉置(non-transposed)掃描/讀出順序,而第二變換塊的逆量化需要該第二變換塊的係數的轉置(transposed)掃描/讀出順序。在滿足設計的逆量化的輸送量要求的情況下,為了支援係數的不同掃描/讀出順序,採用多個IS儲存裝置並不是一種降低成本的解決方案。因此,需要一種高性能和低成本的逆掃描設計。
本發明的目的之一在於,提出一種在將係數儲存到逆掃描儲存裝置前確定係數的儲存位置的方法和相關裝置及機器可讀介質。
根據本發明的第一方面,公開一種實例性的係數存取方法。所述實例性的係數存取方法包括:接收熵解碼過程所生成的係數,其中所述接收到的係數是變換塊的一部分;在將所述接收到的係數儲存到逆掃描儲存裝置之前,根據與所述變換塊相關的轉置旗標確定所述接收到的係數的儲存位置,其中所述轉置旗標表示是否需要係數轉置過程;以及在確定所述儲存位置之後,將所述接收到的係數儲存到所述逆掃描儲存裝置內所述確定的儲存位置。
根據本發明的第二方面,公開一種實例性的係數存取裝置。所述實例性的係數存取裝置包括接收電路、寫控制電路和寫電路。接收電路用於接收由熵解碼器所生成的係數,其中所述接收到的係數是變換塊的一部分。寫控制電路用於在將所述接收到的係數儲存到逆掃描儲存裝置之前,根據與所述變換塊相關的轉置旗標確定所述接收到的係數的儲存位置,其中所述轉置旗標表示是否需要係數轉置過程。寫電路用於在確定所述儲存位置之後,將所述接收到的係數儲存到所述逆掃描儲存裝置內所述確定的儲存位置。
根據本發明的第三方面,公開一種實例性的非暫時性機器可讀介質。所述非暫時性機器可讀介質儲存有程式代碼。在由處理器執行時,所述程式代碼指示所述處理器以執行如下步驟:接收熵解碼過程所生成的係數,其中所述接收到的係數是變換塊的一部分;在將所述接收到的係數儲存到逆掃描儲存裝置之前,根據與所述變換塊相關的轉置旗標確定所述接收到的係數的儲存位置,其中所述轉置旗標表示是否需要係數轉置過程;以及在確定所述儲存位置之後,將所述接收到的係數儲存到所述逆掃描儲存裝置內所述確定的儲存位置。
在閱讀以下對各圖及圖式中所例示的優選實施例的詳細說明之後,本發明的這些及其它目標無疑將對所屬領域的技術人員顯而易見。
本說明書及權利要求書通篇中所用的某些用語指代特定部件。如所屬領域的技術人員可以理解的是,電子設備製造商可利用不同名稱來指代同一個部件。本文並非以名稱來區分部件,而是以功能來區分部件。在以下說明書及權利要求書中,用語「包括」是開放式的限定詞語,因此其應被解釋為意指「包括但不限於…」。另外,用語「耦合」旨在意指間接電連接或直接電連接。因此,當一個裝置耦合到另一裝置時,則這種連接可以是直接電連接或通過其他裝置及連接部而實現的間接電連接。
第1圖是根據本發明實施例的使用所提出的係數轉置設計的視訊解碼器的示意圖。如第1圖所示,視訊解碼器100包括熵解碼器(例如,可變長度解碼器(variable length decoder,VLD)102、逆掃描電路(用“IS”表示)104、逆量化電路(用“IQ”表示)106、逆變換電路(用“IT”表示)108、重構電路110、運動向量計算電路(用“MV計算”表示)112、運動補償電路(用“MC”表示)114、幀內預測電路(用“IP”表示)116、幀間/幀內模式選擇電路(用“幀間/幀內選擇”表示)118,環路濾波器(例如去塊濾波器(deblocking filter,DF))120和參考幀暫存器122。當塊被幀間編碼時,運動向量計算電路112參考由熵解碼器102(例如VLD)從編碼位元流中解析出的資訊,以確定正在解碼的當前幀的該塊與參考幀的預測塊之間的運動向量,該參考幀是一重構幀,並且儲存在參考幀暫存器122內。當塊被幀內編碼時,幀內預測電路116從當前幀中確定預測塊,該當前幀包括該塊。
通過熵解碼器(例如VLD)102、逆掃描電路104、逆量化電路106和逆變換電路108,重構電路110獲取該塊的解碼殘餘。當塊被幀內編碼時,幀間/幀內模式選擇電路118輸出幀內預測塊到重構電路110,而當塊被幀間編碼時,其輸出幀間預測塊到重構電路110。重構電路110結合該解碼殘餘和該預測塊,以生成重構塊。去塊濾波器120先處理該重構塊,然後將其儲存到參考幀暫存器內以作為參考幀的一部分,該參考幀用於解碼後續幀。
在本實施例中,逆掃描電路104支援係數(coefficient)的不同掃描/讀出順序,該係數用於後面的逆量化電路106。例如,當後面的逆量化電路106需要係數的轉置掃描/讀出順序時,逆掃描電路104執行係數轉置過程,其包括第一轉置過程124和第二轉置過程126,以將由前面的熵解碼器(例如VLD)102直接所獲得的係數(特別是量化的轉置係數)儲存到儲存位置,該儲存位置是根據該係數轉置過程的結果而確定的。又例如,當後面的逆量化電路106需要係數的非轉置掃描/讀出順序時,逆掃描電路104繞開係數轉置過程,並將由前面的熵解碼器(例如VLD)102直接所獲得的係數(特別是量化的轉置係數)儲存到儲存位置,該儲存位置是根據熵解碼器(例如VLD)102所提供的相關資訊而確定的。
在一個示例設計中,視訊解碼器100可以是第二代音視訊編碼標準(second generation Audio Video Coding Standard AVS2)解碼器。因此,逆掃描電路104支援係數的非轉置掃描/讀出順序和轉置掃描/讀出順序,其可以是AVS2 IQ過程所需要的,但是,此僅作示例目的,並不用於限制本發明。實際上,採用逆掃描給後續處理階段(例如逆量化)提供係數的任何視訊解碼器均可以使用本發明所提出的係數轉置設計。
第2圖是根據本發明實施例的逆掃描電路的示意圖。如第1圖所示的逆掃描電路104可以為第2圖中的逆掃描電路200。如第2圖所示,逆掃描電路200包括逆掃描(inverse scan,IS)儲存裝置201和係數存取裝置202。例如,IS儲存裝置201可以是靜態隨機存取記憶體(static random access memory,SRAM),動態隨機存取記憶體(dynamic random access memory,DRAM)或者寄存器。係數存取裝置202包括接收電路204、寫控制電路206、寫電路208和讀電路210。
接收電路204耦合到熵解碼器(例如,如第1圖所示的熵解碼器102),並用於接收來自於該熵編碼器的一個編碼組(coding group,CG)內的係數Ceff和相關CG位置資訊(例如,在變換塊(transform block,TB)內的CG索引)。例如,一個8x8 TB被劃分成四個4x4 CG,進而一個4x4 CG包括16個係數Ceff。當該熵解碼器生成4x4 CG內的一個係數Ceff至係數存取裝置202時,其亦生成該4x4 CG的CG索引至係數存取裝置202。CG的係數Ceff(其具有係數索引)和該CG的CG索引可以用於直接或者間接確定IS儲存裝置201內的係數儲存位置和CG位置。
寫控制電路206包括第一轉置處理電路212、第二轉置處理電路214和儲存位置確定電路216。第一轉置處理電路212用於執行如第1圖所示的第一轉置過程124。第二轉置處理電路214用於執行如第1圖所示的第二轉置過程126。在一個8x8 TB被劃分位四個4x4 CG的情況下,第一轉置過程124是內部4x4 CG轉置過程,第二轉置過程126是外部4x4 CG轉置過程。應注意,視實際設計考慮,可以調節一個TB的大小和一個CG的大小。也就是說,一個TB的大小不限於8x8,和/或一個CG的大小不限於4x4。本發明所提出的係數轉置過程不限制TB尺寸和/或CG尺寸。第一轉置過程(例如,內部CG轉置過程)124和第二轉置過程(例如,外部CG轉置過程)126的進一步詳細說明將在後面進行描述。
儲存位置確定電路216用於確定TB的每個CG內的每個係數的儲存位置。當需要係數轉置過程時,儲存位置確定電路216參考第一轉置處理電路212的輸出,以確定接收電路204所接收到的係數的儲存位置,其中第一轉置處理電路212的輸出表示CG內轉置後的係數位置,而第二轉置處理電路214的輸出表示TB內轉置後的CG位置。當不需要係數轉置過程時,儲存位置確定電路216參考熵解碼器所提供的資訊,以確定接收電路204所接收到的該係數的儲存位置,其中CG內的該係數表示該CG內的非轉置係數位置,TB內CG索引表示該TB內非轉置CG位置。在本實施例中,接收電路204從熵解碼器(例如第1圖中的熵解碼器102)接收係數Ceff(其是TB的一部分)之後,在通過寫電路208將接收到的該係數Ceff儲存到IS儲存裝置201內之前,寫控制電路206根據與該TB相關的轉置旗標(transpose flag)FL確定接收到的係數Ceff的儲存位置,其中該轉置旗標FL表示是否需要係數轉置過程。
在本實施例中,根據轉置旗標FL控制第一轉置處理電路212和第二轉置處理電路214的繞開。在一個示例設計中,熵解碼器(例如,第1圖中的熵解碼器102)參考從位元流中解析出來的資訊以設置該轉置旗標FL,並且通過接收電路204將該轉置旗標FL傳輸至寫控制電路206。在另一示例設計中,熵解碼器(例如,第1圖中的熵解碼器102)通過接收電路204將從位元流中解析出來的資訊傳輸至寫控制電路206,寫控制電路206將參考該資訊以設置轉置旗標FL。
假定逆掃描電路200是AVS2解碼器的一部分。根據AVS2的說明,當IntraModeldx=1和IsChroma=0時,若編碼單元類型=’I_2N’或者‘I_N’時,則執行QuantCoeffMatrix轉置過程(例如,將QuantCoeffMatrix[i][j]和QuantCoeffMatrix[j][i]進行轉置,其中i=0~(M1-1), j=0~(M2-1),M1是係數矩陣QuantCoeffMatrix的寬度,M2是係數矩陣QuantCoeffMatrix的高度),否則不執行QuantCoeffMatrix轉置過程。當執行QuantCoeffMatrix轉置過程時,轉置掃描/讀出順序用於從逆掃描電路200提供係數至逆量化電路(例如,第1圖中的逆量化電路106)。此時,轉置旗標FL設置為第一值,其表示需要係數轉置過程。然而,當不執行QuantCoeffMatrix轉置過程時,非轉置掃描/讀出順序用於從逆掃描電路200提供係數至逆量化電路(例如,第1圖中的逆量化電路106)。此時,轉置旗標FL設置為第二值,其表示不需要係數轉置過程。上述僅用作示例目的,並不用於限制本發明。當遵從不同視訊編碼標準的視訊解碼器採用逆掃描電路200時,可通過不同的規則設置轉置旗標FL。
請同時參考第2圖和第3圖,其中第3圖是根據本發明實施例的控制和執行係數轉置過程的示意圖。第2圖中的係數存取裝置202使用如第3圖所示的方法。在步驟302中,寫控制電路206檢測轉置旗標FL以確定是否需要係數轉置過程。如果與當前TB相關的轉置旗標FL表明當前TB不需要係數轉置過程,則繞開係數轉置過程。如果與當前TB相關的轉置旗標FL表明當前TB需要係數轉置過程,則流程繼續至步驟304。在步驟304中,寫控制電路206檢測IS儲存裝置201是否已準備接收當前TB內的一個CG的係數。如第2圖所示的讀電路210從IS儲存裝置210中存取係數,到後面的處理階段(例如,如第1圖所示的逆量化電路106)。當IS儲存裝置210已儲存滿等待被轉置到後面的處理階段(例如,如第1圖所示的逆量化電路106)的係數時,IS儲存裝置201沒有空閒的儲存空間以用於緩存新的係數。如果IS儲存裝置201還沒有準備接收係數,流程繼續至步驟306,以等待IS儲存裝置201準備接收係數。如果IS儲存裝置201已準備接收係數,流程繼續到步驟308和310。
在步驟308中,在熵解碼器(例如,如第1圖所示的熵解碼器102)生成係數,並且其被接收電路204接收之後,第一轉置處理電路212執行第一轉置過程(例如,內部CG轉置過程)124,以確定CG內係數Ceff的轉置係數位置。第4圖是根據本發明實施例的將第一轉置過程(例如,內部4x4 CG轉置過程)TP1應用到一個CG的的示意圖。第4圖的左部分顯示了在將第一轉置過程(例如,內部4x4 CG轉置過程)TP1應用到4x4 CG之前,該4x4 CG內16個係數的排列。第4圖的右部分顯示了在將第一轉置過程(例如,內部4x4 CG轉置過程)TP1應用到該4x4 CG之後,該4x4 CG內16個係數的排列。如第4圖所示,一個4x4 CG包括16個係數,其分配了不同的索引值0-15。該索引值表示熵解碼係數的順序。換句話說,熵解碼器(例如,如第1圖所示的熵解碼器102)以0→1→2 …→15的順序生成該16個係數。
如第4圖的左部分所示,索引值為‘0’的係數的非轉置係數位置是[0][0],索引值為‘1’的係數的非轉置係數位置是[1][0],索引值為‘5’的係數的非轉置係數位置是[2][0],索引值為‘6’的係數的非轉置係數位置是[3][0],索引值為‘2’的係數的非轉置係數位置是[0][1],索引值為‘4’的係數的非轉置係數位置是[1][1],索引值為‘7’的係數的非轉置係數位置是[2][1],索引值為‘12’的係數的非轉置係數位置是[3][1],索引值為‘3’的係數的非轉置係數位置是[0][2],索引值為‘8’的係數的非轉置係數位置是[1][2],索引值為‘11’的係數的非轉置係數位置是[2][2],索引值為‘13’的係數的非轉置係數位置是[3][2],索引值為‘9’的係數的非轉置係數位置是[0][3],索引值為‘10’的係數的非轉置係數位置是[1][3],索引值為‘14’的係數的非轉置係數位置是[2][3],以及索引值為‘15’的係數的非轉置係數位置是[3][3]。
第一轉置過程(例如,內部4x4 CG轉置過程)TP1可以在同一CG內給係數分配轉置係數位置。如第4圖的右部分所示,索引值為‘0’的係數的轉置係數位置是[0][0],索引值為‘1’的係數的轉置係數位置是[0][1],索引值為‘5’的係數的轉置係數位置是[0][2],索引值為‘6’的係數的轉置係數位置是[0][3],索引值為‘2’的係數的轉置係數位置是[1][0],索引值為‘4’的係數的轉置係數位置是[1][1],索引值為‘7’的係數的轉置係數位置是[1][2],索引值為‘12’的係數的轉置係數位置是[1][3],索引值為‘3’的係數的轉置係數位置是[2][0],索引值為‘8’的係數的轉置係數位置是[2][1],索引值為‘11’的係數的轉置係數位置是[2][2],索引值為‘13’的係數的轉置係數位置是[2][3],索引值為‘9’的係數的轉置係數位置是[3][0],索引值為‘10’的係數的轉置係數位置是[3][1],索引值為‘14’的係數的轉置係數位置是[3][2],以及索引值為‘15’的係數的轉置係數位置是[3][3]。
第5圖是根據本發明實施例的將第一轉置過程(例如內部4x4 CG轉置過程)TP1應用到同一8x8 TB內的不同4x4 CG的示意圖。第5圖的左部分顯示了在將第一轉置過程(例如,內部4x4 CG轉置過程)TP1應用到任何一個4x4 CG之前,8x8 TB(其被分為分別標記為CG0、CG1,CG2和CG3的四個4x4 CG)內64個係數的排列。第5圖的右部分顯示了在將第一轉置過程(例如,內部4x4 CG轉置過程)TP1應用到所有4x4 CG之後,該8x8 TB(其被分為分別標記為CG0、CG1,CG2和CG3的四個4x4 CG)內64個係數的排列。關於該TB的任意一個CG內的係數,其由熵解碼器(例如,如第1圖所示的熵解碼器102)生成,第一轉置過程(例如內部4x4 CG轉置過程)TP1確定其轉置係數位置。
在步驟310中,在熵解碼器(例如,如第1圖所示的熵解碼器102)生成係數Ceff,並且其被接收電路204接收之後,第二轉置處理電路214執行第二轉置過程(例如,外部CG轉置過程)124,以確定該TB內CG的轉置CG位置。第6圖是根據本發明實施例的將第二轉置過程(例如,外部4x4 CG轉置過程)TP2應用到一個8x8 TB的4x4 CG的示意圖。第6圖的左部分顯示了在將第二轉置過程(例如,內部4x4 CG轉置過程)TP2應用到一個8x8 TB的4x4 CG之前,四個4x4 CG的排列,並且第4圖的右部分顯示了在將第二轉置過程(例如,外部4x4 CG轉置過程)TP2應用到一個8x8 TB的4x4 CG之後,四個4x4 CG的排列。如第4圖所示,四個4x4 CG分配了不同的索引值0, 1, 2, 3,其分別表示標記「CG0」, 「CG1」, 「CG2」和「CG3」的尾碼。該索引值表示熵解碼4x4 CG的順序。換句話說,熵解碼器(例如,如第1圖所示的熵解碼器102)以0→1→2→3的順序生成一個8x8 TB內的四個4x4 CG。
如第6圖的左部分所示,索引值為「0」(即CG0)的CG的非轉置CG位置是[0][0],索引值為「1」(即CG1)的CG的非轉置CG位置是[1][0],索引值為「2」(即CG2)的CG的非轉置CG位置是[0][1],索引值為‘3」(即CG3)的CG的非轉置CG位置是[1][1]。
第二轉置過程(例如,外部4x4 CG轉置過程)TP2可以確定同一TB內CG的轉置CG位置。如第6圖的右部分所示,索引值為「0」(即CG0)的CG的轉置CG位置是[0][0],索引值為「1」(即CG1)的CG的轉置CG位置是[0][1],索引值為「2」(即CG2)的CG的轉置CG位置是[1][0],索引值為「3」(即CG3)的CG的轉置CG位置是[1][1]。
第7圖是根據本發明實施例的將第二轉置過程(例如外部4x4 CG轉置過程)TP2應用到同一8x8 TB內不同4x4 CG的示意圖。第7圖的左部分顯示了在將第二轉置過程(例如,外部4x4 CG轉置過程)TP2應用到任何一個4x4 CG之前,8x8 TB(其被分為分別標記為CG0、CG1,CG2和CG3的四個4x4 CG)內64個係數的排列。第7圖的右部分顯示了在將第二轉置過程(例如,外部4x4 CG轉置過程)TP2應用到所有4x4 CG之後,該8x8 TB(其被分為分別標記為CG0、CG1,CG2和CG3的四個4x4 CG)內64個係數的排列。為了簡化說明,假設在將第一轉置過程(例如內部4x4 CG轉置過程)TP1應用到8x8 TB內的每個4x4 CG之後,再將第二轉置過程(例如外部4x4 CG轉置過程)TP2應用到該8x8 TB內的4x4 CG。這樣,如第7圖的左部分所示的在將第二轉置過程(例如外部的4x4 CG轉置過程)TP2應用於任何一個4x4 CG之前,與如第5圖的右部分所示的在將第一轉置過程(內部4x4 CG轉置過程)TP1應用於所有4x4 CG之後,該8x8 TB內的64個係數的排列相同,但是此僅作示例目的,並不用作限制本發明。關於該TB的任意一個CG內的係數,其由熵解碼器(例如,如第1圖所示的熵解碼器102)生成,第二轉置過程(例如,外部4x4 CG裝置過程)TP2根據該熵解碼器(例如,如第1圖所示的熵解碼器102)所生成的CG索引可以確定該接收到的係數所屬的CG的轉置CG位置。
為了實現更好的視訊解碼性能,第一轉置處理電路212和第二轉置處理電路214以並行的方式執行第一轉置過程(步驟308)和第二轉置過程(步驟310)。也就是說,關於係數的轉置係數位置以及該係數所屬的CG的裝置CG位置的計算,第一轉置過程的處理時間與第二轉置過程的處理時間重疊。可選地,第一轉置處理電路212和第二轉置處理電路214以順序的方式執行第一轉置過程(步驟308)和第二轉置過程(步驟310)。例如,關於係數的轉置係數位置以及該係數所屬的CG的裝置CG位置的計算,第一轉置過程和第二轉置過程中的一個完成時,才開始另外一個。
在第一轉置處理電路212確定轉置係數位置之後,儲存位置確定電路216根據轉置係數位置確定CG內接收到的係數Ceff的儲存位置(步驟312)。隨後,寫電路208將該CG內接收到的係數Ceff寫入到IS儲存裝置201內所確定的儲存位置(步驟314)。以第4圖中的CG為例,儲存位置確定電路216給具有轉置係數位置的係數合理確定係數儲存位置。假設一個儲存位元組可以緩存四個係數,這樣,索引值為0, 1, 5, 6的係數可以儲存在第一儲存位元組中,索引值為2, 4, 7, 2的係數可以儲存在第二儲存位元組中,索引值為3, 8, 11, 13的係數可以儲存在第三儲存位元組中,以及索引值為9, 10, 14, 15的係數可以儲存在第四儲存位元組中。然而,在轉置旗標FL表明不需要係數轉置過程的情況下,索引值為0, 2, 3, 9的係數可以儲存在第一儲存位元組中,索引值為1, 4, 8, 0的係數可以儲存在第二儲存位元組中,索引值為5, 7, 11, 14的係數可以儲存在第三儲存位元組中,以及索引值為6, 12, 13, 15的係數可以儲存在第四儲存位元組中。
此外,在第二轉置處理電路214確定轉置CG位置之後,還將該轉置CG位置提供給寫電路208。在一個示例設計中,寫電路208進一步參考該轉置CG位置以控制所接收到的係數Ceff寫入到IS儲存裝置201內。也即是,當需要係數轉置過程時,根據儲存位置所確定的係數儲存位置以及第二轉置處理電路214所確定的CG位置,寫電路208確定接收到的係數Ceff的寫入位址。例如,在IS儲存裝置201內,可以將CG位置映射到特殊的基準位址,並且該係數儲存位置作為位址補償量。然而,若由於某些因素導致的TB內至少一個CG被跳過時,由於至少一個被跳過的CG,IS儲存裝置201內所分配的至少一個儲存空間將被填入預設值。因此,沒有有效地使用IS儲存裝置201。
在另一示例設計中,第二轉置處理電路214所確定的CG位置將通過寫電路208直接儲存到IS儲存裝置318(步驟318)。由於將非跳過的CG的轉置係數儲存到IS儲存裝置201內,沒有考慮轉置CG位置,則無需為每個跳過的CG在IS儲存裝置201內預留一個儲存空間。僅在儲存位置確定電路216所確定的係數儲存位置的控制下,寫電路208將每個非跳過的CG的轉置係數Ceff儲存到IS儲存裝置201。例如,假設跳過同一TB內的CG1和CG2,寫電路208直接將非跳過的CG0和CG3的轉置CG位置儲存到IS儲存裝置201的可用儲存位元組內,並根據儲存位置確定電路216所確定的係數儲存位置將非跳過的CG0和CG3的轉置係數儲存到IS儲存裝置201的可用儲存位元組內。例如,將非跳過的CG0和CG3的轉置係數儲存到IS儲存裝置201的連續的儲存位元組內。讀電路210參考從IS儲存裝置201中所獲得的非跳過的CG0和CG3的轉置CG位置,進而以轉置掃描/讀出順序從IS儲存裝置201中正確獲取轉置係數。簡言之,可以結合IS儲存裝置201內的轉置係數(其不受轉置CG位置影響)和IS儲存裝置201內的轉置CG位置來獲取轉置係數。但是,此僅作示例的目的,並不用作限制本發明。
在步驟316中,寫控制電路206檢測當前CG是否是該TB內的最後一個CG,如果當前CG是該TB內的最後一個CG,則該TB的係數轉置過程完成。如果當前CG是該TB內的最後一個CG,則流程繼續到步驟304,以檢測IS儲存裝置201是否已準備接收該TB內的下一CG的係數。
如上所述,在將由接收電路204所接收到的係數Ceff儲存到IS儲存裝置201之前,寫控制電路206根據與TB(其包括該接收的係數Ceff)相關的轉置旗標FL確定該接收的係數Ceff的儲存位置。當轉置旗標FL表明不需要係數轉置過程時,儲存位置確定電路216根據該接收的係數Ceff的非轉置係數位置確定其儲存位置,該接收的係數Ceff無需運行第一轉置處理電路212的處理(例如內部CG轉置處理)。並且,將該接收的係數Ceff所屬的CG的非轉置CG位置旁通到寫電路208,而無需運行第二轉置處理電路214的處理(例如外部CG轉置處理)。當轉置旗標FL表明需要係數轉置過程時,儲存位置確定電路216根據該接收的係數Ceff的轉置係數位置確定其儲存位置,其中該接收的係數Ceff的轉置係數位置是由第一轉置處理電路212的處理(例如內部CG轉置處理)而確定。在結合IS儲存裝置201的轉置係數和轉置CG位置之後,通過儲存TB的係數而無需對其應用係數轉置過程,單獨的IS儲存裝置可以支援係數的非轉置掃描/讀出順序,以用於後續處理階段(例如逆量化),並且,通過儲存該TB的係數且對其應用係數轉置過程,也可以支援係數的轉置掃描/讀出順序,以用於後續處理階段(例如逆量化)。也就是說,逆掃描電路200不需要具有第一IS儲存裝置和第二IS儲存裝置,其中,通過儲存TB的係數而無需對其應用係數轉置過程,第一IS儲存裝置用於支援係數的非轉置掃描/讀出順序,以用於後續處理階段(例如逆量化);通過儲存TB的係數而無需對其應用係數轉置過程,第二IS儲存裝置用於支援係數的轉置掃描/讀出順序,以用於後續處理階段(例如逆量化)。簡言之,具有本發明所提出的係數轉置功能的係數存取裝置202可以實現低成本的逆掃描,其僅需要單獨的IS儲存裝置(例如IS儲存裝置201),以支援用於後續處理階段(例如逆量化)的係數的不同的掃描/讀出順序。
此外,在支援用於後續處理階段(例如逆量化)的係數的轉置掃描/讀出順序的情況下,具有本發明所提出的係數轉置功能的係數存取裝置202也可以實現單獨IS儲存裝置201的高輸送量。下面將進行詳細說明。
第8圖是根據本發明實施例的逆量化的兩個係數輸入的情景的示意圖。第8圖的子圖(A)示出了逆量化的第一係數輸入的情景。從IS到IQ係數的非轉置掃描/讀出順序是以行掃描順序,且從左上到右下。這樣,從IS到IQ係數的非轉置掃描/讀出順序是0→2→3→9→32→34→35→41→1→4→8→10…→54→60→61→63,其中,索引值0-63表示熵解碼係數順序。第8圖的子圖(B)示出了逆量化的第二係數輸入的情景。從IS到IQ係數的轉置掃描/讀出順序是以列掃描順序,且從左上到右下。這樣,從IS到IQ係數的轉置掃描/讀出順序是0→1→5→6→16→17→21→22→2→4→7→12…→57→58→62→63,其中,索引值0-63表示熵解碼係數順序。
在逆量化的第一係數輸入的情景中,IS儲存裝置201將係數儲存到特定的佔用空間,以滿足逆量化過程中輸送量的要求。
第9圖是根據本發明實施例的IS儲存裝置的第一佔用空間的示意圖。在本實例中,逆量化過程的輸送量要求是每個時鐘週期一個像素(即1個像素/1T)。假設IS儲存裝置201是IS SRAM,其具有N個SRAM位元組(分別用位元組0-位元組(N-1)表示)。在本實例中,SRAM位元組大小是16位元。N個SRAM位元組中的每個用於儲存TB內一個像素的係數,其中N表示該TB內係數的數量。如第9圖所示,在TB內係數位置[0][0]上的係數儲存到SRAM位元組「位元組0」,在該TB內係數位置[0][1]上的係數儲存到SRAM位元組「位元組1」,在該TB內係數位置[0][2]上的係數儲存到SRAM位元組「位元組2」,在該TB內係數位置[0][3]上的係數儲存到SRAM位元組「位元組3」,在該TB內係數位置[0][4]上的係數儲存到SRAM位元組「位元組4」,在該TB內係數位置[0][5]上的係數儲存到SRAM位元組「位元組5」,在該TB內係數位置[0][6]上的係數儲存到SRAM位元組「位元組6」,在該TB內係數位置[0][7]上的係數儲存到SRAM位元組「位元組7」,在該TB內係數位置[1][0]上的係數儲存到SRAM位元組「位元組8」,等等。這樣,當讀電路(例如第2圖中的讀電路210)在N個時鐘週期內順序讀出這些SRAM位元組「位元組0」-「位元組(N-1) 」時,以如第8圖的子圖(A)所示的非轉置掃描/讀出順序0→2→3→9→32→34→35→41→1→4→8→10→…,將IS儲存裝置201內的係數饋入到後續處理階段(例如逆量化)。另外,在非轉置掃描/讀出順序的情況下,這些N個SRAM位元組中的每個可以在一個時鐘週期T內輸出一個係數,以滿足逆量化過程的輸送量要求。
第10圖是根據本發明實施例的IS儲存裝置的第二佔用空間的示意圖。在本實例中,逆量化過程的輸送量要求是每個時鐘週期兩個像素(即2個像素/1T)。假設IS儲存裝置201是IS SRAM,其具有(N/2)個SRAM位元組(分別用位元組0-位元組(N/2-1)表示)。在本實例中,SRAM位元組大小是32位元。N個SRAM位元組中的每個用於儲存TB內兩個像素的係數,其中N表示該TB內係數的數量。如第10圖所示,在該TB內係數位置[0][0]和[0][1]上的係數儲存到SRAM位元組「位元組0」,在該TB內係數位置[0][2]和[0][3]上的係數儲存到SRAM位元組「位元組1」,在該TB內係數位置[0][4]和[0][5]上的係數儲存到SRAM位元組「位元組2」,在該TB內係數位置[0][6]和[0][7]上的係數儲存到SRAM位元組「位元組3」,在該TB內係數位置[1][0]和[1][1]上的係數儲存到SRAM位元組「位元組4」,等等。這樣,當讀電路(例如第2圖中的讀電路210)在(N/2)個時鐘週期內順序讀出這些SRAM位元組「位元組0」-「位元組(N/2-1) 」時,以如第8圖的子圖(A)所示的非轉置掃描/讀出順序0, 2→3, 9→32, 34→35, 41→1, 4→8, 10→…,將IS儲存裝置201內的係數饋入到後續處理階段(例如逆量化)。另外,在非轉置掃描/讀出順序的情況下,這些(N/2)個SRAM位元組中的每個可以在一個時鐘週期T內輸出兩個係數,以滿足逆量化過程的輸送量要求。
第11圖是根據本發明實施例的IS儲存裝置的第三佔用空間的示意圖。在本實例中,逆量化過程的輸送量要求是每個時鐘週期四個像素(即4個像素/1T)。假設IS儲存裝置201是IS SRAM,其具有(N/4)個SRAM位元組(分別用位元組0-位元組(N/4-1)表示)。在本實例中,SRAM位元組大小是64位元。N個SRAM位元組中的每個用於儲存TB內四個像素的係數,其中N表示該TB內係數的數量。如第11圖所示,在該TB內係數位置[0][0], [0][1], [0][2]和[0][3]上的係數儲存到SRAM位元組「位元組 0」,在該TB內係數位置[0][4], [0][5], [0][6]和[0][7]上的係數儲存到SRAM位元組「位元組1」,在該TB內係數位置[1][0], [1][1], [1][2]和[1][3]上的係數儲存到SRAM位元組「位元組2」,等等。這樣,當讀電路(例如第2圖中的讀電路210)在(N/4)個時鐘週期內順序讀出這些SRAM位元組「位元組0」-「位元組(N/4-1) 」時,以如第8圖的子圖(A)所示的非轉置掃描/讀出順序0, 2, 3, 9→32, 34, 35, 41→1, 4, 8, 10→…,將IS儲存裝置201內的係數饋入到後續處理階段(例如逆量化)。另外,在非轉置掃描/讀出順序的情況下,這些(N/4)個SRAM位元組中的每個可以在一個時鐘週期T內輸出四個係數,以滿足逆量化過程的輸送量要求。
當逆量化過程的輸送量要求為每個時鐘週期內兩個像素(即2個像素/1T)時,第10圖中的第二佔用空間可以滿足如第8圖的子圖(A)中的非轉置掃描/讀出順序的情況下的輸送量要求,但是,不能滿足如第8圖的子圖(B)中的轉置掃描/讀出順序的情況下的輸送量要求。具體地,為了滿足如第8圖的子圖(B)中的轉置掃描/讀出順序的情況下的輸送量要求,需要在一個時鐘週期內從IS儲存裝置中讀出兩個係數位置(例如,[0][0]和[1][0])上的係數。但是,根據如第10圖中的第二佔用空間,需要將兩個係數位置上的係數儲存到不同的SRAM位元組中。例如,將在係數位置[0][0]上的係數儲存到一個SRAM位元組「位元組0」中,並將在係數位置[1][0]上的係數儲存到一個SRAM位元組「位元組4」中。
當逆量化過程的輸送量要求為每個時鐘週期內四個像素(即4個像素/1T)時,第11圖中的第三佔用空間可以滿足如第8圖的子圖(A)中的非轉置掃描/讀出順序的情況下的輸送量要求,但是,不能滿足如第8圖的子圖(B)中的轉置掃描/讀出順序的情況下的輸送量要求。具體地,為了滿足如第8圖的子圖(B)中的轉置掃描/讀出順序的情況下的輸送量要求,需要在一個時鐘週期內從IS儲存裝置中讀出四個係數位置(例如,[0][0], [1][0], [2][0]和[3][0])上的係數。但是,根據如第11圖中的第三佔用空間,不能將四個係數位置(例如,[0][0], [1][0], [2][0]和[3][0])上的係數儲存到同一SRAM位元組中。
在本發明所提出的係數轉置過程的幫助下,為了滿足如第8圖的子圖(B)中的轉置掃描/讀出順序的情況下的輸送量要求(例如,2個像素/1T或者4個像素/1T),可以適當調整IS儲存裝置的佔用空間。
當轉置旗標FL表明由於逆量化的係數輸入所要求的轉置掃描/讀出順序而需要係數轉置過程時,該係數轉置過程包括第一轉置過程(例如,內部CG轉置過程)和第二轉置過程(例如,外部CG轉置過程),將TB內轉置係數位置上的係數儲存到IS儲存裝置201中。例如,根據如第7圖的右部分所示的轉置係數排列,將8x8 TB內轉置係數位置上的係數儲存到IS儲存裝置201中。
第12圖是根據本發明實施例的IS儲存裝置的修改後的第二佔用空間的示意圖。在本實例中,逆量化過程的輸送量要求是每個時鐘週期兩個像素(即2個像素/1T)。假設IS儲存裝置201是IS SRAM,其具有(N/2)個SRAM位元組(分別用位元組0-位元組(N/2-1)表示)。在本實例中,SRAM位元組大小是32位元。N個SRAM位元組中的每個用於儲存TB內兩個像素的係數,其中N表示該TB內係數的數量。如第12圖所示,在第7圖的右部分所示的該TB內係數位置[0][0]和[0][1]上的係數儲存到SRAM位元組「位元組0」,在第7圖的右部分所示的該TB內係數位置[0][2]和[0][3]上的係數儲存到SRAM位元組「位元組1」,在第7圖的右部分所示的該TB內係數位置[0][4]和[0][5]上的係數儲存到SRAM位元組「位元組2」,在第7圖的右部分所示的該TB內係數位置[0][6]和[0][7]上的係數儲存到SRAM位元組「位元組3」,在第7圖的右部分所示的該TB內係數位置[1][0]和[1][1]上的係數儲存到SRAM位元組「位元組4」,等等。這樣,當讀電路(例如第2圖中的讀電路210)在(N/2)個時鐘週期內順序讀出這些SRAM位元組「位元組0」-「位元組(N/2-1) 」時,以如第8圖的子圖(B)所示的轉置掃描/讀出順序0, 1→5, 6→16, 17→21, 22→2, 4→7, 12→…,將IS儲存裝置201內的係數饋入到後續處理階段(例如逆量化)。另外,在轉置掃描/讀出順序的情況下,這些(N/2)個SRAM位元組中的每個可以在一個時鐘週期T內輸出兩個係數,以滿足逆量化過程的輸送量要求。
第13圖是根據本發明實施例的IS儲存裝置的修改後的第三佔用空間的示意圖。在本實例中,逆量化過程的輸送量要求是每個時鐘週期四個像素(即4個像素/1T)。假設IS儲存裝置201是IS SRAM,其具有(N/4)個SRAM位元組(分別用位元組 0-位元組 (N/4-1)表示)。在本實例中,SRAM位元組大小是64位元。N個SRAM位元組中的每個用於儲存TB內四個像素的係數,其中N表示該TB內係數的數量。如第13圖所示,在第7圖的右部分所示的該TB內係數位置[0][0], [0][1], [0][2]和[0][3]上的係數儲存到SRAM位元組「位元組0」,在第7圖的右部分所示的該TB內係數位置[0][4], [0][5], [0][6]和[0][7]上的係數儲存到SRAM位元組「位元組1」,在第7圖的右部分所示的該TB內係數位置[1][0], [1][1], [1][2]和[1][3]上的係數儲存到SRAM位元組「位元組2」,等等。這樣,當讀電路(例如第2圖中的讀電路210)在(N/4)個時鐘週期內順序讀出這些SRAM位元組「位元組0」-「位元組(N/4-1) 」時,以如第8圖的子圖(B)所示的轉置掃描/讀出順序0, 1, 5, 6→16, 17, 21, 22→2, 4, 7, 12→…,將IS儲存裝置201內的係數饋入到後續處理階段(例如逆量化)。另外,在轉置掃描/讀出順序的情況下,這些(N/4)個SRAM位元組中的每個可以在一個時鐘週期T內輸出四個係數,以滿足逆量化過程的輸送量要求。
在逆量化過程的輸送量要求為每時鐘週期兩個像素(即,2個像素/1T)的一種情況下,當轉置旗標FL表明不需要本發明所提出的係數轉置過程時,IS儲存裝置201採用第10圖中的第二佔用空間。當轉置旗標FL表明需要本發明所提出的係數轉置過程時,IS儲存裝置201採用第12圖中的修改後的第二佔用空間。因此,在用於逆量化的係數的不同掃描/讀出順序下,可以實現高性能和低成本的逆掃描設計。
在逆量化過程的輸送量要求為每時鐘週期四個像素(即,4個像素/1T)的另一情況下,當轉置旗標FL表明不需要本發明所提出的係數轉置過程時,IS儲存裝置201採用第11圖中的第三佔用空間。當轉置旗標FL表明需要本發明所提出的係數轉置過程時,IS儲存裝置201採用第13圖中的修改後的第三佔用空間。因此,在用於逆量化的係數的不同掃描/讀出順序下,可以實現高性能和低成本的逆掃描設計。
應注意,當轉置旗標FL表明需要本發明所提出的係數轉置過程時,由於在所提出的係數轉置過程的控制下,這些係數被儲存到儲存裝置201中,讀電路210可以從IS儲存裝置201直接讀出係數至後續處理階段(例如,第1圖中的逆量化電路106)。換句話說,在將所儲存的係數從IS儲存裝置201傳輸到後續處理階段(例如,第1圖中的逆量化電路106)之前,無需額外的係數轉置過程來處理在IS儲存裝置201內一個TB的所有儲存的係數。
如上所述,當IS儲存裝置201使用第10圖中的第二佔用空間來儲存係數,如第5圖的左部分所示的非轉置係數位置[0][0]和[0][1]上的係數儲存到SRAM位元組「位元組0’,如第5圖的左部分所示的非轉置係數位置[0][2]和[0][3]上的係數儲存到SRAM位元組「位元組1’,如第5圖的左部分所示的非轉置係數位置[0][4]和[0][5]上的係數儲存到SRAM位元組「位元組2’,以及如第5圖的左部分所示的非轉置係數位置[0][6]和[0][7]上的係數儲存到SRAM位元組「位元組3’。當IS儲存裝置201使用第12圖中的修改後的第二佔用空間來儲存係數時,如第7圖的右部分所示的轉置係數位置[0][0]和[0][1]上的係數儲存到SRAM位元組「位元組0」,如第7圖的右部分所示的轉置係數位置[0][2]和[0][3]上的係數儲存到SRAM位元組「位元組1」,如第7圖的右部分所示的轉置係數位置[0][4]和[0][5]上的係數儲存到SRAM位元組「位元組2」,以及如第7圖的右部分所示的轉置係數位置[0][6]和[0][7]上的係數儲存到SRAM位元組「位元組3」。在用於逆量化的係數的非轉置掃描/讀出順序下與在用於逆量化的係數的轉置掃描/讀出順序下,讀電路210的讀出操作相同。基於這個發現,讀電路210可以使用相同的映射表LUT,使得其以非轉置掃描/讀出順序或者轉置掃描/讀出順序讀出係數,其中該映射表LUT記錄儲存位置與係數位置之間的映射關係。由於無需維護用於以非轉置掃描/讀出順序讀出係數的第一映射表和用於以轉置掃描/讀出順序讀出係數的第二映射表,進一步減少硬體成本。
在上述第2圖所示的實施例中,可以使用專用硬體來實現係數存取裝置202,使得本發明所提出的係數轉置過程可以在該硬體內實施。但是,此僅用作示例的目的,並不用於限制本發明。可選地,本發明所提出的係數轉置過程可以在軟體內實施。
第14圖是根據本發明實施例的具有基於軟體的係數存取控制的逆掃描設計的示意圖。程式代碼PROG儲存在機器可讀介質1404內。例如,機器可讀介質1404可以是非易失性記憶體,如快閃記憶體。當處理器1402載入並執行該程式代碼PROG時,該程式代碼PROG指示處理器1402以執行第3圖中的控制流程。即是,在處理器1402中運行的該程式代碼PROG可以實現上述係數存取裝置202所處理的同一功能和操作。例如,處理器1402根據轉置旗標FL確定每個接收的係數的儲存位置,並將接收的係數儲存到IS儲存裝置201的所確定的儲存位置。又例如,處理器1402參考同一映射表LUT,進而以非轉置掃描/讀出順序或者轉置掃描/讀出順序從IS儲存裝置201讀出係數至後續處理階段(例如,第1圖中的逆量化電路106)。根據上述涉及IS儲存裝置201的基於硬體的係數存取控制的說明,本領域的技術人員可以很容易地理解IS儲存裝置201的基於軟體的係數存取控制的原理,為了簡潔,此處將省略詳細的說明。 以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
100‧‧‧視訊解碼器
102‧‧‧熵解碼器
104,200‧‧‧逆掃描電路
106‧‧‧逆量化電路
108‧‧‧逆變換電路
110‧‧‧重構電路
112‧‧‧運動向量計算電路
114‧‧‧運動補償電路
116‧‧‧幀內預測電路
118‧‧‧幀間/幀內模式選擇電路
120‧‧‧環內濾波器
122‧‧‧參考幀暫存器
201‧‧‧IS儲存裝置
202‧‧‧係數存取裝置
204‧‧‧接收電路
206‧‧‧寫控制電路
208‧‧‧寫電路
210‧‧‧讀電路
212‧‧‧第一轉置處理電路
214‧‧‧第二轉置處理電路
216‧‧‧儲存位置確定電路
302-316‧‧‧步驟
1402‧‧‧處理器
1404‧‧‧機器可讀介質
第1圖是例示根據本發明實施例的使用所提出的係數轉置設計的視訊解碼器的示意圖。 第2圖是例示根據本發明實施例的逆掃描電路的示意圖。 第3圖是例示根據本發明實施例的控制和執行係數轉置過程的方法的流程圖。 第4圖是例示根據本發明實施例的將第一轉置過程TP1(例如內部4x4 CG轉置過程)應用於一個4x4 CG的示意圖。 第5圖是例示根據本發明實施例的將第一轉置過程TP1(例如內部4x4 CG轉置過程)應用於同一8x8 TB內不同的4x4 CG的示意圖。 第6圖是例示根據本發明實施例的將第二轉置過程TP2(例如外部4x4 CG轉置過程)應用於一個8x8 TB的4x4 CG的示意圖。 第7圖是例示根據本發明實施例的將第二轉置過程TP2(例如外部4x4 CG轉置過程)應用於同一8x8 TB內不同的4x4 CG的示意圖。 第8圖是例示根據本發明實施例的逆量化的兩個係數輸入的情景的示意圖。 第9圖是例示根據本發明實施例的IS儲存裝置的第一佔用空間的示意圖。 第10圖是例示根據本發明實施例的IS儲存裝置的第二佔用空間的示意圖。 第11圖是例示根據本發明實施例的IS儲存裝置的第三佔用空間的示意圖。 第12圖是例示根據本發明實施例的IS儲存裝置的修改後的第二佔用空間的示意圖。 第13圖是例示根據本發明實施例的IS儲存裝置的修改後的第三佔用空間的示意圖。 第14圖是例示根據本發明實施例的具有基於軟體的係數存取控制的逆掃描設計的示意圖。

Claims (21)

  1. 一種係數存取方法,包括: 接收熵解碼過程所生成的係數,其中所述接收到的係數是變換塊的一部分; 在將所述接收到的系統儲存到逆掃描儲存裝置之前,根據與所述變換塊相關的轉置旗標確定所述接收到的係數的儲存位置,其中所述轉置旗標表示是否需要係數轉置過程; 在確定所述儲存位置之後,將所述接收到的係數儲存到所述逆掃描儲存裝置內所述儲存位置。
  2. 如申請專利範圍第1項所述之係數存取方法,其中,所述變換塊被分成多個係數組,所述係數包含在所述變換塊的一個係數組內; 根據所述轉置旗標確定所述接收到的係數的所述儲存位置包括: 當所述轉置旗標指示需要所述係數轉置過程時, 執行第一轉置過程以確定所述係數組內所述係數的轉置係數位置;以及 根據所述轉置係數位置確定所述接收到的係數的所述儲存位置; 所述係數存取方法進一步包括: 當所述轉置旗標指示需要所述係數轉置過程時, 執行第二轉置過程以確定所述變換塊內所述係數組的轉置係數組位置;以及 將所述確定的轉置係數組位置儲存到所述逆掃描儲存裝置內,其中所述接收到的係數是在所述確定的儲存位置的控制下被儲存到所述逆掃描儲存裝置內。
  3. 如申請專利範圍第2項所述之係數存取方法,其中,以並行的方式執行所述第一轉置過程和所述第二裝置過程。
  4. 如申請專利範圍第1項所述之係數存取方法,其中,還包括: 當所述轉置旗標表示需要所述係數轉置過程時,直接從所述逆掃描儲存裝置中讀出所述變換塊的係數至逆量化過程。
  5. 如申請專利範圍第1項所述之係數存取方法,其中, 當所述轉置旗標表示不需要所述係數轉置過程時,所述係數被儲存到滿足逆量化過程的輸送量要求的所述逆掃描儲存裝置; 當所述轉置旗標表示需要所述係數轉置過程時,所述係數被儲存到滿足逆量化過程的同一輸送量要求的同一所述逆掃描儲存裝置。
  6. 如申請專利範圍第1項所述之係數存取方法,其中,進一步包括: 當所述轉置旗標表示不需要所述係數轉置過程時,參考映射表以從所述逆掃描儲存裝置讀出所述變換塊的所述係數至逆量化過程; 當所述轉置旗標表示需要所述係數轉置過程時,參考同一所述映射表以從所述逆掃描儲存裝置讀出所述變換塊的所述係數至逆量化過程。
  7. 如申請專利範圍第1項所述之係數存取方法,其中,所述係數存取方法是第二代音視訊編碼標準解碼過程的一部分。
  8. 一種係數存取裝置,包括: 接收電路,用於接收由熵解碼器所生成的係數,其中所述接收到的係數是變換塊的一部分; 寫控制電路,用於在將所述接收到的系統儲存到逆掃描儲存裝置之前,根據與所述變換塊相關的轉置旗標確定所述接收到的係數的儲存位置,其中所述轉置旗標表示是否需要係數轉置過程;以及 寫電路,用於在確定所述儲存位置之後,將所述接收到的係數儲存到所述逆掃描儲存裝置內所述確定的儲存位置。
  9. 如申請專利範圍第8項所述之係數存取裝置,其中,所述變換塊被分成多個係數組,所述係數包含在所述變換塊的一個係數組內; 所述寫控制電路包括: 第一轉置處理電路,用於在所述轉置旗標表示需要所述係數轉置過程時,執行第一轉置過程以確定所述係數組內所述係數的轉置係數位置; 第二轉置處理電路,用於在所述轉置旗標表示需要所述係數轉置過程時,執行第二轉置過程以確定所述變換塊內所述係數組的轉置係數組位置;以及 儲存位置確定電路,用於根據所述轉置係數位置確定所述接收到的係數的所述儲存位置; 其中,所述寫電路進一步用於將所述確定的轉置係數組位置儲存到所述逆掃描儲存裝置內,並且,在所述確定的儲存位置的控制下,將所述接收到的係數儲存到所述逆掃描儲存裝置內。
  10. 如申請專利範圍第9項所述之係數存取裝置,其中,所述第一轉置處理電路和所述第二轉置處理電路以並行的方式執行所述第一轉置過程和所述第二裝置過程。
  11. 如申請專利範圍第8項所述之係數存取裝置,其中,還包括: 讀電路,用於在所述轉置旗標表示需要所述係數轉置過程時,直接從所述逆掃描儲存裝置中讀出所述變換塊的係數至逆量化過程。
  12. 如申請專利範圍第8項所述之係數存取裝置,其中, 當所述轉置旗標表示不需要所述係數轉置過程時,所述寫電路將所述係數儲存到滿足逆量化過程的輸送量要求的所述逆掃描儲存裝置; 當所述轉置旗標表示需要所述係數轉置過程時,所述寫電路將所述係數儲存到滿足逆量化過程的同一輸送量要求的同一所述逆掃描儲存裝置。
  13. 如申請專利範圍第8項所述之係數存取裝置,其中,還包括: 讀電路,用於在所述轉置旗標表示不需要所述係數轉置過程時,參考映射表以從所述逆掃描儲存裝置讀出所述變換塊的所述係數至逆量化過程;以及,進一步用於在所述轉置旗標表示需要所述係數轉置過程時,參考同一所述映射表以從所述逆掃描儲存裝置讀出所述變換塊的所述係數至逆量化過程。
  14. 如申請專利範圍第8項所述之係數存取裝置,其中,所述係數存取裝置是第二代音視訊編碼標準解碼器的一部分。
  15. 一種非暫時性機器可讀介質,儲存有程式代碼,其中,在由處理器執行時,所述程式代碼指示所述處理器以執行如下步驟: 接收熵解碼過程所生成的係數,其中所述接收到的係數是變換塊的一部分; 在將所述接收到的系統儲存到逆掃描儲存裝置之前,根據與所述變換塊相關的轉置旗標確定所述接收到的係數的儲存位置,其中所述轉置旗標表示是否需要係數轉置過程; 在確定所述儲存位置之後,將所述接收到的係數儲存到所述逆掃描儲存裝置內所述確定的儲存位置。
  16. 如申請專利範圍第15項所述之非暫時性機器可讀介質,其中,所述變換塊被分成多個係數組,所述係數包含在所述變換塊的一個係數組內; 根據所述轉置旗標確定所述接收到的係數的所述儲存位置包括: 當所述轉置旗標指示需要所述係數轉置過程時, 執行第一轉置過程以確定所述係數組內所述係數的轉置係數位置;以及 根據所述轉置係數位置確定所述接收到的係數的所述儲存位置; 所述程式代碼進一步指示所述處理器以執行如下步驟:當所述轉置旗標指示需要所述係數轉置過程時, 執行第二轉置過程以確定所述變換塊內所述係數組的轉置係數組位置;以及 將所述確定的轉置係數組位置儲存到所述逆掃描儲存裝置內,其中所述接收到的係數是在所述確定的儲存位置的控制下被儲存到所述逆掃描儲存裝置內。
  17. 如申請專利範圍第16項所述之非暫時性機器可讀介質,其中,所述第一轉置過程和所述第二裝置過程以並行的方式被執行。
  18. 如申請專利範圍第15項所述之非暫時性機器可讀介質,其中,所述程式代碼進一步指示所述處理器以執行以下步驟: 當所述轉置旗標表示需要所述係數轉置過程時,直接從所述逆掃描儲存裝置中讀出所述變換塊的係數至逆量化過程。
  19. 如申請專利範圍第15項所述之非暫時性機器可讀介質,其中, 當所述轉置旗標表示不需要所述係數轉置過程時,所述係數被儲存到滿足逆量化過程的輸送量要求的所述逆掃描儲存裝置; 當所述轉置旗標表示需要所述係數轉置過程時,所述係數被儲存到滿足逆量化過程的同一輸送量要求的同一所述逆掃描儲存裝置,所述逆掃描儲存裝置。
  20. 如申請專利範圍第15項所述之非暫時性非暫時性機器可讀介質,其中,所述程式代碼還指示所述處理器以執行以下步驟: 當所述轉置旗標表示不需要所述係數轉置過程時,參考映射表以從所述逆掃描儲存裝置讀出所述變換塊的所述係數至逆量化過程; 當所述轉置旗標表示需要所述係數轉置過程時,參考同一所述映射表以從所述逆掃描儲存裝置讀出所述變換塊的所述係數至逆量化過程。
  21. 如申請專利範圍第15項所述之非暫時性機器可讀介質,其中,所述步驟包含在第二代音視訊編碼標準解碼過程中。
TW106118948A 2016-06-07 2017-06-07 一種將係數儲存到逆掃描儲存裝置前確定係數的儲存位置的方法和相關裝置及機器可讀介質 TW201811036A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201662346596P 2016-06-07 2016-06-07
US62/346,596 2016-06-07
US15/615,845 US20170353738A1 (en) 2016-06-07 2017-06-07 Method for determining storage position of coefficient according to transpose flag before coefficient is stored into inverse scan storage device and associated apparatus and machine readable medium
US15/615,845 2017-06-07

Publications (1)

Publication Number Publication Date
TW201811036A true TW201811036A (zh) 2018-03-16

Family

ID=60483642

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106118948A TW201811036A (zh) 2016-06-07 2017-06-07 一種將係數儲存到逆掃描儲存裝置前確定係數的儲存位置的方法和相關裝置及機器可讀介質

Country Status (3)

Country Link
US (1) US20170353738A1 (zh)
CN (1) CN109005410A (zh)
TW (1) TW201811036A (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109660803A (zh) * 2019-01-22 2019-04-19 西安电子科技大学 一种编码块的量化方法及用于hevc编码的量化方法
CN114513663A (zh) * 2020-11-17 2022-05-17 腾讯科技(深圳)有限公司 视频解码方法、装置及电子设备

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10397577B2 (en) * 2011-03-08 2019-08-27 Velos Media, Llc Inverse scan order for significance map coding of transform coefficients in video coding
CN103581676B (zh) * 2012-08-10 2016-12-28 联发科技股份有限公司 视频编码变换系数的解码方法及装置
US9813737B2 (en) * 2013-09-19 2017-11-07 Blackberry Limited Transposing a block of transform coefficients, based upon an intra-prediction mode

Also Published As

Publication number Publication date
CN109005410A (zh) 2018-12-14
US20170353738A1 (en) 2017-12-07

Similar Documents

Publication Publication Date Title
US10200706B2 (en) Pipelined video decoder system
Zhou et al. A 530 Mpixels/s 4096x2160@ 60fps H. 264/AVC high profile video decoder chip
TW583883B (en) System and method for multiple channel video transcoding
JP5969914B2 (ja) 動画像圧縮伸張装置
JP5300176B2 (ja) 高性能ビデオプロセッサ用の低電力メモリ階層
US9530387B2 (en) Adjusting direct memory access transfers used in video decoding
US9161056B2 (en) Method for low memory footprint compressed video decoding
TWI487380B (zh) A data processing device, a video coding / decoding device and a data processing system
CN107623854B (zh) 部分解码电路和部分编码电路
TWI709330B (zh) 調色板解碼的裝置和方法
TWI675584B (zh) 具有多個句法解析電路和/或多個後解碼電路的視訊處理系統
JP2014096755A (ja) 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
US20140219361A1 (en) Image data encoding for access by raster and by macroblock
JP6679290B2 (ja) 半導体装置
TW201811036A (zh) 一種將係數儲存到逆掃描儲存裝置前確定係數的儲存位置的方法和相關裝置及機器可讀介質
US8443413B2 (en) Low-latency multichannel video port aggregator
TW200818900A (en) Method for mapping memory addresses, memory accessing apparatus and method thereof
US20140185928A1 (en) Hardware-supported huffman coding of images
US20140301719A1 (en) Processing cache for multiple bit precisions
US10085022B1 (en) Two-dimensional transformation with minimum buffering
JP2009130599A (ja) 動画像復号装置
US9807417B2 (en) Image processor
TWI565303B (zh) 影像處理系統及影像處理方法
JP2017117145A (ja) 半導体装置、データ処理システム及び半導体装置の制御方法
US10075722B1 (en) Multi-core video decoder system having at least one shared storage space accessed by different video decoder cores and related video decoding method