Abstract
The symmetric-convolution multiplication (SCM) property of discrete trigonometric transforms (DTTs) based on unitary transform matrices is developed. Then as the reciprocity of this property, the novel multiplication symmetric-convolution (MSC) property of discrete trigonometric transforms, is developed.
1. Introduction
Shen et al. [] developed fast DCT-domain convolution for time/spatial-domain multiplication using DCT type-2. They exploited symmetry and orthogonality for the fast algorithm. Logo-keying operation in the spatial domain can be done in the DCT domain for compressed image/video editing. However, they have not derived the convolution from the symmetric-convolution multiplication (SCM) property of discrete trigonometric transforms (DTTs), which will be the focus of this paper.
Time-domain symmetric convolution for a linear phase filtering application has been developed by Martucci [] and is called the symmetric-convolution multiplication property of DTTs. Based on the SCM property, Zou et al. [] have developed a symmetric convolution for linear phase FIR filtering. Filter coefficients consist of symmetric and asymmetric parts.
Based on those earlier works, Reju et al. [] have finally developed fast circular convolution using DTTs. The input sequences to be convolved need not be symmetric or asymmetric. Thus fast DCTs and DSTs can be used instead of the FFTs for FIR filtering. Generalized fast convolution using numerous transforms as well as the DFT and DTTs has been studied by Korohoda et al. in [].
In this paper we show that swapping the forward and inverse transforms in the SCM property [] yields a multiplication-convolution (MSC) property. That is, the convolution of transformed sequences gives the same results as the forward transform after element-by-element multiplication of the data sequences. The necessary scaling factor M for these new properties has been described in the third line below Eq. (20) in [], saying “it is possible to swap the usage of the forward and inverse transform; in that case, an extra scaling factor may be required”. Here M is the size of the generalized DFT (GDFT) when a DTT is derived from an M-point GDFT. We can get 40 types of MSCs corresponding to 40 types of SCMs in Tables VI, VII of [].
In (1) of [], the formulation of the SCM for the unitary matrices is presented, with only the exception of some of the 40 options mentioned by Martucci [], because they cannot be expressed with the assumed tools. Here, we fill that gap. Consider the following matrix relationship between convolutional/unnormalized DTTs (denoted with lower-case subscript like C1e) and unitary DTTs (denoted with capital-letter subscript like CIE).
Here the fact that scalars commute with matrices is used for C3e and others.
Let matrices J, K, Q, and R be defined as:
where O1×N is the zero row-vector, with N elements, whose entries are all zero. Multiplying one of those matrices with an input vector appends a single zero on the top of the first or under the last element of the vector. Multiplying the transpose of one of those matrices with an input vector discards the first or last element of the vector.
2. Symmetric-Convolution Multiplication Property
One of the forty cases of symmetric convolution is proven as an example.
Property.
Proof.
Equation (A.1) in the appendix of [] can be rewritten as:
where is the kernel.
From (16), (17) and (18):
From (1) and (10):
Let x and w be input column vectors in time domain. Let y be an output column vector in time domain. Let C2e be a diagonal matrix defined as C2e = diag([C2e w]T), where superscript T denotes the transpose operator. We rewrite the 8th property in Table VI of [] as:
The matrix J shows up in the last line of (22) for zero padding. Since C2e and []N are diagonal matrices, they can commute. Thus:
3. Multiplication Symmetric-Convolution Property
Let X and Y be transformed input and output data vectors. Since there are one-to-one correspondences between unitary discrete trigonometric transforms (DTTs), we can exchange the forward transform for inverse one and vice versa as follows. In other words, a pair has the same matrix but has different names. Define h C3e as:
where C3e will be defined in (27). That is, C2e and h C3e are the same matrix with different names (thus names of DTTs need to change).
h C3e = diag( [(C3e) −1 W]T )
Then from (23):
Notice the forward transform matrix CIIE is replaced by the inverse transform matrix CIIIE −1 since they are the same matrix, and vice versa. Now this equation represents a SCM of DTTs. A key point of this new property is that we need to redefine convolution forms of DCTs and DSTs. The factor of M is divided for the inverse DCT of the convolution form in [] whereas it is divided for the forward DCT of the new convolution form. M is 2N for even and 2N – 1 for odd. Now new convolution form for DCT 2 is denoted as C2e:
The rest of DTTs can be readily obtained from the appendix of [].
MSC properties can be described in terms of convolutional / unnormalized DTTs to obtain similar results:
Only results are listed. Matrices J, K, Q, and R are required for different index ranges between operands. Link between the index range-based maneuvers described by Martucci [] and the introduction of the J, K, Q and R matrices is presented in Table 1 and Table 2 for M = 2N and M = 2N − 1, respectively.
4. Applications
For an image resizing (filter) application, one of 40 MSC properties is used. The definition of a normalizing parameter F(k) in [] needs a minor change as:
Then we can derive one of MSC properties, which is (4) in [], from our equation as follows:
By the associativity of (continuous and discrete) convolution:
This is shown in block diagram format in Fig. 1(b). Since G(k) and F(k) are A2−1 and A2 in matrix form:
CII{x(n) × w(n)} = G(k) [ F(k) CII{x(n)} ⊗ F(k) CII{w(n)} ]
Convolution has the property of associativity with scalar multiplication. Let F and G be any real sequences. Then:
for any real (or complex) number a.
a(F ⊗ G) = (aF) ⊗ G = F ⊗ (aG)
For a numerical example, let:
Then the time domain element-by-element multiplication of the two vectors is:
w = (1, 2, 3, 4) T, x = (1, 0, 3, 2) T and N = 4
w × x = (1, 0, 9, 8) T
W = A2−1 CII w = (a0, a1, a2, a3) T
= (7.071, − 2.230, 0, − 0.159) T
where:
Equation (32) is in [, p. 2635], and Wt and Wh are a symmetric Toeplitz matrix and a Hankel matrix []. Symmetric convolution is represented in matrix multiplication form of (31) using (32). Since the expression inside the square brackets of (30) is the matrix Y defined in (31):
X = A2−1 CII x
= (4.243, −1.465, 0, 1.689) T
= (4.243, −1.465, 0, 1.689) T
Y = W ⊗ X = (Wt + Wh) X
= (36, − 19.823, 0, 11.272) T
= (36, − 19.823, 0, 11.272) T
Equation (34) corresponds to (30). Thus Y can be computed by using either (33) or (31). In other words, the symmetric convolution of DCT coefficients, Figure 1(b) is an alternative method to computing the DCT of multiplication of two time sequences, Figure 1(a).
Figure 1.
For compressed image / video editing, logo-keying operation (alpha blending) can be done in (a) the spatial and (b) transform domains []. The symbol × denotes the element-by-element multiplication of the two vectors and ⊗ denotes the symmetric convolution of the two vectors.
5. Conclusions
For logo-keying operation or alpha blending, one image is scaled by α and the other is scaled by (1 − α), where α is a value between zero and one, and then two images are added up. For compressed image / video editing, multiplication operation in logo-keying operation in the spatial can be done in the DTT domain by convolving the unitary DTT coefficients of the two images. For those applications, we have developed 40 types of the MSC properties for the unitary DTTs (DCTs and DSTs [,,]).
Acknowledgements
The authors wish to thank the reviewers.
Appendix
Table 1.
Link between the index range-based maneuvers described by Martucci [] and the introduction of the J, K, Q and R matrices, M = 2N.
| SCM (Symmetric-Conv. Mult.) | Forward transform | Inverse transform | |||||||
| Input index range | Output index range | Input index range | Output index range | Input index range | Output index range | ||||
| y = SIE−1 (RT JTC1e) SIE x | 0→N | 1→N−1 | RT JT | ||||||
| y = SIE−1 S1e RT JT CIE (A1 x) | 0→N | 1→N−1 | RT JT | ||||||
| y = − A1−1CIE−1 J RS1e SIE x | 1→N−1 | 0→N | J R | ||||||
| y = CIIE−1C2e JT CIE(A1 x) | 0→N | 0→N−1 | JT | ||||||
| y = SIIE−1S2e KT CIE (A1 x) | 0→N | 1→N | KT | ||||||
| y = −CIIE−1 R S1e QT SIIE x | 1→N | 1→N−1 | QT | 1→N−1 | 0→N−1 | R | |||
| y = −CIIE−1R (QT S2e) SIE x | 1→N | 1→N−1 | QT | 1→N−1 | 0→N−1 | R | |||
| y = A1−1CIE−1 J C2e CIIE x | 0→N−1 | 0→N | J | ||||||
| y = SIE−1 (QTS2e) RT CIIE x | 0→N−1 | 1→N−1 | RT | 1→N | 1→N−1 | QT | |||
| y = SIE−1 (RTC2e) Q T SIIE x | 1→N | 1→N−1 | QT | 0→N−1 | 1→N−1 | RT | |||
| y = − A1−1 CIE−1 K S2e SIIE x | 1→N | 0→N | K | ||||||
Table 2.
Link between the index range-based maneuvers described by Martucci [] and the introduction of the J, K, Q and R matrices, M = 2N − 1.
| SCM (Symmetric-Conv. Mult.) | Forward transform | Inverse transform | |||||||
| Input index range | Output index range | Input index range | Output index range | Input index range | Output index range | ||||
| y = SIO−1 (RTC1o) SIO x | 0→N−1 | 1→N−1 | RT | ||||||
| y = SIO−1 S1o RT CIO (A2 x) | 0→N−1 | 1→N−1 | R T | ||||||
| y = − A2−1 CIO−1 R S1o SIO x | 1→N−1 | 0→N−1 | R | ||||||
| y = SIIO−1S1o RT CIIO (A4 x) | 0→N−1 | 1→N−1 | RT | ||||||
| y = SIIO−1 (RTC2o) SIO x | 0→N−1 | 1→N−1 | RT | ||||||
| y = SIIO−1 (RTC1o) SIIo x | 0→N−1 | 1→N−1 | RT | ||||||
| y = SIIO−1S2o RT CIO (A2 x) | 0→N−1 | 1→N−1 | RT | ||||||
| y = − A4−1 CIIO−1 R S1o SIIO x | 1→N−1 | 0→N−1 | R | ||||||
| y = − A4−1 CIIO−1 R S2o SIO x | 1→N−1 | 0→N−1 | R | ||||||
| y = SIO−1 S2o RT CIIO (A4 x) | 0→N−1 | 1→N−1 | RT | ||||||
| y = SIO−1 (RTC2o) SIIO x | 0→N−1 | 1→N−1 | RT | ||||||
| y = − A2−1 CIO−1 R S2o SIIO x | 1→N−1 | 0→N−1 | R | ||||||
| y = SIIIO−1 S3o QT CIIIO (A2 x) | 0→N−1 | 0→N−2 | Q T | ||||||
| y = SIIIO−1 QTC3o Q SIIIO x | 0→N−2 | 0→N−1 | Q | 0→N−1 | 0→N−2 | QT | |||
| y = − A2−1 CIIIO−1 Q S3o SIIIO x | 0→N−2 | 0→N−1 | Q | ||||||
| y = CIVO−1 (QTC3o) CIVO x | 0→N−1 | 0→N−2 | Q T | ||||||
| y = CIVO−1C4o QT CIIIO (A2 x) | 0→N−1 | 0→N−2 | Q T | ||||||
| y = A4−1 SIVO−1 Q S3o CIVO x | 0→N−2 | 0→N−1 | Q | ||||||
| y = A4−1 SIVO−1 Q C4o SIIIO x | 0→N−2 | 0→N−1 | Q | ||||||
| y = −CIVO−1S3o QT SIVO (A4 x) | 0→N−1 | 0→N−2 | QT | ||||||
| y = −CIVO−1 (QTS4o) SIIIO x | 0→N−1 | 0→N−2 | QT | ||||||
| y = A2−1 CIIIO−1 Q C4o CIVO x | 0→N−2 | 0→N−1 | Q | ||||||
| y = SIIIO−1 (QTS4o) CIVO x | 0→N−1 | 0→N−2 | Q T | ||||||
| y = SIIIO−1C4o QT SIVO (A4 x) | 0→N−1 | 0→N−2 | QT | ||||||
Table 3.
20 of 40 types of SCM and MSC properties for the DTTs, M = 2N.
| SCM (Symmetric-Conv. Mult.) | MSC (Mult. Symmetric-Conv.) | |
| y = A1−1CIE−1C1e CIE (A1 x) | Y = A1−1CIE hC1e CIE −1(A1 X) | (A1) |
| y = SIE−1 (RT JT C1e) SIE x | Y = SIE (RT JT C1e) SIE−1 X | (A2) |
| y = SIE−1 S1e RT JT CIE (A1 x) | Y = SIES1e RT JT CIE−1 (A1 X) | |
| y = − A1−1CIE−1 J R S1e SIE x | Y = − A1−1CIE J RhS1e SIE −1 X | (A3) |
| y = CIIE−1C1e CIIE x | Y = CIIIE hC1e CIIIE −1 X | (A4) |
| y = CIIE −1C2e JT CIE(A1 x) | Y = CIIIE hC3e JT CIE−1(A1 X) | |
| y = SIIE−1S1e CIIE x | Y = SIIIE hS1e CIIIE−1 X | (A5) |
| y = SIIE−1C2e SIE x | Y = SIIIE hC3e SIE−1 X | |
| y = SIIE−1C1e SIIE x | Y = SIIIE hC1e SIIIE−1 X | (A6) |
| y = SIIE−1S2e KT CIE (A1 x) | Y = SIIE hS3e KT CIE−1(A1 X) | |
| y = −CIIE−1 R S1e QT SIIE x | Y = −CIIIE R hS1e QT SIIIE−1 X | (A7) |
| y = −CIIE−1R (QT S2e) SIE x | Y = −CIIIE R (QT hS3e) SIE−1 X | |
| y = A1−1CIE−1 J C2e CIIE x | Y = A1−1CIE J h C3e CIIIE −1 X | (A8) |
| y = SIE−1 (QT S2e) RT CIIE x | Y = SIE (QT h S3e) RT CIIIE−1 X | (A9) |
| y = SIE−1 (RT C2e) Q T SIIE x | Y = SIE (RT hC3e) Q T SIIIE−1 X | |
| y = − A1−1 CIE−1 K S2e SIIE x | Y = − A1−1 CIE K h S3e SIIIE −1 X | (A10) |
| y = A2−1 CIIIE−1C3e CIIIE(A2 x) | Y = A2−1 CIIE h C2e CIIE−1(A2 X) | (A11) |
| y = A3−1 SIIIE−1S3e CIIIE(A2 x) | Y = A3−1 SIIE h S2e CIIE −1(A2 X) | (A12) |
| y = A3−1 SIIIE−1C3e SIIIE(A3 x) | Y = A3−1 SIIE h S2e SIIE −1(A3 X) | |
| y = A2−1 CIIIE−1S3e SIIIE(A3 x) | Y = A2−1 CIIE h S2e SIIE −1(A3 X) | (A13) |
| y = CIVE−1C3e CIVE x | Y = CIVE h C2e CIVE−1 X | |
| y = CIVE−1C4e CIIIE(A2 x) | Y = CIVE h C4e CIIE−1(A2 X) | (A14) |
| y = SIVE−1S3e CIVE x | Y = SIVEh S2e CIVE−1X | (A15) |
| y = SIVE−1C4e SIIIE(A3 x) | Y = SIVEh C4e SIIE−1(A3 X) | |
| y = SIVE−1C3e SIVE x | Y = SIVE h C2e SIVE−1 X | (A16) |
| y = SIVE−1S4e CIIIE(A2 x) | Y = SIVE h S4e CIIE−1(A2 X) | |
| y = −CIVE−1S3e SIVE x | Y = −CIVE h S2e SIVE−1 X | (A17) |
| y = −CIVE−1S4e SIIIE(A3 x) | Y = −CIVE h S4e SIIE−1 (A3 X) | |
| y = A2−1 CIIIE−1C4e CIVE x | Y = A2−1 CIIE h C4e CIVE −1 X | (A18) |
| y = A3−1 SIIIE−1S4e CIVE x | Y = A3−1 SIIE h S4e CIVE−1 X | (A19) |
| y = A3−1 SIIIE−1C4e SIVE x | Y = A3−1 SIIE h C4e SIVE−1 X | |
| y = − A2−1 CIIIE−1S4e SIVE x | Y = − A2−1 CIIE h S4e SIVE−1 X | (A20) |
Table 4.
20 of 40 types of SCM and MSC properties for the DTTs, M = 2N − 1.
| SCM (Symmetric-Conv. Mult.) | MSC (Mult. Symmetric-Conv.) | |
| y = A2−1 CIO−1C1o CIO (A2 x) | Y = A2−1 CIO h C1o CIO −1(A2 X) | (A21) |
| y = SIO−1 (RTC1o) SIO x | Y = SIO (RT h C1o) SIO−1 X | (A22) |
| y = SIO−1 S1o RT CIO (A2 x) | Y = SIO h S1o RT CIO−1(A2 X) | |
| y = − A2−1 CIO−1 RS1o SIO x | Y = − A2−1 CIO R h S1o SIO −1 X | (A23) |
| y = A4−1 CIIO−1C1o CIIO (A4 x) | Y = A4−1 CIIIO h C1o CIIIO −1 (A4 X) | (A24) |
| y = A4−1 CIIO−1 C2o CIO (A2 x) | Y = A4−1 CIIIO h C3o CIO−1(A2 X) | |
| y = SIIO−1S1o RT CIIO (A4 x) | Y = SIIIO h S1o RT CIIIO −1 (A4 X) | (A25) |
| y = SIIO−1 (RTC2o) SIO x | Y = SIIIO (R T h C3o) SIO−1 X | |
| y = SIIO−1 (RTC1o) SIIo x | Y = SIIIO (RT h C1o) SIIIO−1 X | (A26) |
| y = SIIO−1S2o RT CIO (A2 x) | Y = SIIIO h S3o RT CIO−1 (A2 X) | |
| y = − A4−1 CIIO−1 R S1o SIIO x | Y = − A4−1 CIIIO R h S3o SIO−1 X | (A27) |
| y = − A4−1 CIIO−1 R S2o SIO x | Y = − A4−1 CIIIO R h S1o SIIIO−1 X | |
| y = A2−1 CIO−1 C2o CIIO (A4 x) | Y = A2−1 CIOh C3o CIIIO−1 (A4 X) | (A28) |
| y = SIO−1 S2o RT CIIO (A4 x) | Y = SIO h S3o RT CIIIO−1 (A4 X) | (A29) |
| y = SIO−1 (RTC2o) SIIO x | Y = SIO−1 (RT h C3o) SIIIO X | |
| y = − A2−1 CIO−1 R S2o SIIO x | Y = − A2−1 CIO R h S3o SIIIO−1 X | (A30) |
| y = A2−1 CIIIO−1 C3o CIIIO(A2 x) | Y = A2−1 CIIO h C2o CIIO−1(A2 X) | (A31) |
| y = SIIIO−1 S3o QT CIIIO (A2 x) | Y = SIIO h S2o QT CIIO−1(A2 X) | (A32) |
| y = SIIIO−1 QT C3o Q SIIIO x | Y = SIIO QT h S2o Q SIIO−1 X | |
| y = − A2−1 CIIIO−1 Q S3o SIIIO x | Y = − A2−1 CIIO Q h S2o SIIO−1 X | (A33) |
| y = CIVO−1 (QT C3o) CIVO x | Y = CIVO (QT h C2o) CIVO−1 X | (A34) |
| y = CIVO−1C4o QT CIIIO (A2 x) | Y = CIVO h C4o QT CIIO−1(A2 X) | |
| y = A4−1 SIVO−1 Q S3o CIVO x | Y = A4−1 SIVO Q h S2o CIVO−1 X | (A35) |
| y = A4−1 SIVO−1 Q C4o SIIIO x | Y = A4−1 SIVOQ h C4o SIIO−1 X | |
| y = A4−1 SIVO−1C3o SIVO (A4 x) | Y = A4−1 SIVO h C2o SIVO−1 (A4 X) | (A36) |
| y = A4−1 SIVOE−1S4o CIIIO (A2 x) | Y = A4−1 SIVOh S4o CIIO−1 (A2 X) | |
| y = − CIVO−1S3o QT SIVO (A4 x) | Y = − CIVOh S2o QT SIVO−1 (A4 X) | (A37) |
| y = − CIVO−1 (QTS4o) SIIIO x | Y = − CIVO (QT h S4o) SIIIO−1 X | |
| y = A2−1 CIIIO−1 Q C4o CIVO x | Y = A2−1 CIIO Q h C4o CIVO−1 X | (A38) |
| y = SIIIO−1 (QTS4o) CIVO x | Y = SIIO (QT h S4o) CIVO−1 x | (A39) |
| y = SIIIO−1C4o QT SIVO (A4 x) | Y = SIIO−1 h C4o QT SIVO−1 (A4 X) | |
| y = − A2−1 CIIIO−1S4o SIVO (A4 x) | Y = − A2−1 CIIO h S4o SIVO−1 (A4 x) | (A40) |
References and Notes
- Shen, Bo; Sethi, I.K.; Bhaskaran, V. DCT convolution and its application in compressed domain. IEEE T. Circ. Syst. Vid. 1998, 8, 947–952. [Google Scholar]
- Martucci, S.A. Symmetric convolution and the discrete sine and cosine transforms. IEEE Trans. SP 1994, 42, 1038–1051. [Google Scholar] [CrossRef]
- Zou, X.; Muramatsu, S.; Kiya, H. The generalized overlap-add and overlap-save methods using discrete sine and cosine transforms for FIR filtering. In Proceedings of the 3rd IEEE Int’l Conf. on Signal Processing, ICSP'96, Beijing, China, October 1996; pp. 91–94.
- Reju, V.G.; Koh, S.N.; Soon, I.Y. Convolution using discrete sine and cosine transforms. IEEE Signal Proc. Let. 2007, 14, 445–448. [Google Scholar] [CrossRef]
- Korohoda, P.; Dabrowski, A. Generalized convolution as a tool for the multi-dimensional filtering tasks. Multidim. Syst. Sign. P. 2008, 19, 361–377. [Google Scholar] [CrossRef]
- Foltz, T.M.; Welsh, B.M.; Holmberg, C.D. Symmetric convolution using unitary transform matrices. IEEE T. Signal Proces. 2000, 48, 2691–2692. [Google Scholar] [CrossRef]
- Park, Y.S.; Park, H.W. Design and analysis of an image resizing filter in the block-DCT domain. IEEE T. Circ. Syst. Vid. 2004, 14, 274–279. [Google Scholar]
- Sánchez, V.; García, P.; Peinado, A.M.; Segura, J.C.; Rubio, A.J. Diagonalizing properties of the discrete cosine transforms. IEEE T. Signal Proces. 1995, 43, 2631–2641. [Google Scholar] [CrossRef]
- Sánchez, V.; García, P.; Peinado, A.M.; Segura, J.C.; Rubio, A.J. Generating matrices for the discrete sine transforms. IEEE T. Signal Proces. 1996, 44, 2644–2646. [Google Scholar] [CrossRef]
- Martucci, S.A. Image resizing in the discrete sine and cosine domain. In Proceedings of the IEEE International Conference on Image Processing 1995, Washington, DC, USA, October 1995; Volume 2, pp. 244–247.
- Foltz, T.M.; Welsh, B.M. Symmetric convolution of asymmetric multidimensional sequences using discrete trigonometric transforms. IEEE T. Image Proces. 1999, 8, 640–651. [Google Scholar] [CrossRef] [PubMed]
- Rao, K.R.; Yip, P. Discrete Cosine Transform: Algorithms, Advantages, And Applications; Academic Press: London, England, 1990. [Google Scholar]
- Britanak, V.; Yip, P.; Rao, K.R. Discrete Cosine and Sine Transforms; Academic Press (Elsevier): Orlando, FL, USA, 2007; pp. 32–38. [Google Scholar]
© 2009 by the authors; licensee Molecular Diversity Preservation International, Basel, Switzerland. This article is an open-access article distributed under the terms and conditions of the Creative Commons Attribution license (http://creativecommons.org/licenses/by/4.0/).