A method of decoding video data, the method comprising: determining, by a video decoder and based on syntax elements in an encoded video bitstream, a plurality of values for a current block of the video data; obtaining, for each respective pass of a multi-pass non-separable inverse transformation, a respective plurality of pre-defined parameters that each indicate a respective angle θ; performing, by the video decoder, multiple rounds of the multi-pass non-separable inverse transformation on the plurality of values to derive residual data that represents pixel differences between the current block of the video data and a predictive block of the video data, wherein each round comprises multiple passes and wherein performing a respective pass of the multi-pass non-separable inverse transformation comprises: performing, using a respective angle θ of the plurality of pre-defined parameters for the respective pass, respective Givens orthogonal transformations on respective pairs of input values of a plurality of input values to generate respective pairs of output values of a plurality of output values, wherein the plurality of input values for a first pass of the multi-pass non-separable inverse transformation comprise the plurality of values determined for the current block of the video data, wherein the plurality of input values for subsequent passes of the multi-pass non-separable inverse transformation comprises the plurality of output values generated for a most recent previous pass of the multi-pass non-separable inverse transformation, and wherein different passes of the multi-pass non-separable transformation use different permutations of pairs of input values, and wherein the respective permutations of pairs that are used for each respective pass are fixed; and reconstructing, by the video decoder, the current block of the video data based on the residual data and the predictive block of the video data. determining, by a video decoder and based on syntax elements in an encoded video bitstream, a plurality of values for a current block of the video data; obtaining, for each respective pass of a multi-pass non-separable inverse transformation, a respective plurality of pre-defined parameters that each indicate a respective angle θ; performing, by the video decoder, multiple rounds of the multi-pass non-separable inverse transformation on the plurality of values to derive residual data that represents pixel differences between the current block of the video data and a predictive block of the video data, wherein each round comprises multiple passes and wherein performing a respective pass of the multi-pass non-separable inverse transformation comprises: performing, using a respective angle θ of the plurality of pre-defined parameters for the respective pass, respective Givens orthogonal transformations on respective pairs of input values of a plurality of input values to generate respective pairs of output values of a plurality of output values, wherein the plurality of input values for a first pass of the multi-pass non-separable inverse transformation comprise the plurality of values determined for the current block of the video data, wherein the plurality of input values for subsequent passes of the multi-pass non-separable inverse transformation comprises the plurality of output values generated for a most recent previous pass of the multi-pass non-separable inverse transformation, and wherein different passes of the multi-pass non-separable transformation use performing, using a respective angle θ of the plurality of pre-defined parameters for the respective pass, respective Givens orthogonal transformations on respective pairs of input values of a plurality of input values to generate respective pairs of output values of a plurality of output values, wherein the plurality of input values for a first pass of the multi-pass non-separable inverse transformation comprise the plurality of values determined for the current block of the video data, wherein the plurality of input values for subsequent passes of the multi-pass non-separable inverse transformation comprises the plurality of output values generated for a most recent previous pass of the multi-pass non-separable inverse transformation, and wherein different passes of the multi-pass non-separable transformation use different permutations of pairs of input values, and wherein the respective permutations of pairs that are used for each respective pass are fixed; and reconstructing, by the video decoder, the current block of the video data based on the residual data and the predictive block of the video data.