TWI799302B - 應用於離散與逆離散正弦餘弦變換的運算電路 - Google Patents
應用於離散與逆離散正弦餘弦變換的運算電路 Download PDFInfo
- Publication number
- TWI799302B TWI799302B TW111123777A TW111123777A TWI799302B TW I799302 B TWI799302 B TW I799302B TW 111123777 A TW111123777 A TW 111123777A TW 111123777 A TW111123777 A TW 111123777A TW I799302 B TWI799302 B TW I799302B
- Authority
- TW
- Taiwan
- Prior art keywords
- bit
- control signal
- sign
- multiplicand
- output
- Prior art date
Links
- 230000000295 complement effect Effects 0.000 claims abstract description 48
- 238000001514 detection method Methods 0.000 claims description 29
- 238000006073 displacement reaction Methods 0.000 claims description 29
- 230000007717 exclusion Effects 0.000 claims description 5
- 238000004364 calculation method Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 5
- 238000000034 method Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 102100022311 SPRY domain-containing SOCS box protein 4 Human genes 0.000 description 2
- 101100451681 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) SSA4 gene Proteins 0.000 description 2
- 101150069080 Spsb4 gene Proteins 0.000 description 2
- 101100366687 Streptococcus agalactiae serotype V (strain ATCC BAA-611 / 2603 V/R) ssb4 gene Proteins 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000003786 synthesis reaction Methods 0.000 description 2
- 102100023431 E3 ubiquitin-protein ligase TRIM21 Human genes 0.000 description 1
- 101000685877 Homo sapiens E3 ubiquitin-protein ligase TRIM21 Proteins 0.000 description 1
- 101000824892 Homo sapiens SOSS complex subunit B1 Proteins 0.000 description 1
- 102100022320 SPRY domain-containing SOCS box protein 1 Human genes 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000004804 winding Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
- G06F7/523—Multiplying only
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/01—Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/50—Adding; Subtracting
- G06F7/501—Half or full adders, i.e. basic adder cells for one denomination
Landscapes
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Complex Calculations (AREA)
- Cleaning In Electrography (AREA)
- Silicon Polymers (AREA)
Abstract
一種應用於離散與逆離散正弦餘弦變換的運算電路。第一及第二項次運算電路的高位元運算電路對被乘數左移,在有效時輸出並決定正負號後在對應位元愈高時進行愈高位元數且不取補數的左移產生高位元運算結果。第一及第二項次運算電路的最低位元運算電路在有效時輸出被乘數並決定正負號,產生最低位元運算結果。第一加法器加總高低位元運算結果為項次運算結果。第三項次運算電路在有效時輸出加數及決定正負號,與取二補數加總產生第三項次運算結果。取二補數運算電路進行邏輯運算產生取二補數。第二加法器加總各項次運算結果,產生總運算結果。
Description
本發明是關於運算技術,尤其是關於一種應用於離散與逆離散正弦餘弦變換的運算電路。
隨著多媒體技術在軍事、民用領域的應用範圍漸廣,以及消費性電子產品的不斷發展,視訊編碼技術是備受關注的研究領域。視訊編碼技術是建構影片與播放影片的主要技術,是所有影視訊應用的基礎。其中,視訊編解碼過程常需要使用應用於離散與逆離散正弦餘弦變換的計算,其電路的複雜度相當大。
因此,如何設計一個新的應用於離散與逆離散正弦餘弦變換的運算電路,以達到快速運算以降低電路延遲的目的,乃為此一業界亟待解決的問題。
鑑於先前技術的問題,本發明之一目的在於提供一種應用於離散與逆離散正弦餘弦變換的運算電路,以改善先前技術。
本發明包含一種應用於離散與逆離散正弦餘弦變換的運算電路,包含:第一以及一第二項次運算電路、第三項次運算電路、取二補數運算電路以及第二加法器。第一項次運算電路以及第二項次運算電路分別包含:複數高位元運算電路、最低位元運算電路以及第一加法器。高位元運算電路分別配置以根據由乘數決定之位移控制訊號對被乘數選擇性進行不同位元數之左移產生位移被乘數,僅根據由乘數決定之位元有效控制訊號之有效準位輸出位移被乘數,根據由乘數決定之位元符號控制訊號決定位移被乘數之正負號,以及在任一等高位元運算電路對應的位元愈高時對位移被乘數進行愈高位元數且不取補數的左移,以產生高位元運算結果。最低位元運算電路配置以僅根據由乘數決定之最低位元有效控制訊號之有效準位輸出被乘數,以及根據由乘數決定之最低位元符號控制訊號決定被乘數之正負號,以產生最低位元運算結果。第一加法器配置以加總高位元運算結果以及最低位元運算結果為項次運算結果。第三項次運算電路配置以根據項次有效控制訊號之有效準位輸出加數,以及根據項次符號控制訊號決定加數之正負號,並與取二補數總和加總以產生第三項次運算結果。取二補數運算電路配置以對第一項次運算電路及第二項次運算電路中所有位元的符號控制訊號以及最低位元符號控制訊號進行預設邏輯運算產生取二補數。第二加法器配置以加總第一以及第二項次運算電路的項次運算結果以及第三項次運算結果,以產生總運算結果。
有關本案的特徵、實作與功效,茲配合圖式作較佳實施例詳細說明如下。
本發明之一目的在於提供一種應用於離散與逆離散正弦餘弦變換的運算電路,藉由易於化簡的方式,有利於電路合成,既可降低取二補數運算帶來的時間延遲,亦可減少繞線複雜度,而具有延遲低且面積小的優點。並且,運算電路藉由零偵測機制避免被乘數為零時造成的額外運算量,進一步降低運算的功耗。
請參照圖1。圖1顯示本發明之一實施例中,一種應用於離散與逆離散正弦餘弦變換的運算電路1的方塊圖。更詳細地說,運算電路1可應用以進行離散正弦變換(discrete sine transform;DST)、離散餘弦變換(discrete cosine transform;DCT)、逆離散正弦變換(inverse discrete sine transform;IDST)以及逆離散餘弦變換(inverse discrete cosine transform;IDCT)。
運算電路1包含:第一項次運算電路100、第二項次運算電路120、第三項次運算電路140、取二補數運算電路145以及第二加法器160。
於一實施例中,視訊編解碼過程常需要使用離散與逆離散正弦餘弦變換的計算。在進行上述變換的方法中,往往需要進行下列計算:Y=±X0×A±X1×B±C。其中,X0為第一項次的被乘數,A為第一項次的乘數,其為一個常數。X1為第二項次的被乘數,B為第二項次的乘數,其為一個常數。C為上一級待加減的輸入值。
因此,上述的第一項次運算電路100、第二項次運算電路120以及第三項次運算電路140分別對應計算上述運算式中的第一項次(±X0×A)、第二項次(±X1×B)以及第三項次(C)。
請同時參照第2A圖。第2A圖顯示本發明一實施例中,第一項次運算電路100更詳細的方塊圖。如前所述,第一項次運算電路100配置以計算第一項次±X0×A,並包含:高位元運算電路102A-102F、最低位元運算電路104以及第一加法器106。
高位元運算電路102A-102F於本實施例中的數目為六個,且結構大同小異。以高位元運算電路102A為例,其包含位元左移多工器110、位元輸出單元112、位元互斥或閘114以及位元左移單元116。
位元左移多工器110配置以依據由乘數A決定之位移控制訊號SHA0對被乘數X0選擇性進行不同位元數之左移以產生位移被乘數X00。
於一實施例中,位元左移多工器110是依據位移控制訊號SHA0對被乘數X0選擇性進行0、1、2或3位元之左移。因此,位移控制訊號SHA0實際上為一個兩位元的控制訊號。舉例而言,當位移控制訊號SHA0分別為00、01、10及11時,位元左移多工器110分別對被乘數X0進行0、1、2或3位元之左移,以輸出位移被乘數X00。
位元輸出單元112配置以根據由乘數A決定之位元有效控制訊號SEA0決定位移被乘數X00的輸出。於一實施例中,位元輸出單元112是由及閘實現,且位元有效控制訊號SEA0可具有分別為0及1的無效準位以及有效準位。
當位元有效控制訊號SEA0為無效準位0時,無論位移被乘數X00的值為何,位元輸出單元112將使位移被乘數X00輸出為0。而當位元有效控制訊號SEA0為有效準位1時,位元輸出單元112將輸出位移被乘數X00的值。
位元互斥或閘114配置以根據位元符號控制訊號SSA0決定位移被乘數X00的正負號。於一實施例中,位元符號控制訊號SSA0可具有分別為1及0的負號準位以及正號準位。
於一實施例中,位元符號控制訊號SSA0是由具有原始值的位元符號控制訊號SSA0'產生,而位元符號控制訊號SSA0'實際上是根據由乘數A決定之高位元符號訊號SA0以及項次符號訊號SH0進行互斥或邏輯運算,再與位元有效控制訊號SEA0進行和(AND)邏輯運算產生。項次符號訊號SH0是依第一項次的正負號決定。當第一項次為正號,項次符號訊號SH0將為0,而當第一項次為負號,項次符號訊號SH0將為1。
於一實施例中,各高位元運算電路102A-102F更分別包含零偵測單元118。以高位元運算電路102A為例,零偵測單元118配置以在零偵測訊號ZD位於非零準位時使位元符號控制訊號SSA0維持原始值並使高位元運算電路102A據以運作,且在零偵測訊號ZD位於零準位時使位元符號控制訊號SSA0為零並使高位元運算電路102A據以運作。在圖2A中,經過零偵測單元118調整後輸出的位元符號控制訊號SSA0是以星號標記。
於一實施例中,零偵測訊號ZD是由被乘數X0與被乘數X0自己進行或邏輯運算產生。更詳細的說,第一項次運算電路100可更包含或閘108,且或閘108的輸入端均接收被乘數X0,以產生零偵測訊號ZD。在被乘數X0為非零的數值時,零偵測訊號ZD亦將為非零數值而位於非零準位。而當被乘數X0為零時,零偵測訊號ZD亦將為零而位於零準位。
當位元符號控制訊號SSA0為負號準位1時,位元互斥或閘114將據以對位移被乘數X00進行互斥或的邏輯運算,以輸出為負數之位移被乘數X00。而當位元符號控制訊號SSA0為正號準位0時,位元互斥或閘114將據以對位移被乘數X00進行互斥或的邏輯運算,以輸出為正數之位移被乘數X00。其中,位元符號控制訊號SSA0會進一步被取二補數運算電路145應用以計算取二補數。
由於在部分狀況下,被乘數X0雖然為零,卻可能因為取為負數而必須取二的補數運算,導致過多不必要的計算量卻產生一樣的結果。因此,零偵測單元118將在被乘數X0為零的狀況下,強制將位元符號控制訊號SSA0設置為0而取為正數,使位元互斥或閘114大幅降低不必需的計算量。
相對的,如果被乘數X0如果不為零,則零偵測單元118將輸出被乘數X0原本的正負號,亦即為正號準位0或負號準位1其中之一的位元符號控制訊號SSA0。
位元左移單元116配置以在高位元運算電路102A對應的位元愈高對位移被乘數X00進行愈高位元數且不取補數的左移,以產生高位元運算結果XS00。於一實施例中,高位元運算電路102A對應最高的位元,並對位移被乘數X00進行11位元的左移。
類似地,高位元運算電路102B-102F所包含的位元左移多工器110分別根據位移控制訊號SHA1-SHA5對被乘數X0選擇性進行0、1、2或3位元之左移,以輸出位移被乘數X01-X05。高位元運算電路102B-102F所包含的位元輸出單元112分別根據位元有效控制訊號SEA1-SEA5決定位移被乘數X01-X05是否有效輸出。
高位元運算電路102B-102F所包含的位元互斥或閘114分別根據位元符號控制訊號SSA1-SSA5決定位移被乘數X01-X05的正負號。高位元運算電路102B-102F所包含的零偵測單元118判斷被乘數X01-X05是否為零,進而決定是否使位元符號控制訊號SSA0輸出為原始值或零並據以運作。
高位元運算電路102B-102F所包含的位元左移單元116分別在高位元運算電路102B-102F對應的位元愈高對位移被乘數X01-X05進行愈高位元數的左移,例如依序分別進行9、7、5、3及1位元的左移,以產生高位元運算結果XS01-XS05。
最低位元運算電路104包含:最低位元輸出單元111以及最低位元互斥或閘113。
最低位元輸出單元111配置以在由乘數A決定之最低位元有效控制訊號SEA6決定被乘數X0的輸出。於一實施例中,最低位元輸出單元111是由及閘實現,且最低位元有效控制訊號SEA6可具有分別為0及1的無效準位以及有效準位。
當最低位元有效控制訊號SEA6為無效準位0時,無論位移被乘數X0的值為何,最低位元輸出單元111將使位移被乘數X00輸出為0。而當最低位元有效控制訊號SEA6為有效準位1時,最低位元輸出單元111將輸出被乘數X0的值。
最低位元互斥或閘113配置以根據最低位元符號控制訊號SSA6決定被乘數X0的正負號。於一實施例中,最低位元符號控制訊號SSA6可具有分別為0及1的正號準位以及負號準位。
於一實施例中,最低位元符號控制訊號SSA6實際上是根據由乘數A決定之最低位元符號訊號SA6以及項次符號訊號SH0進行互斥或邏輯運算產生。
因此,當最低位元符號控制訊號SSA6為負號準位1時,最低位元互斥或閘113將據以對被乘數X0進行互斥或的邏輯運算,以輸出為負數之被乘數X0。而當最低位元符號控制訊號SSA6為正號準位0時,最低位元互斥或閘113將據以對被乘數X0進行互斥或的邏輯運算,以輸出為正數之被乘數X0。其中,其中,最低位元符號控制訊號SSA6會進一步被取二補數運算電路145應用以計算取二補數。最低位元互斥或閘113所輸出具有正負號的被乘數X0,將做為最低位元運算結果XS06。
於一實施例中,最低位元運算電路104包含最低位元零偵測單元109,配置以在零偵測訊號ZD位於非零準位時使最低位元符號控制訊號SSA6維持原始值,以及在零偵測訊號ZD位於零準位時使最低位元符號控制訊號SSA6為零並據以運作。
第一加法器106配置以加總高位元運算結果XS01-XS05以及最低位元運算結果XS06為項次運算結果XTA。
於一實施例中,位移控制訊號SHA0-SHA5、位元有效控制訊號SEA0-SEA5、高位元符號訊號SA0-SA5、最低位元有效控制訊號SEA6以及最低位元符號訊號SA6,是由乘數A對乘數對應表進行查表決定。
請參照表1。表1為本發明一實施例中,乘數對應表的內容。
表1
乘數A | SEA0-SEA6 | SA0-SA6 | SHA0-SHA5 |
0 | 0000000 | 0000000 | 000000000000 |
2 | 0000010 | 0000000 | 000000000000 |
4 | 0000010 | 0000000 | 000000000001 |
64 | 0000100 | 0000000 | 000000001100 |
87 | 0001111 | 0000001 | 000000010110 |
75 | 0001111 | 0000000 | 000000010000 |
83 | 0001111 | 0000001 | 000000010101 |
18 | 0000110 | 0000000 | 000000000100 |
-83 | 0001111 | 0001110 | 000000010101 |
36 | 0000110 | 0000000 | 000000001001 |
90 | 0011110 | 0001100 | 000000000000 |
於一實施例中,表1所示的乘數對應表,可應用於HEVC/AVS2/VVC/AVS3的視訊編碼標準。需注意的是,表1僅示例性的列出部分數值。在實際應用中,乘數對應表可包含更多互相對應的數值,而不僅限於表1所列的數值。
第一行欄位對應的內容為乘數A的數值,例如第二行第七列欄位對應的83。第二行欄位對應的內容為位元有效控制訊號SEA0-SEA5以及最低位元有效控制訊號SEA6的內容,且各欄位的數目,例如第二行第五列欄位對應的0001111,依序對應最高位元至最低位元。
第三行欄位對應的內容為高位元符號訊號SA0-SA5以及最低位元符號訊號SA6的內容,且各欄位的數目,例如第三行第五列欄位對應的0000000,依序對應最高位元至最低位元的訊號數值。第四行欄位對應的內容為位移控制訊號SHA0-SHA5的內容,且各欄位的數目,例如第四行第五列欄位對應的000000010100,每兩位元依序對應最高位元至最低位元的訊號數值。
因此,對於上述乘數A為83的範例來說,當X0是1,以16進制表示為0x0001,高位元運算電路102A-102F所包含的位元左移多工器110分別根據查表所得的位移控制訊號SHA0-SHA5的數值(000000010101),分別進行0、0、0、1、1及1位元的位移,以分別成為0x0001、0x0001、0x0001、0x0002、0x0002及0x0002的位移被乘數X00-X05。
接著,高位元運算電路102A-102F所包含的位元輸出單元112以及最低位元運算電路104所包含的最低位元輸出單元111,分別根據查表所得的位元有效控制訊號SEA0-SEA5及最低位元有效控制訊號SEA6的數值(0001111),決定位移被乘數X00-X02為無效而輸出0,並決定位移被乘數X03-X06均有效。因此,高位元運算電路102A-102F所包含的位元輸出單元112以及最低位元運算電路104所包含的最低位元輸出單元111將分別輸出0x0000、0x0000、0x0000、0x0002、0x0002及0x0002及0x0001。
由於被乘數X0不為0,因此零偵測單元118根據位於非零準位的零偵測訊號ZD輸出維持原始值的位元符號控制訊號SSA0~SSA5並使高位元運算電路102A~102F據以運作。
高位元運算電路102A-102F所包含的位元互斥或閘114以及最低位元運算電路104所包含的最低位元互斥或閘113,分別根據查表所得的位元符號控制訊號SSA0-SSA5以及最低位元符號控制訊號SSA6的數值,決定位移被乘數X00-X05以及被乘數X0的正負號。更詳細地說,位元符號控制訊號SSA0-SSA5以及最低位元符號控制訊號SSA6的數值,是根據查表所得的高位元符號訊號SA0-SA5以及最低位元符號訊號SA6的數值(0000001),分別與項次符號訊號SH0進行互斥或邏輯運算產生。
於本實施例中,為正號的第一項次使項次符號訊號SH0為0。因此,位元符號控制訊號SSA0-SSA5以及最低位元符號控制訊號SSA6的數值將分別為(0000001)。高位元運算電路102A-102F所包含的位元互斥或閘114將分別輸出具有正負號的位移被乘數X00-X05,分別為0x0000、0x0000、0x0000、0x0002、0x0002及0x0002。最低位元運算電路104所包含的最低位元互斥或閘113則將輸出具有正負號的被乘數X0,以產生為0xFFFE的最低位元運算結果XS06。
接著,高位元運算電路102A-102F所包含的位元左移單元116分別對於具有正負號的位移被乘數X00-X05進行11、9、7、5、3及1位元的左移,以產生高位元運算結果XS00-XS05。其中,位移被乘數X00-X02由於為0,因此經過位元的左移後的高位元運算結果XS00-XS02仍均為0。位移被乘數X03-X05分別為0x0002、0x0002及0x0002,經過5、3及1位元的左移後所產生的高位元運算結果XS03-XS05分別為0x0040、0x0010及0x0004。
第一加法器106將高位元運算結果XS00-XS05以及最低位元運算結果XS06進行加總為相當於±X0×A的項次運算結果XTA。因此,項次運算結果XTA將為0x0040+0x0010+0x0004+0xFFFE=0x0052。
因此,第一項次運算電路100可根據上述的過程,計算第一項次±X0×A。
請參照第2B圖。第2B圖顯示本發明一實施例中,第二項次運算電路120更詳細的方塊圖。
類似地,第二項次運算電路120亦可具有與第一項次運算電路100相同的結構,包含:高位元運算電路102A-102F、最低位元運算電路104以及第一加法器106。由於第二項次運算電路120與第一項次運算電路100的結構與計算方式大同小異,因此不再對第二項次運算電路120的細節進行贅述。
在乘數B為-83時,亦將參照表一對應於83的數值查找相關的數據。在被乘數X1若為1,以16進制表示為0x0001,高位元運算電路102A-102F所包含的位元左移多工器110將根據查表所得的位移控制訊號SHB0-SHB5產生為0x0000、0x0000、0x0000、0x0002、0x0002及0x0002的位移被乘數X10-X15。高位元運算電路102A-102F所包含的位元輸出單元112以及最低位元運算電路104所包含的最低位元輸出單元111將分別輸出0x0000、0x0000、0x0000、0x0002、0x0002及0x0002及0x0001。
由於被乘數X1不為0,因此零偵測單元118根據位於非零準位的零偵測訊號ZD時使位元符號控制訊號SSB0~SSB5維持原始值並使高位元運算電路102A~102F據以運作。高位元運算電路102A-102F所包含的位元互斥或閘114以及最低位元運算電路104所包含的最低位元互斥或閘113,分別根據查表所得的位元符號控制訊號SSB0-SSB5以及最低位元符號控制訊號SSB6的數值,決定位移被乘數X10-X15以及被乘數X1的正負號。更詳細地說,位元符號控制訊號SSB0-SSB5以及最低位元符號控制訊號SSB6的數值,是根據查表所得的高位元符號訊號SB0-SB5以及最低位元符號訊號SB6的數值(0001110),分別與項次符號訊號SH1進行互斥或邏輯運算產生。
於本實施例中,為負號的第二項次使項次符號訊號SH1為1,位元符號控制訊號SSB0-SSB5以及最低位元符號控制訊號SSB6的數值將分別為(1110001)。高位元運算電路102A-102F所包含的位元互斥或閘114將分別輸出具有正負號的位移被乘數X10-X15,分別為0x0000、0x0000、0x0000、0xFFFD、0xFFFD及0xFFFD。最低位元運算電路104所包含的最低位元互斥或閘113則將輸出具有正負號的被乘數X1,以產生為0x0001的最低位元運算結果XS06。
接著,高位元運算電路102A-102F所包含的位元左移單元116分別對於具有正負號的位移被乘數X10-X15進行11、9、7、5、3及1位元的左移,以產生高位元運算結果XS10-XS15,並分別為0x0000、0x0000、0x0000、0xFFA0、0xFFE8及0xFFFA。
第一加法器106將高位元運算結果XS10-XS15以及最低位元運算結果XS16進行加總為相當於±X1×B的項次運算結果XTB。因此,項次運算結果XTB將為:0x0000+0x0000+0x0000+0xFFA0+0xFFE8+0xFFFA+0x0001=0xFF83=-125。
第三項次運算電路140包含項次輸出單元150、項次互斥或閘152以及第三加法器154。
項次輸出單元150配置以根據項次有效控制訊號SEC的決定加數C是否有效輸出。當項次有效控制訊號SEC為無效準位0時,無論加數C的值為何,項次輸出單元150將使加數C輸出為0。而當項次有效控制訊號SEC為有效準位1時,項次輸出單元150將輸出加數C的值。
項次互斥或閘152根據項次符號控制訊號SSC決定加數C的正負號。於本實施例中,為正號的第三項次使項次符號控制訊號SSC為0,並使項次互斥或閘152進行互斥或邏輯運算後,輸出為正值的加數C。為負號的第三項次使項次符號控制訊號SSC為1,並使項次互斥或閘152進行互斥或邏輯運算後,輸出為負值的加數C。
於一實施例中,加數C為0且項次符號控制訊號SSC為0。
第三加法器154配置以使具有正負號的加數C與取二補數總和TC加總以產生第三項次運算結果XTC。
請參照圖3。圖3顯示本發明一實施例中,取二補數運算電路145更詳細的方塊圖。取二補數運算電路145包含複數第一邏輯運算電路300A~300E、第二邏輯運算電路310以及輸出電路330。
於一實施例中,當高位元運算電路的數目為N,第一邏輯運算電路的數目為N-1,以對應N-1個最高位元的高位元運算電路。以圖2的實施例為範例,高位元運算電路102A-102F的數目為6。因此第一邏輯運算電路300A~300E的數目為5,以對應5個最高位元的高位元運算電路102A-102E進行運算。
以第一邏輯運算電路300A為例,其包含:補數及閘330以及補數互斥或閘340。補數及閘330配置以對第一項次運算電路100以及第二項次運算電路120中相對應的高位元運算電路102A所對應的位元符號控制訊號SSA0、SSB0進行運算產生及閘輸出訊號AO0。補數互斥或閘340配置以對第一項次運算電路100以及第二項次運算電路120中相對應的高位元運算電路102A所對應的位元符號控制訊號SSA0、SSB0進行運算產生互斥或閘輸出訊號XO0。
類似地,第一邏輯運算電路300B~300E分別對應高位元運算電路102B~102E所對應的位元符號控制訊號SSA1~SSA4、SSB1~SSB4進行邏輯運算,分別產生及閘輸出訊號AO1~AO4以及互斥或閘輸出訊號XO1~XO4。
在上述範例中,由於位元符號控制訊號SSA0~SSA4均為0且位元符號控制訊號SSB0~SSB4為00011,因此及閘輸出訊號AO1~AO4均為0且互斥或閘輸出訊號XO1~XO4為00011。
第二邏輯運算電路310配置以對應第一項次運算電路100以及第二項次運算電路120中具有最低位元的其中之一高位元運算電路102F以及最低位元運算電路104進行運算,以根據項次符號控制訊號SSC以及最低位元符號控制訊號SSA6、SSB6選擇複數預設邏輯運算式其中之一,對位元符號控制訊號SSA5、SSB5進行邏輯運算產生補數輸出訊號CO。
於一實施例中,預設邏輯運算式是如表2所示:
表2
SSC、SSA6、SSB6 | CO |
000 | SSA5&SSB5, SSA5^SSB5, 0 |
001 | SSA5&SSB5, SSA5^SSB5, 1 |
010 | SSA5&SSB5, SSA5^SSB5, 1 |
011 | SSA5|SSB5, ~(SSA5^SSB5), 0 |
100 | SSA5&SSB5, SSA5^SSB5, 1 |
101 | SSA5|SSB5, ~(SSA5^SSB5), 0 |
110 | SSA5|SSB5, ~(SSA5^SSB5), 0 |
111 | SSA5|SSB5, ~(SSA5^SSB5), 1 |
其中,符號「&」為及邏輯運算,符號「^」為互斥或邏輯運算,符號「|」為或邏輯運算,符號「~」為否邏輯運算。
於上述實施例中,項次符號控制訊號SSC為0,最低位元符號控制訊號SSA6、SSB6分別為1及0。因此,表2中的邏輯運算式「SSA5&SSB5, SSA5^SSB5, 1」將被選擇以計算出3位元且為(0, 1, 1)的補數輸出訊號CO。
輸出電路330配置以將第一邏輯運算電路300A~300E的及閘輸出訊號AO0~AO4以及互斥或閘輸出訊號XO0~XO4加總後,其值為2’b0101000再與補數輸出訊號相加(0, 1, 1)產生取二補數TC,其值為0x2b=43。第三加法器154配置以使具有正負號的加數C與取二補數總和TC加總以產生第三項次運算結果XTC。所以算式Y=+83×1-83×1+0,SCC0=0,TC=得到XTC=43。
第二加法器160配置以加總第一以及第二項次運算電路100及120的項次運算結果XTA、XTB以及第三項次運算結果XTC,以產生總運算結果Y。需注意的是,在圖1中,第二加法器160是繪示為單一個加法器。然而在實作中,第二加法器160亦可由兩個加法器實現,其中一個將項次運算結果XTA、XTB加總,另一個則將前一個加法器加總的結果再與第三項次運算結果XTC,以產生總運算結果Y。本發明不限於此。以範例Y=±X0×A±X1×B±C=+1×83-1x83+0=0。其中,XTA=0x0052;XTB=0xFF83;XTC=0x2b;Y=XTA+XTB+XTC=0x0052+0xFF83+0x2b=0x0000。
需注意的是,上述的實施例是以應用於HEVC/AVS2/VVC/AVS3視訊編碼標準的乘數對應表為範例進行說明。於其他實施例中,本發明的運算電路1亦可採用應用於例如,但不限於VP9以及AV1視訊編碼標準的乘數對應表來實現。
需注意的是,上述的實施方式僅為一範例。於其他實施例中,本領域的通常知識者當可在不違背本發明的精神下進行更動。
綜合上述,本發明中應用於離散與逆離散正弦餘弦變換的運算電路藉由易於化簡的方式,有利於電路合成,既可降低取二補數運算帶來的時間延遲,亦可減少繞線複雜度,而具有延遲低且面積小的優點。並且,運算電路藉由零偵測機制避免被乘數為零時造成的額外運算量,進一步降低運算的功耗。
雖然本案之實施例如上所述,然而該些實施例並非用來限定本案,本技術領域具有通常知識者可依據本案之明示或隱含之內容對本案之技術特徵施以變化,凡此種種變化均可能屬於本案所尋求之專利保護範疇,換言之,本案之專利保護範圍須視本說明書之申請專利範圍所界定者為準。
1:運算電路
100:第一項次運算電路
102A-102F:高位元運算電路
104:最低位元運算電路
106:第一加法器
108:或閘
110:位元左移多工器
111:最低位元輸出單元
112:位元輸出單元
113:最低位元互斥或閘
114:位元互斥或閘
116:位元左移單元
118:零偵測單元
120:第二項次運算電路
140:第三項次運算電路
145:取二補數運算電路
150:項次輸出單元
152:項次互斥或閘
154:第三加法器
160:第二加法器
300A~300E:第一邏輯運算電路
310:第二邏輯運算電路
320:輸出電路
330:補數及閘
340:補數互斥或閘
AO0~AO4:及閘輸出訊號
C:加數
CO:補數輸出訊號
SHA0-SHA5、SHB0-SHB5:位移控制訊號
SA0-SA5、SB0-SB5:高位元符號訊號
SA6、SB6:最低位元符號訊號
SEA0-SEA5、SEB0-SEB5:位元有效控制訊號
SEA6、SEB6:最低位元有效控制訊號
SEC:項次有效控制訊號
SH0、SH1:項次符號訊號
SSA0-SSA5、SSB0-SSB5、SSA0'-SSA5'、SSB0'-SSB5':位元符號控制訊號
SSA6、SSB6、SSA6'、SSB6':最低位元符號控制訊號
SSC:項次符號控制訊號
TC:取二補數總和
X0、X1:被乘數
X00-X05、X10-X15:位移被乘數
XS00-XS05、XS10-XS15:高位元運算結果
XS06、XS16:最低位元運算結果
XTA、XTB:項次運算結果
XTC:第三項次運算結果
XO0~XO4:互斥或閘輸出訊號
Y:總運算結果
ZD:零偵測訊號
[圖1]顯示本發明之一實施例中,一種應用於離散與逆離散正弦餘弦變換的運算電路的方塊圖;
[圖2A]顯示本發明一實施例中,第一項次運算電路更詳細的方塊圖;
[圖2B]顯示本發明一實施例中,第二項次運算電路更詳細的方塊圖;以及
[圖3]顯示本發明一實施例中,取二補數運算電路更詳細的方塊圖。
1:運算電路
100:第一項次運算電路
106:第一加法器
120:第二項次運算電路
140:第三項次運算電路
145:取二補數運算電路
150:項次輸出單元
152:項次互斥或閘
154:第三加法器
160:第二加法器
C:加數
SHA0-SHA5、SHB0-SHB5:位移控制訊號
SA0-SA5、SB0-SB5:高位元符號訊號
SA6、SB6:最低位元符號訊號
SEA0-SEA5、SEB0-SEB5:位元有效控制訊號
SEA6、SEB6:最低位元有效控制訊號
SEC:項次有效控制訊號
SSC:項次符號控制訊號
TC:取二補數總和
X0、X1:被乘數
XTA、XTB:項次運算結果
XTC:第三項次運算結果
Y:總運算結果
Claims (10)
- 一種應用於離散及逆離散正弦餘弦變換的運算電路,包含: 一第一項次運算電路以及一第二項次運算電路,分別包含: 複數高位元運算電路,分別配置以根據由一乘數決定之一位移控制訊號對一被乘數選擇性進行不同位元數之左移產生一位移被乘數,僅根據由該乘數決定之一位元有效控制訊號之一有效準位輸出該位移被乘數,根據由該乘數決定之一位元符號控制訊號決定該位移被乘數之正負號,以及在任一該等高位元運算電路對應的位元愈高時對該位移被乘數進行愈高位元數且不取補數的左移,以產生一高位元運算結果; 一最低位元運算電路,配置以僅根據由該乘數決定之一最低位元有效控制訊號之該有效準位輸出該被乘數,以及根據由該乘數決定之一最低位元符號控制訊號決定該被乘數之正負號,以產生一最低位元運算結果;以及 一第一加法器,配置以加總該高位元運算結果以及該最低位元運算結果為一項次運算結果; 一第三項次運算電路,配置以根據一項次有效控制訊號之該有效準位輸出一加數,以及根據一項次符號控制訊號決定該加數之正負號,並與一取二補數總和加總以產生一第三項次運算結果; 一取二補數運算電路,配置以對該第一項次運算電路及該第二項次運算電路中所有位元的該符號控制訊號以及該最低位元符號控制訊號進行一預設邏輯運算產生該取二補數;以及 一第二加法器,配置以加總該第一以及一第二項次運算電路的該項次運算結果以及該第三項次運算結果,以產生一總運算結果。
- 如請求項1所述之運算電路,其中該等高位元運算電路分別包含: 一位元左移多工器,配置以依據該位移控制訊號對該被乘數選擇性進行不同位元數之左移以產生該位移被乘數; 一位元輸出單元,配置以在該位元有效控制訊號位於該有效準位時輸出該位移被乘數,以及在該位元有效控制訊號位於一無效準位時使該位移被乘數輸出為零; 一位元互斥或閘,配置以在該位元符號控制訊號位於一正號準位時輸出為正數之該位移被乘數,以及在該位元符號控制訊號位於一負號準位時輸出為負數之該位移被乘數;以及 一位元左移單元,配置以在該等位元運算電路對應的位元愈高對該位移被乘數進行愈高位元數且不取補數的左移,以產生該高位元運算結果。
- 如請求項2所述之運算電路,其中該等高位元運算電路的數目為六,且各該等高位元運算電路之該位元左移單元分別進行11、9、7、5、3及1位元的左移,該位元左移多工器依據該位移控制訊號對該被乘數選擇性進行0、1、2或3位元之左移,以產生該位移被乘數。
- 如請求項2所述之運算電路,其中該最低位元運算電路包含: 一最低位元輸出單元,配置以在該最低位元有效控制訊號位於該有效準位輸出該被乘數,以及在該最低位元有效控制訊號位於該無效準位時使該被乘數輸出為零;以及 一最低位元互斥或閘,配置以在該最低位元符號控制訊號位於該正號準位輸出為正數之該被乘數,以及在該最低位元符號控制訊號位於該負號準位時輸出為負數之該被乘數,以產生該最低位元運算結果。
- 如請求項1所述之運算電路,其中該第三項次運算電路更包含: 一項次輸出單元,配置以在該項次有效控制訊號位於該有效準位輸出該加數,以及在該項次有效控制訊號位於一無效準位時使該加數輸出為零; 一項次互斥或閘,配置以在該項次符號控制訊號位於一正號準位輸出為正數之該加數,以及在該項次符號控制訊號位於一負號準位時輸出為負數之該加數;以及 一第三加法器,配置以使該加數與該取二補數總和加總以產生該第三項次運算結果。
- 如請求項1所述之運算電路,其中該位移控制訊號、該位元有效控制訊號、該位元符號控制訊號、該最低位元有效控制訊號以及該最低位元符號控制訊號是由該乘數對一乘數對應表進行查表決定,其中該乘數對應表對應於HEVC、AVS2、VP9、AV1、VVC以及AVS3標準其中之一。
- 如請求項6所述之運算電路,其中該乘數對應表對應於HEVC、AVS2、VP9、AV1、VVC以及AVS3標準其中之一。
- 如請求項1所述之運算電路,其中該等高位元運算電路的數目為N,該取二補數運算電路包含: 複數第一邏輯運算電路,配置以對應該第一以及該第二項次運算電路中具有N-1個最高位元的該等高位元運算電路進行運算,各包含: 一補數及閘,配置以對該第一以及該第二項次運算電路中相對應的其中之一該等高位元運算電路所對應的該位元符號控制訊號進行運算產生一及閘輸出訊號; 一補數互斥或閘,配置以對該第一以及該第二項次運算電路中相對應的其中之一該等高位元運算電路所對應的該位元符號控制訊號進行運算產生一互斥或閘輸出訊號; 一第二邏輯運算電路,配置以對應該第一以及該第二項次運算電路中具有最低位元的其中之一該等高位元運算電路以及該最低位元運算電路進行運算,以根據該項次符號控制訊號以及該最低位元符號控制訊號選擇複數預設邏輯運算式其中之一,對該位元符號控制訊號進行邏輯運算產生一補數輸出訊號;以及 一輸出電路,配置以將該等第一邏輯運算電路的該及閘輸出訊號以及該互斥或閘輸出訊號加總後,再與該補數輸出訊號相加產生該取二補數。
- 如請求項1所述之運算電路,其中該位元符號控制訊號是根據由該乘數決定之一高位元符號訊號以及一項次符號訊號進行互斥或邏輯運算產生,該最低位元符號控制訊號是根據由該乘數決定之一最低位元符號訊號以及該項次符號進行互斥或邏輯運算產生。
- 如請求項9所述之運算電路,其中該等高位元運算電路更分別包含一零偵測單元,配置以在一零偵測訊號位於一非零準位時使該位元符號控制訊號維持一原始值並使該等高位元運算電路據以運作,且在該零偵測訊號位於一零準位時使該位元符號控制訊號為零並使該等高位元運算電路據以運作;以及 該最低位元運算電路包含一最低位元零偵測單元,配置以在該零偵測訊號位於該非零準位時使該最低位元符號控制訊號維持一原始值並使該最低位元運算電路據以運作,以及在該零偵測訊號位於該零準位時使該最低位元符號控制訊號為零並使該最低位元運算電路據以運作; 其中該零偵測訊號為該被乘數與該被乘數自己進行或邏輯運算產生。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW111123777A TWI799302B (zh) | 2022-06-24 | 2022-06-24 | 應用於離散與逆離散正弦餘弦變換的運算電路 |
US18/211,605 US20230418560A1 (en) | 2022-06-24 | 2023-06-20 | Computation circuit used in DCT, DST, IDCT and IDST |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW111123777A TWI799302B (zh) | 2022-06-24 | 2022-06-24 | 應用於離散與逆離散正弦餘弦變換的運算電路 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI799302B true TWI799302B (zh) | 2023-04-11 |
TW202401242A TW202401242A (zh) | 2024-01-01 |
Family
ID=86948687
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111123777A TWI799302B (zh) | 2022-06-24 | 2022-06-24 | 應用於離散與逆離散正弦餘弦變換的運算電路 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20230418560A1 (zh) |
TW (1) | TWI799302B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201122846A (en) * | 2009-06-24 | 2011-07-01 | Qualcomm Inc | 8-point transform for media data coding |
TWI423046B (zh) * | 2010-12-30 | 2014-01-11 | Univ Nat Cheng Kung | 以離散傅立葉轉換為核心之修正型離散餘弦正轉換、反轉換之系統 |
CN105974997A (zh) * | 2016-04-29 | 2016-09-28 | 洛阳理工学院 | 一种正弦波信号的数字实现方法 |
TW202109317A (zh) * | 2019-08-16 | 2021-03-01 | 瑞昱半導體股份有限公司 | 應用於離散及逆離散正弦餘弦變換的運算電路 |
-
2022
- 2022-06-24 TW TW111123777A patent/TWI799302B/zh active
-
2023
- 2023-06-20 US US18/211,605 patent/US20230418560A1/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201122846A (en) * | 2009-06-24 | 2011-07-01 | Qualcomm Inc | 8-point transform for media data coding |
TWI423046B (zh) * | 2010-12-30 | 2014-01-11 | Univ Nat Cheng Kung | 以離散傅立葉轉換為核心之修正型離散餘弦正轉換、反轉換之系統 |
CN105974997A (zh) * | 2016-04-29 | 2016-09-28 | 洛阳理工学院 | 一种正弦波信号的数字实现方法 |
TW202109317A (zh) * | 2019-08-16 | 2021-03-01 | 瑞昱半導體股份有限公司 | 應用於離散及逆離散正弦餘弦變換的運算電路 |
Also Published As
Publication number | Publication date |
---|---|
TW202401242A (zh) | 2024-01-01 |
US20230418560A1 (en) | 2023-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8069200B2 (en) | Apparatus and method for implementing floating point additive and shift operations | |
Venkata Dharani et al. | Booth multiplier: the systematic study | |
TWI799302B (zh) | 應用於離散與逆離散正弦餘弦變換的運算電路 | |
Moskal et al. | Design and synthesis of a carry-free signed-digit decimal adder | |
Chiranjeevi et al. | Pipeline Architecture for N= K* 2 L Bit Modular ALU: Case Study between Current Generation Computing and Vedic Computing | |
TWI718625B (zh) | 應用於離散及逆離散正弦餘弦變換的運算電路 | |
Zarandi et al. | An Efficient Component for Designing Signed Reverse Converters for a Class of RNS Moduli Sets of Composite Form $\{2^{k}, 2^{P}-1\} $ | |
WO2005086675A2 (en) | Arithmetic circuit with balanced logic levels for low-power operation | |
Kumawat et al. | Design and comparison of 8× 8 Wallace Tree Multiplier using CMOS and GDI technology | |
Rafiq et al. | Design of an improved low-power and high-speed booth multiplier | |
CN112422979B (zh) | 应用于离散及逆离散正弦余弦变换的运算电路 | |
CN117395440A (zh) | 应用于离散与逆离散正弦余弦变换的运算电路 | |
Armand et al. | Low power design of binary signed digit residue number system adder | |
Timarchi et al. | Improved modulo 2n+ 1 adder design | |
Mohan et al. | Implementation of Quaternary Signed Adder System | |
JP4290203B2 (ja) | リダクションアレイの装置および方法 | |
Arnold | LPVIP: A low-power ROM-less ALU for low-precision LNS | |
JPH02287874A (ja) | 積和演算装置 | |
Vani et al. | VLSI design of a novel area efficient fir filter design using roba multiplier | |
Bhosale et al. | Optimization of Partial Products in Modified Booth Multiplier | |
US7849118B2 (en) | Data transformation method and data transformation circuit capable of saving numeral operations | |
US6519620B1 (en) | Saturation select apparatus and method therefor | |
Madhuri et al. | Analysis of reconfigurable multipliers for integer and Galois field multiplication based on high speed adders | |
US7177894B2 (en) | Switching activity reduced coding for low-power digital signal processing circuitry | |
Kannurao et al. | Identification of complement single variable symmetry in Boolean functions through Walsh transform |