# Low Cost Design of a Hybrid Architecture of Integer Inverse DCT for H.264, VC-1, AVS, and HEVC

Authors: Muhammad Martuza; Khan A. Wahid
Journal: VLSI Design
 (2012)

---

## Abstract

The paper presents a unified hybrid architecture to compute the8×8 integer inverse discrete cosine transform (IDCT) of multiple modern video codecs—AVS, H.264/AVC, VC-1, and HEVC (under development). Based on the symmetric structure of the matrices and the similarity in matrix operation, we develop a generalized “decompose and share” algorithm to compute the 8×8 IDCT. The algorithm is later applied to four video standards. The hardware-share approach ensures the maximum circuit reuse during the computation. The architecture is designed with only adders and shifters to reduce the hardware cost significantly. The design is implemented on FPGA and later synthesized in CMOS 0.18 um technology. The results meet the requirements of advanced video coding applications.


---

## Body

## 1. Introduction

In recent years, different video applications use different video standards, such as H.264/AVC [1], VC-1 [2], and AVS [3]. To improve the coding efficiency further, recently a joint collaboration team on video coding (JCT-VC) is drafting a next generation video coding standards, known tentatively as high efficient video coding (HEVC or H.265) [4]. The target bit rate is half of that of H.264/AVC. Besides, several other effective techniques are proposed in the draft to reduce the complexity of the encoder such as improved intrapicture coding, and simpler VLC coefficients [5]. As a result of these new features, experts predict that the HEVC will dominate the future multimedia market.In order to meet up the present and future demands of different multimedia applications, it becomes necessary to develop a unified video decoder that can support all popular video standards on a single platform. In recent years, there is a growing interest to develop multistandard inverse transform architectures for advanced multimedia applications. However, most of them do not support AVS, the video codec developed by Chinese government that became the core technology of China Mobile Multimedia Broadcasting (CMMB) [6]. None of the existing works supports the HEVC; thought it is not finalized yet, considering the future prospective of the HEVC [7], it is important to start exploring possible implementation in hardware of the transform unit discussed in the draft.In this paper, we present a new generalized algorithm and its hardwire implementation of an 8 × 8 IDCT architecture. The scheme is based on matrix decomposition with sparse matrices and offset computations. These sparse matrices are derived in a way that can be reused maximum number of times during decoding different inverse matrices. All multipliers in the design are replaced by adders and shifters. In the scheme, we first split the 8 × 8 transformation matrix into two small 4 × 4 matrices by applying permutation techniques. Then we concurrently perform separate operations on these two matrices to compute the output. It enables parallel operation and yields high throughput, which eventually helps meet the coding requirement of the high resolution video.The proposed generalized algorithm is later applied to compute the 8 × 8 integer IDCT of AVS. Then we identify the submatrices of AVS and reuse them to compute the IDCT of VC-1. We follow the same principle to compute the other two IDCTs of H.264 and HEVC. For HEVC, we have used the draft matrix discussed in the recent meeting [7]; since it is not yet finalized, we have developed the generalized architecture in such a way that can be easily adjusted to accommodate any changes to the final HEVC format.


## 2. Previous Works

In recent years, some multistandard inverse transform architectures have been proposed for video applications. Lee’s work in [8] presents a 8 × 8 multistandard IDCT architecture based on delta coefficient matrices which can support VC-1, MPEG4, and H.264. It can process up to 21.9 fps for full HD video. Kim’s work in [9] describes a design following similar approach of [8] to unify the IDCT and inverse quantization (IQ) operations for those three codecs. However, the design cannot support full HD video format. Qi’s work in [10] shows an efficient integrated architecture designed for multistandard inverse transforms of MPEG-2/4, H.264, and VC-1 using factor share (FS) and adder share (AS) strategies for saving circuit resource. The work achieves 100 MHz working frequency for full HD video resolution, but does not support AVS. In another interesting design [11], the authors devise a common architecture by sharing adders and multipliers to perform transform and quantization of H.264, MPEG-4, and VC-1. The common shortcoming of all these designs discussed in [8–11] is that none of them supports the Chinese standard, AVS, nor the HEVC.In our previous work [12], we have developed a resource shared design using delta coefficient matrices which can compute the 8 × 8 IDCT of VC-1, JPEG, MPEG4, H.264/AVC, and AVS. But due to complex data scheduling and the integration of JPEG (which is an image codec), the decoding capability is limited. The design supports both HD formats, but fails to comply with super resolution (WQXGA). Liu [13] introduces another design to support multiple standards where the design throughput is low (110.8 MHz) and cannot decode HD and WQXGA video. Fan’s works in [14, 15] are based on another efficient matrix decomposition algorithm to compute multiple transforms; however, the work is limited to only H.264 and VC-1. There are similar works in [16–18], which are also limited to these two codecs (H.264 and VC-1).In this paper, we present a generalized low-cost algorithm and its single chip implementation to compute all four modern video standards (AVS, H.264, VC-1, and HEVC). The design meets the requirement of high performance video coding as it can process the HD video at 145 fps, the full HD video at 62 fps, and the WQXGA video at 32 fps. The proposed scheme can be applied to both forward and inverse transformation; however, here we only show the implementation for the inverse process (targeted for decoders).


