Как реализовать dct, когда размер входного изображения не в масштабе 8? - PullRequest
2 голосов
/ 26 марта 2020

Я узнал, что если нужно реализовать dct на изображении размером (H, W), ему нужна матрица A, которая имеет размер (8, 8), и нужно использовать эту A для вычисления с ( 8, 8) область F на изображении. Это означает, что если массив изображений равен m, нужно сначала вычислить m [: 8,: 8], а затем m [8:16, 8:16] и так далее.

Как я могу реализовать этот dct, если размер входного изображения не равен 8. Например, если размер изображения (12, 12) не может содержать два (8, 8) windows, как Я реализую dct? Я попробовал opencv и обнаружил, что opencv может справиться с этим сценарием, но я не знаю, как он это реализовал.

1 Ответ

1 голос
/ 26 марта 2020

8x8 в спецификации называется "Минимально кодированная единица" (MCU), хотя видео энтузиасты называют их "макроблоками" .

Реализация с более низким качеством pad, чтобы заполнить нулями - что может вызвать неприятные эффекты.

Лучше реализации pad, чтобы заполнить, повторяя предыдущий пиксель слева, если отступ вправо, или сверху, если отступ вниз.

Обратите внимание, что только правая сторона и нижняя часть изображения могут быть дополнены.

...