protected function DCT1D(array $pixels)
{
$transformed = [];
$size = count($pixels);
for ($i = 0; $i < $size; $i++) {
$sum = 0;
for ($j = 0; $j < $size; $j++) {
$sum += $pixels[$j] * cos($i * pi() * ($j + 0.5) / $size);
}
$sum *= sqrt(2 / $size);
if ($i == 0) {
$sum *= 1 / sqrt(2);
}
$transformed[$i] = $sum;
}
return $transformed;
}