## 3. Proposed Generalized Algorithm for 8 × 8IDCT

In a video compression system, the transform coding usually employs an 8-point II-type DCT. Since, the forward DCT uses the same basis coefficients and is the transpose of the IDCT matrix, the proposed IDCT scheme is easily applicable to it without any added cost or complexity. The 8-point 1D forward and inverse DCT coefficient matrices are expressed in general form asF and I respectively (below in (1), where, a,b,c…,g denote seven different transform coefficients):(1)F=[aaaaaaaabcde-e-d-c-bfg-g-f-f-ggfc-e-b-ddbe-ca-a-aaa-a-aad-bec-c-eb-dg-ff-g-gf-fge-dc-bb-cd-e],I=[abfcadgeacg-e-a-b-f-dad-g-b-aefcae-f-dac-g-ba-e-fda-c-gba-d-gb-a-ef-ca-cge-ab-fda-bf-ca-dg-e].In this paper, we have denoted the 8 × 8 IDCT transform matrices for AVS, VC-1, H.264/AVC, and HEVC by the lettersA, V, H and HV respectively. These seven coefficients (a,b,c…,g) for each of the transforms are different, but integer in nature (as shown in Table 1).Table 1
Matrix coefficients of 8-point IDCT.
AVS [3]VC-1 [2]H.264 [1]HEVC [7]a812864b10161289c9151075d69650e24318f1016883g46436


### 3.1. Development of a Generalized “Decompose and Share” Algorithm

First of all, we derive a generalized matrix decomposition scheme by utilizing the symmetric structure of the matrices and factoring the 8 × 8 matrix into two 4 × 4 sub-matrices as shown below:(2)I=P0⋅I0,
where
(3)I0=[a0f0a0g0a0g0-a0-f0a0-g0-a0f0a0-f0a0-g00-e0d0-c0b0-d0b0-e0-c0-c0e0b0d0-b0-c0-d0-e],P0=[1000000-1010000-1000100-1000001-100000011000001001000100001010000001].The computational complexity ofP0 is only 8 additions. To reduce the complexity of I0, we use permutation techniques by performing the operations: I0=Ĩ·PC.Where(4)PC=[1000000000100000000010000000001001000000000100000000010000000001],Ĩ=[afag0000ag-a-f0000a-g-af0000a-fa-g00000000-ed-cb0000-db-e-c0000-cebd0000-b-c-d-e].There is no computational cost forPC as it only permutes the input data set (just needs rewiring). Ĩ can be further decomposed into two 4 × 4 submatrices, Ĩ00 and Ĩ11, by the direct sum operation (“⊕”) as shown below:(5)Ĩ=Ĩ00⊕Ĩ11.
Thus,
(6)I=P0⋅(Ĩ00⊕Ĩ11)⋅PC,
where
(7)Ĩ00=[afagag-a-fa-g-afa-fa-g],Ĩ11=[-ed-cb-db-e-c-cebd-b-c-d-e].Equation (6) forms the general expression of (1). We will use Ĩ00 and Ĩ11 as the basic building blocks to compute other 8 × 8 IDCTs. Since, the coefficients in Ĩ00 and Ĩ11 are fixed, they can be independently implemented, enabling fast computation.In the following section, we show how (6) can be applied to different IDCT matrices. Another new feature of the proposed scheme is that we take the advantage of the similarity in matrix operation to further optimize the implementation. First of all, we apply (6) to efficiently implement the transformation matrix of AVS. Based on it and the generalized structure, we develop the matrix of VC-1 so that we can share as many units (from AVS) as possible. Next, we develop the IDCT matrix of H.264 based on the same principle (decompose and share from AVS and VC-1). In this stage, we are able to achieve the maximum sharing as it will be shown later (in Section 3.4) that the implementation of H.264 does not cost any extra hardware. Finally, we develop the IDCT of HEVC by further decomposing and reusing the units already implemented (with a minimum addition of extra units).


