calculateDCT method

List calculateDCT(
  1. List matrix
)

Helper function to perform 1D discrete cosine tranformation on a matrix

Implementation

List calculateDCT(List matrix) {
  var transformed = List<num>.filled(32, 0);
  var _size = matrix.length;

  for (var i = 0; i < _size; i++) {
    num sum = 0;

    for (var j = 0; j < _size; j++) {
      sum += matrix[j] * cos((i * pi * (j + 0.5)) / _size);
    }

    sum *= sqrt(2 / _size);

    if (i == 0) {
      sum *= 1 / sqrt(2);
    }

    transformed[i] = sum;
  }

  return transformed;
}