Формула на изображении изображает квантование

Я хотел бы знать, может ли кто-нибудь помочь мне понять, что происходит в приведенной выше формуле? Должен ли я сначала выполнить x = [c / s1], а затем выполнить s1 * x?

Пожалуйста, помогите мне понять это.

Incomer

1
TheTank 31 Авг 2017 в 19:53

4 ответа

Лучший ответ

В двух словах, JPEG работает, применяя дискретное косинусное преобразование к 8x8-пиксельным блокам изображения а затем квантовать полученную матрицу 8x8, чтобы сжать ее в меньшее количество битов.

Именно квантование делает JPEG с потерями. Различные матрицы квантования приводят к различным уровням сжатия (и качества распакованного изображения).

Формула в вашем вопросе представляет сжатие JPEG с последующей декомпрессией. DCT дает матрицу 8x8 коэффициентов с плавающей точкой. Потом:

  • Матрица коэффициентов DCT делится поэлементно на матрицу квантования.
  • Результаты округляются до целых.
  • Затем целые числа умножаются обратно на коэффициенты квантования.

Дело в том, что в статье речь идет о том, что, когда этот процесс выполняется более одного раза (возможно, с разными коэффициентами квантования), это можно обнаружить и можно использовать для поиска изображений в формате JPEG.

Постскриптум Мне кажется, что обозначение автора немного небрежно. Если я не ошибаюсь, JPEG округляет до ближайшего целого числа, тогда как в статье используется функция floor, которая округляет до отрицательной бесконечности. Помимо этого, основной пункт статьи стоит.

0
NPE 31 Авг 2017 в 17:18

Ваш источник сбивает с толку. Квантование - это просто высокий термин для целочисленного деления.

У вас есть таблица квантования 8x8 (Q). Когда вы квантоваете матрицу DCT 8x8 (M) в значения (V), вы делаете

V (n, m) = M (n, m) / Q (n, m)

JPEG делает INTEGER деление, где значения округляются ВНИЗ.

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

Если V (n, m) * Q (n, m)! = M (n, m), скорее всего, изображение ранее не сжималось.

0
user3344003 1 Сен 2017 в 22:00

Итак, формула может быть представлена в виде

Quantized Value(i, j) = DCT(i, j)/Quantum(i, j)[Rounded-off to the nearest integer]

Где DCT = коэффициент дискретного косинусного преобразования и

For every element position in the DCT matrix, a corresponding value in the 
quantization matrix gives a **Quantum value** indicating what the step size is 
going to be for that element. 

and i, j are the row and column of the quantization matrix respectively.

Вот пример матрицы: введите описание изображения здесь

Упоминается в здесь путь python для техники Lossy Data Compression (JPEG для экземпляра). Вы также можете прочитать больше о понимании формул (см. Этот документ) в здесь .

Надеюсь, это поможет...

0
Mandy8055 31 Авг 2017 в 17:29

Operation это напольная операция. Любая дробная часть числа удаляется, уменьшая его до наибольшего меньшего или равного целого числа. В Python это делается с помощью math.floor() или любой эквивалент.

0
Ignacio Vazquez-Abrams 31 Авг 2017 в 16:58