### 3.2. Matrix Decomposition for AVS

Let us now constructA (from (1) and Table 1) and apply (6) to compute the 4×4 submatrices, Ã00 and Ã11. We then right shift Ã00 by three bits and decompose it as follows:(8)Ã008=[154112112-1-541-12-1541-541-12]=A1⋅A2,
where
(9)A1=[10100101010-110-10],A2=[101010-100540120120-54].LikeP0, the computational cost of A1 is only 4 additions. For A2, we implement (5/4)·xas (1+1/4)·x—that is right shift x (arbitrary data) by two bits and then add with x. So, the cost is 6 add and 6 shift operations. Thus in (8), the total computational cost is 10 addition and 6 shift operations. In similar way, we can decompose Ã11 as shown below:(10)Ã114=[-1232-9452-3252-12-94-94125232-52-94-32-12]=A3⋅A4,
where
(11)A3=[-10321011-32-321-10-1-320-1],A4=[3200-10321001-32010032].For bothA3 and A4, the coefficient (3/2) can be shared and the cost is: 12 additions and 4 shift operations for A3; 8 additions and 4 shift operations for A4. From (8)–(10), we can summarize the final expression of the 8 × 8 IDCT for AVS as:(12)A=4⋅P0⋅[(A1⋅2A2)⊕(A3⋅A4)]⋅PC.Thus, the total computational cost to implementA is 38 additions and 26 shift operations. In the next section, we will apply (6) to VC-1 and subsequently decompose the matrix in a way so that we can reuse the units already developed for the AVS (from (12)).


### 3.3. Matrix Decomposition for VC-1

We follow the same principles, as discussed in (8) and (10), to decompose the 8×8 IDCT for the VC-1:(13)V=P0⋅Ṽ⋅PC,
where(14)Ṽ=Ṽ00⊕Ṽ11.Now considering the symmetric property and the coefficient distribution patterns betweenÃ00/8 (in (8)) and Ṽ00/8, we decompose Ṽ00/8 as:(15)Ṽ008=[32232343234-32-232-34-32232-232-34]=A1⋅V2,
where
(16)V2=[320320320-320020340340-2]=2A2-V3,V3=[120120120-1200120140140-12].From (16), (15) can be reexpressed as:(17)Ṽ008=A1⋅(2A2-V3).Now it can be seen how the implementation of AVS matrix (from (12)) can be reused in (17). This matrix decomposition enables hardware sharing and results in significant saving in implementation resources. From (17), the total cost of V3 and Ṽ00/8 is 8 additions and 6 shift operations.Next based on our careful observation between the computational similarities betweenÃ11/4 (in (10)) and Ṽ11/8, we devise the decomposition scheme of Ṽ11/8 as:(18)Ṽ118=[-1298-1582-982-12-158-15812298-2-158-98-12]=V4⋅A4v,
where V4=A3+A3V,
(19)A4v=[1400-10141001-14010014],A3v=[-1-320-132-110011-3210-32-1].By substituting (19) in (18), Ṽ11/8 is expressed as:(20)Ṽ118=(A3+A3V)⋅A4v.Note thatA4v in (19) is structurally similar to A4 in (10) except the change in the diagonal coefficients. So we only need to implement it; the rest is shared from the architecture of A4. We do so by adding 4 multiplexers at the output of the four left diagonal elements of A4 matrix. Then according to (19), we reuse A3 to compute V4. As the new matrix A3v can be derived from A3 by rearranging the rows and changing the polarity of some input bits, we share it from the design of A3 by adding 4 multiplexers only. Finally, the expression of Ṽ00 and Ṽ11 from (17) and (20) are substituted in (13) to get the final expression of the IDCT for VC-1:(21)V=8⋅P0⋅{[A1⋅(2A2-V3)]⊕[(A3+A3V)⋅A4v]}⋅PC.It is seen from (21) that to implement V, the only new unit that is required is V3; the rest is shared from the implementation of AVS (from (12)). So, the total computational cost for VC-1 is 12 additions and 10 shift operations.


