// Quantise in-place transformed coefficients (without LL subband prediction)
const Picture quantise_transform_np(const Picture& transform,
                                    const int qIndex,
                                    const Array1D& qMatrix) {
  Picture result(transform.format());
  result.y(quantise_transform_np(transform.y(), qIndex, qMatrix));
  result.c1(quantise_transform_np(transform.c1(), qIndex, qMatrix));
  result.c2(quantise_transform_np(transform.c2(), qIndex, qMatrix));
  return result;
}
const Picture inverse_quantise_transform_np(const Picture& qCoeffs,
                                            const int qIndex,
                                            const Array1D& qMatrix) {
  Picture result(qCoeffs.format());
  result.y(inverse_quantise_transform_np(qCoeffs.y(), qIndex, qMatrix));
  result.c1(inverse_quantise_transform_np(qCoeffs.c1(), qIndex, qMatrix));
  result.c2(inverse_quantise_transform_np(qCoeffs.c2(), qIndex, qMatrix));
  return result;
}
// Quantise in-place transformed coefficients of a whole picture as slices
// Using LL (DC) subband prediction
// Uses a quantisation matrix
const Picture quantise_transform(const Picture& transform,
                                 const Array2D& qIndices,
                                 const Array1D& qMatrix) {
  Picture result(transform.format());
  result.y(quantise_transform(transform.y(), qIndices, qMatrix));
  result.c1(quantise_transform(transform.c1(), qIndices, qMatrix));
  result.c2(quantise_transform(transform.c2(), qIndices, qMatrix));
  return result;
}