re earlier comment: hmmm... I'm not as advanced when it comes to orthogonality... Honestly, I don't understand what the implication of orthogonality is. Does it ultimately mean that it takes more CPU cycles to do the transform (full transform kernel vs sparse transform kernel)?
Orthogonality means a problem can be broken down into 2 or more separate parts which can be solved individually without affecting the other part, and then recombined to give a final solution. Simple example is x and y vector of someone swimming across the river. The speed and direction of a swimmer can be resolved into x and y components to solve time to cross and landing point (obviously no recombination required in this case!). By making the problem 'tractable', it can be solved efficiently.
Orthogonality therefore won't affect CPU cycles, but the way the solution is set up in software will affect the cycles (e.g. different software solutions to calculating a sine wave/inverse of - as used in a Fourier transform -
can make a significant difference in CPU cycles/time to solve).