### 3.4. Matrix Decomposition for H.264/AVC

Following similar procedure illustrated in the two previous sections, we can simplify the 8 × 8 transformation matrix for H.264/AVC as shown below:(22)H=P0⋅H̃⋅PC,
where
(23)H̃=H̃00⊕H̃11.In order to ensure the maximum unit sharing, we decomposeH̃00/8 as below:(24)H̃008=[11112112-1-11-12-111-11-12]=A1⋅A2h,
where  (25)A2h=[101010-10010120120-1].In (24), A1 is directly reused from (12). To share A2h from the architecture of A2 we simply add two multiplexer units. So there is no additional cost in terms of adders and shifters to compute H̃00/8. Similarly, we can decompose H̃11/8 as:(26)H̃118=[-3834-5432-3432-38-54-54383234-32-54-34-38]=A3h⋅A4v,
where  (27)A3h=[-32-1101032-1-1320-10-1-1-32].HereA4v is directly reused from (21) and we share A3h from the architecture of A3. In this sharing we do not even need to use any multiplexers, because we have already done so while sharing A3v from A3 in Section 3.3. The final expression of the 8 × 8 IDCT for H.264 (with all shared units) can be summarized as follows:(28)H=8⋅P0⋅{[A1⋅A2h]⊕[A3h⋅A4v]}⋅PC.It is interesting to note that all terms in (28) are implemented from the terms of (12) and (21); thus, in the proposed scheme, there is no additional cost to implement the IDCT for H.264 which results in significant hardware savings.


### 3.5. Matrix Decomposition for HEVC

In this section, we develop the transformation matrix for the HEVC based on the principles described before. The 8 × 8 matrix can be decomposed as:(29)HV=P0⋅HṼ⋅PC,
where
(30)HṼ=HV00̃⊕HV11̃,(31)HV00̃4=[16834169169-16-83416-9-1683416-83416-9]=A1.(16A2+HV1),HV1=[0000000003401010-34].The computational cost ofHV1 is 4 additions and 4 shift operations. Here the coefficient (3/4)·x is factorized as (x-x/4). So the cost of HV00̃ in (30) is 4 additions and 8 shift operations. Similarly, we decompose HV11̃/4 as:(32)HV11̃4=[-92252-754894-252894-92-754-75492894252-894-754-252-92]=(8A3+HV2)⋅A4HV,
where
(33)HV2=[7454-20-540-7422-74054025474],A4HV=[200-1021001-201002].Combining (29)–(32), we compute the proposed 8×8 IDCT for HEVC as given below:(34)HV=4⋅P0⋅{[A1.(16A2+HV1)]⊕[(8A3+HV2)⋅A4HV]}⋅PC.In (34), only the new matrices, HV1 and HV2, will be implemented and the rest will be shared from (12). So the total computational cost to implement HV in the proposed design is 24 additions and 28 shift operations. It is important to note that we have carefully decomposed HV so that if there is any change in the final standard, all one needs to do is to update (30) and (32) with new parameters without interrupting the entire design. In summery, the proposed unified design costs 74 additions and 64 shift operations to perform the inverse transformation of four defined video standards.


## 3.1. Development of a Generalized “Decompose and Share” Algorithm

First of all, we derive a generalized matrix decomposition scheme by utilizing the symmetric structure of the matrices and factoring the 8 × 8 matrix into two 4 × 4 sub-matrices as shown below:(2)I=P0⋅I0,
where
(3)I0=[a0f0a0g0a0g0-a0-f0a0-g0-a0f0a0-f0a0-g00-e0d0-c0b0-d0b0-e0-c0-c0e0b0d0-b0-c0-d0-e],P0=[1000000-1010000-1000100-1000001-100000011000001001000100001010000001].The computational complexity ofP0 is only 8 additions. To reduce the complexity of I0, we use permutation techniques by performing the operations: I0=Ĩ·PC.Where(4)PC=[1000000000100000000010000000001001000000000100000000010000000001],Ĩ=[afag0000ag-a-f0000a-g-af0000a-fa-g00000000-ed-cb0000-db-e-c0000-cebd0000-b-c-d-e].There is no computational cost forPC as it only permutes the input data set (just needs rewiring). Ĩ can be further decomposed into two 4 × 4 submatrices, Ĩ00 and Ĩ11, by the direct sum operation (“⊕”) as shown below:(5)Ĩ=Ĩ00⊕Ĩ11.
Thus,
(6)I=P0⋅(Ĩ00⊕Ĩ11)⋅PC,
where
(7)Ĩ00=[afagag-a-fa-g-afa-fa-g],Ĩ11=[-ed-cb-db-e-c-cebd-b-c-d-e].Equation (6) forms the general expression of (1). We will use Ĩ00 and Ĩ11 as the basic building blocks to compute other 8 × 8 IDCTs. Since, the coefficients in Ĩ00 and Ĩ11 are fixed, they can be independently implemented, enabling fast computation.In the following section, we show how (6) can be applied to different IDCT matrices. Another new feature of the proposed scheme is that we take the advantage of the similarity in matrix operation to further optimize the implementation. First of all, we apply (6) to efficiently implement the transformation matrix of AVS. Based on it and the generalized structure, we develop the matrix of VC-1 so that we can share as many units (from AVS) as possible. Next, we develop the IDCT matrix of H.264 based on the same principle (decompose and share from AVS and VC-1). In this stage, we are able to achieve the maximum sharing as it will be shown later (in Section 3.4) that the implementation of H.264 does not cost any extra hardware. Finally, we develop the IDCT of HEVC by further decomposing and reusing the units already implemented (with a minimum addition of extra units).


## 3.2. Matrix Decomposition for AVS

Let us now constructA (from (1) and Table 1) and apply (6) to compute the 4×4 submatrices, Ã00 and Ã11. We then right shift Ã00 by three bits and decompose it as follows:(8)Ã008=[154112112-1-541-12-1541-541-12]=A1⋅A2,
where
(9)A1=[10100101010-110-10],A2=[101010-100540120120-54].LikeP0, the computational cost of A1 is only 4 additions. For A2, we implement (5/4)·xas (1+1/4)·x—that is right shift x (arbitrary data) by two bits and then add with x. So, the cost is 6 add and 6 shift operations. Thus in (8), the total computational cost is 10 addition and 6 shift operations. In similar way, we can decompose Ã11 as shown below:(10)Ã114=[-1232-9452-3252-12-94-94125232-52-94-32-12]=A3⋅A4,
where
(11)A3=[-10321011-32-321-10-1-320-1],A4=[3200-10321001-32010032].For bothA3 and A4, the coefficient (3/2) can be shared and the cost is: 12 additions and 4 shift operations for A3; 8 additions and 4 shift operations for A4. From (8)–(10), we can summarize the final expression of the 8 × 8 IDCT for AVS as:(12)A=4⋅P0⋅[(A1⋅2A2)⊕(A3⋅A4)]⋅PC.Thus, the total computational cost to implementA is 38 additions and 26 shift operations. In the next section, we will apply (6) to VC-1 and subsequently decompose the matrix in a way so that we can reuse the units already developed for the AVS (from (12)).


## 3.3. Matrix Decomposition for VC-1

We follow the same principles, as discussed in (8) and (10), to decompose the 8×8 IDCT for the VC-1:(13)V=P0⋅Ṽ⋅PC,
where(14)Ṽ=Ṽ00⊕Ṽ11.Now considering the symmetric property and the coefficient distribution patterns betweenÃ00/8 (in (8)) and Ṽ00/8, we decompose Ṽ00/8 as:(15)Ṽ008=[32232343234-32-232-34-32232-232-34]=A1⋅V2,
where
(16)V2=[320320320-320020340340-2]=2A2-V3,V3=[120120120-1200120140140-12].From (16), (15) can be reexpressed as:(17)Ṽ008=A1⋅(2A2-V3).Now it can be seen how the implementation of AVS matrix (from (12)) can be reused in (17). This matrix decomposition enables hardware sharing and results in significant saving in implementation resources. From (17), the total cost of V3 and Ṽ00/8 is 8 additions and 6 shift operations.Next based on our careful observation between the computational similarities betweenÃ11/4 (in (10)) and Ṽ11/8, we devise the decomposition scheme of Ṽ11/8 as:(18)Ṽ118=[-1298-1582-982-12-158-15812298-2-158-98-12]=V4⋅A4v,
where V4=A3+A3V,
(19)A4v=[1400-10141001-14010014],A3v=[-1-320-132-110011-3210-32-1].By substituting (19) in (18), Ṽ11/8 is expressed as:(20)Ṽ118=(A3+A3V)⋅A4v.Note thatA4v in (19) is structurally similar to A4 in (10) except the change in the diagonal coefficients. So we only need to implement it; the rest is shared from the architecture of A4. We do so by adding 4 multiplexers at the output of the four left diagonal elements of A4 matrix. Then according to (19), we reuse A3 to compute V4. As the new matrix A3v can be derived from A3 by rearranging the rows and changing the polarity of some input bits, we share it from the design of A3 by adding 4 multiplexers only. Finally, the expression of Ṽ00 and Ṽ11 from (17) and (20) are substituted in (13) to get the final expression of the IDCT for VC-1:(21)V=8⋅P0⋅{[A1⋅(2A2-V3)]⊕[(A3+A3V)⋅A4v]}⋅PC.It is seen from (21) that to implement V, the only new unit that is required is V3; the rest is shared from the implementation of AVS (from (12)). So, the total computational cost for VC-1 is 12 additions and 10 shift operations.


## 3.4. Matrix Decomposition for H.264/AVC

Following similar procedure illustrated in the two previous sections, we can simplify the 8 × 8 transformation matrix for H.264/AVC as shown below:(22)H=P0⋅H̃⋅PC,
where
(23)H̃=H̃00⊕H̃11.In order to ensure the maximum unit sharing, we decomposeH̃00/8 as below:(24)H̃008=[11112112-1-11-12-111-11-12]=A1⋅A2h,
where  (25)A2h=[101010-10010120120-1].In (24), A1 is directly reused from (12). To share A2h from the architecture of A2 we simply add two multiplexer units. So there is no additional cost in terms of adders and shifters to compute H̃00/8. Similarly, we can decompose H̃11/8 as:(26)H̃118=[-3834-5432-3432-38-54-54383234-32-54-34-38]=A3h⋅A4v,
where  (27)A3h=[-32-1101032-1-1320-10-1-1-32].HereA4v is directly reused from (21) and we share A3h from the architecture of A3. In this sharing we do not even need to use any multiplexers, because we have already done so while sharing A3v from A3 in Section 3.3. The final expression of the 8 × 8 IDCT for H.264 (with all shared units) can be summarized as follows:(28)H=8⋅P0⋅{[A1⋅A2h]⊕[A3h⋅A4v]}⋅PC.It is interesting to note that all terms in (28) are implemented from the terms of (12) and (21); thus, in the proposed scheme, there is no additional cost to implement the IDCT for H.264 which results in significant hardware savings.


## 3.5. Matrix Decomposition for HEVC

In this section, we develop the transformation matrix for the HEVC based on the principles described before. The 8 × 8 matrix can be decomposed as:(29)HV=P0⋅HṼ⋅PC,
where
(30)HṼ=HV00̃⊕HV11̃,(31)HV00̃4=[16834169169-16-83416-9-1683416-83416-9]=A1.(16A2+HV1),HV1=[0000000003401010-34].The computational cost ofHV1 is 4 additions and 4 shift operations. Here the coefficient (3/4)·x is factorized as (x-x/4). So the cost of HV00̃ in (30) is 4 additions and 8 shift operations. Similarly, we decompose HV11̃/4 as:(32)HV11̃4=[-92252-754894-252894-92-754-75492894252-894-754-252-92]=(8A3+HV2)⋅A4HV,
where
(33)HV2=[7454-20-540-7422-74054025474],A4HV=[200-1021001-201002].Combining (29)–(32), we compute the proposed 8×8 IDCT for HEVC as given below:(34)HV=4⋅P0⋅{[A1.(16A2+HV1)]⊕[(8A3+HV2)⋅A4HV]}⋅PC.In (34), only the new matrices, HV1 and HV2, will be implemented and the rest will be shared from (12). So the total computational cost to implement HV in the proposed design is 24 additions and 28 shift operations. It is important to note that we have carefully decomposed HV so that if there is any change in the final standard, all one needs to do is to update (30) and (32) with new parameters without interrupting the entire design. In summery, the proposed unified design costs 74 additions and 64 shift operations to perform the inverse transformation of four defined video standards.


## 4. Hardware Implementation of the Shared Architecture

In the implementation of the multistandard architectures on a single platform, we have shared the entire hardware unit of the 4 × 4 matrices, instead of sharing individual adders, shifters, or other factors (as done in [10]). It ensures maximum reduction of hardware cost in our design. The overall block diagram of our proposed scheme is shown in Figure 1. We can see from Figure 1 that the P0 block splits the 8-point decomposition process to two independent 4-point processes; since these two processes work concurrently, the design throughput is highly increased. The blocks B1, B2, and B3 perform different operations (shared) as shown in Table 2.Table 2
Controlling selection of subblocks.
Select (Sel)IDCTB1B2B3(16/2)·(A2/A2h) − (V3/HV1)(8/1) · [A3/A3h/(A3 + A3v)] + HV2A4/A4v/A4HV00AVS2A2A3A401VC-12A2-V3(A3 + A3v)A4v10H.264A2hA3hA4v11HEVC16A2-HV18A3 + HV2A4HVFigure 1
Block diagram of the proposed architecture.Figure2(a) shows the design of the serial to parallel converter (S2P) block. It performs left shift and then stores the input one by one into eight registers in 8 clock cycles, and at the 9th cycle, all stored input samples are sent to next block, P0. Here the S2P block apparently functions like a temporary memory buffer as it stores the rows of the input matrix inside eight registers. As a result, the proposed design does not require additional memory architecture. The wrapper architecture (PC) is shown in Figure 2(b). In this multicodec system, only one IDCT and its associated computational units are activated at a time by the control unit and the select pin (Sel); the rest is disabled. The other blocks are shown in Figure 3. In different stages of the design, several multiplexers are used to ensure proper computation of the IDCT in operation. Finally, the PC block combines two different set of data and generates one output. In Figure 3, In0, In1, …, In3 represent the inputs coming from the previous block and Out0, Out1, …, Out3 represent the outputs going to the next block. As an example, in Figure 3(c) for the shared design of V3/HV1, the inputs are coming from A2/A2h subblock and the outputs are going to PC block.(a) Serial to parallel converter with shifting; (b) output wrapper (PC  block).
(a)(b)Shared architecture of (a)P0 and A1;  (b) A3, A3h and (A3+A3v); (c) V3 and HV1; (d) A2 and A2h; (e) A4, A4v and A4HV.
(a)(b)(c)(d)(e)The state diagram of the control unit is shown in Figure4. Here, “r” is reset and “c” is a 3-bit internal counter run by the system clock. There are one reset and four active states. The states of the control signals are also shown in the diagram; for example, in state 1 (S1), S2P is storing the input vector while the output wrapper (PC block) enables R00 from MUX1 and R10 from MUX2. Table 2 shows the units that are active depending on the status of the select pin. For example, the select signal will be “00” when the user wants to perform the IDCT of AVS codec. In that case, B1, B2, and B3 will function as 2·A2, A3, and A4, respectively (the rest is inactive as found in (12)).Figure 4
State diagram of control unit.


## 5. Performance Analysis and Comparisons

The proposed design is implemented in Verilog and its operation is verified using Xilinx Vertex4 LX60 FPGA. The total number of LUTs needed for this proposed architecture is 2,242. The design is later synthesized using 0.18μm CMOS technology. The architecture costs 39.3 K gates and 12.15 K standard cells with a maximum operating frequency of 200.8 MHz. The estimated power consumption is 29.9 mW with 3 V supply.In order to demonstrate the sharing efficiency, we have compared the adder count of our design with the 8-point standalone IDCT matrices of three standards: AVS, VC-1, and H.264/AVC (as presented in [12]). The results are shown in Figure 5. As of today, there is no implementation of the 8 × 8 IDCT of HEVC; thus, we have implemented it separately for the sake of better comparison. Now, we can see from Figure 5 that a total of 104 adders is required to implement these four transforms without sharing. The proposed shared design can compute all of them with 28.9% less adders. Moreover, the savings achieved in individual standards due to the sharing are also marked on the figure.Figure 5
Cost of the proposed scheme—standalone versus cost-shared.It is important to note that, though the proposed design costs 38 adders to implement AVS, it does not cost any additional adder units to implement H.264. Hence, AVS and H.264 combined together cost only 38 adders (compared to 48 for standalone implementations). The cost of implementing shift operation is considered insignificant in the computation. In Table3, we compare the cost of the proposed scheme with available existing designs in the literature. None of the designs in this table supports HEVC (which is computationally expensive due to large matrix parameters as shown in Table 1). Although, the designs in [10, 12] cost fewer adders, it is shown later that the proposed scheme outperforms it in decoding capacity. Considering the fact that, the proposed architecture can decode the IDCT for four video codecs, it consumes the least number of adders compared to others.Table 3
Comparison of the cost of adders and shifters.
CodecsNumber of addersNumber of shiftersJPEG + MPEG-2/4 + H.264 + VC-1 in [8]112—JPEG + MPEG-2/4 + H.264 + VC-1 in [10]70—H.264 + VC-1 in [14]7628MPEG-2/4 + H.264 + VC-1 + AVS in [13]76—JPEG + MPEG-2/4 + H.264 + VC-1 + AVS in [12]5831Proposed—H.264 + VC-1 + AVS + HEVC7464In Table4, we have summarized the performance in terms of gate count, maximum working frequency, and standard support with other designs. Only the design in [19] has frequency closer to us, but it supports only H.264. Similarly, designs in [11, 14] support only two codecs and accordingly cost lesser hardware than ours. Among other designs [8–10, 12, 13] are comparable to our design as they support as many as three codecs. While working at maximum capacity, the proposed design can process 200.8 million pixels/sec.Table 4
Comparison of the resource-shared 8-point 1-D IDCT architecture.
SchemeTech.Gate countFreq. (MHz)Full HD support?Super Resolution support?Supporting standardsH.264VC-1AVSHEVCLee’s [8]0.13μm19.1 K136YoYYooKim’s [9]0.13μm30.9 K151ooYYooQi’s [10]0.13μm18 K100YoYYooLee’s [11]0.13μm10.5 K123ooYYooWahid’s  [12]0.18μm19.8 K194.7YoYYYoLiu’s [13]0.13μm16.5 K110.8——YYYoFan’s [14]0.18μm7.14 K100——YYooLi’s [19]0.18μm13.7 K200YoYoooProposed0.18μm39.3 K200.8YYYYYY“Y”: yes; “o”: No; “—”: no information.In order to have a better assessment among comparable designs (e.g., minimum support of three codecs), in Table5 we compare the decoding capability (using 4 : 2 : 0 luma-chroma sampling) of the proposed approach with that of [8–10, 12]. In our work, the maximum achieved frame rate of a 1080 p video is = 200.8 × 106/(1920 × 1080 + 2 × 960 × 540) = 64.56 ≈ 64 fps, which is the highest compared to all other designs in Table 5. Considering the current trends to use super resolution monitors, in this table we have also compared the decoding capabilities for the Wide Quad eXtended Graphics Array (WQXGA, with resolution of 2560 × 1600 pixels). Thus, it can be seen that the proposed design cannot only decode AVS, H.264/AVC, VC-1, and HEVC videos, but also can maintain relatively higher operational frequency to meet the requirements of real time transmission (the target fps to transmit HD, full HD, and QWXGA video are 120, 60, and 30, resp.). From the performance analysis, the scheme is found to be competitive as it can transmit the highest number of frames per seconds and, hence, takes the least time to transmit one frame at a given resolution.Table 5
Comparison of decoding capability (minimum support of three codecs).
SchemeHD resolutionSuper resolution1920 × 10801280 × 7202560 × 1600Time to transmit 1 frame (msec)Frame per second (fps)Time to transmit 1 frame (msec)Frame per second (fps)Time to transmit 1 frame (msec)Frame per second (fps)Lee’s [8]22.84410.298xxKim’s[9]xx10.298xxQi’s [10]31.13213.872xxWahid’s [12]16.7607.1140xxProposed15.5646.914530.632“—”: no information; “x”: not supported by the hardware.


## 6. Conclusion

In this paper, we present a generalized algorithm and a hardware-shared architecture by using the symmetric property of the integer matrices and the matrix decomposition to compute the 8-point 1-D IDCT for four modern video codecs: H.264/AVC, VC-1, AVS, and HEVC (draft in stage). The architecture is designed in such a way that can accommodate any change in the final release of the HEVC. We first apply the generalized scheme to AVS-based transform unit, and then gradually build the rest of the transform units on top of another to maximize the sharing. The performance analysis shows that the proposed design satisfies the requirement of all four codecs and achieves the highest decoding capability. Overall, the architecture is suitable for low-cost implementation in modern multicodec systems.



---

*Source: 242989-2012-05-13.xml*