Автор Тема: Обсуждение статьи "Сравнение форматов DjVu и PDF"  (Прочитано 9426 раз)

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Обсуждение недостатков PDF:

http://www.sql.ru/forum/actualthread.aspx?tid=524590&pg=-1

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Интересные статьи:

Сравнение кодеков изображений стандарта JPEG 2000

http://www.compression.ru/video/codec_comparison/jpeg2000_codecs_comparison.html

Efficiency of wavelet conversion

http://digit.nkp.cz/knihcin/digit/vav/wavelet/Efficiency-of-wavelet-conversion.html

Это для справки к недавнему разговору о сравнении IW44 и JPEG2000.
« Последнее редактирование: 25 јРав 2011, 23:28:41 от monday2000 »

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
По поводу фразы Леона:
Цитировать
You can make very large quasi-lossless iw44 if you want:
  % c44 -slice 999 -crcbfull foo.ppm foo.djvu
So I do not get the argument.
What do they call the "max quality" settings?
Я тут попробовал сейчас один цветной скан закодировать в DjVu указанным способом. После нескольких проб я выяснил, что при значениях -slice выше 200 размер получаемого DjVu уже не растёт. Поэтому, какое бы значение -slice мы ни выбрали между 201 и 999, уже будет всё равно - DjVu будет получаться абсолютно идентичным (и довольно большим по размеру). Так что получается, что для IW44 можно говорить о некоем максимальном параметре качества - это -slice 200. Более высокого качества достичь нельзя (как я понял - но я могу и ошибаться).
Впрочем, -slice 200 совершенно непрактичен в плане размера файла - ведь размер такого DjVu получается более чем в 2 раза больше, чем размер исходного файла! ;D Где-то после -slice 130 размер DjVu начинает уже превосходить размер исходного файла. Поэтому, видимо, и принято считать, что максимальное разумное -slice равно 120.

Я тут ещё заметил одну поразительную вещь: в утилите DJVUMAKE предусмотрена работа с неким чанком BG2k http://djvu.sourceforge.net/doc/man/djvumake.html#lbAD :
Цитировать
BG2k=jpegfile
    Create a JPEG-2000 background chunk. File jpegfile must contain JPEG-2000 encoded data. The DjVu decoder does not yet display files containing JPEG-2000 data.
Очень интересно. Не было этого раньше - я хорошо помню. В спецификации DjVu о таком чанке тоже ни звука. Что бы всё это значило - что в DjVu собираются добавить ... поддержку JPEG-2000?! :o

Я написал Леону письмо со своими вопросами и соображениями по всем вопросам сравнения IW44 и JPEG-2000.
« Последнее редактирование: 25 јРав 2011, 23:29:38 от monday2000 »

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Леон прислал мне ответ:
Цитировать
Jpeg2K in lossy mode uses 9-7 wavelets which are considered superior to the
4-4 Dubuc-Delaurier used in IW44.
That has two consequences.
- Jpeg2K has a slightly better SNR  (signal to noise ratio).  Nothing
dramatic. That's probably lost in the file format overhead.
- Jpeg2K decoding is considerably slower (requires floating point
computation and three passes).

The djvu format specifies Jpeg2K encoded chunks for both background and
foreground (BG2k and FG2k if I remember well.)
But this is not implemented. See
http://djvu.cvs.sourceforge.net/viewvc/djvu/djvulibre-3.5/libdjvu/DjVuFile.c
pp around line 1055.
That would be easy to do, but that will remain slow and clumsy.

- L.
То есть, Леон действительно признаёт, что JPEG2000 даёт слегка лучшее соотношение "сигнал-шум". Но по его мнению, это преимущество формата JPEG2000 теряется на фоне его издержек. Ведь JPEG2000 декодируется в 3 раза дольше по сравнению с IW44! :o А всё потому, что IW44 (в отличие от JPEG2000) работает с целочисленными значениями (вместо чисел с плавающей точкой) и вместо умножения использует операцию сдвига.

Кроме того, сторонникам формата JPEG2000 нужно не забывать о том, что JPEG2000 - это тоже формат сжатия с потерями. JPEG2000 вовсе не беспотерен.

В крайнем случае в DjVu можно реализовать поддержку JPEG2000, и не только для заднего фона - но даже для переднего плана :), но, как пишет Леон, это было бы "медленно и топорно".

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Вот я посмотрел тут http://djvu.cvs.sourceforge.net/viewvc/djvu/djvulibre-3.5/libdjvu/DjVuFile.cpp?revision=1.18&view=markup начиная со строки 1053 идёт такой код:

// BG2k (background JPEG-2000) Note: JPEG2K bitstream not finalized.
  else if (chkid == "BG2k" && (djvu || djvi))
  {
    if (bg44)
      G_THROW( ERR_MSG("DjVuFile.dupl_backgrnd") );
    desc.format( ERR_MSG("DjVuFile.JPEG2K_bg") );
  }
 
  // FG2k (foreground JPEG-2000) Note: JPEG2K bitstream not finalized.
  else if (chkid == "FG2k" && (djvu || djvi))
  {
    if (fgpm || fgbc)
      G_THROW( ERR_MSG("DjVuFile.dupl_foregrnd") );
    desc.format( ERR_MSG("DjVuFile.JPEG2K_fg") );
  }

В общем, я, как и Леон, не уверен в том, а надо ли вообще реализовывать поддержку JPEG2000 в DjVu?

Если кто-то считает, что "надо" - напишите Леону письмо, и постарайтесь убедить его в этой необходимости.

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Вот картинка из файла, ссылку на который давал Леон:
Цитировать
See <http://leon.bottou.org/slides/djvu/index.djvu?djvuopts&page=24>
You can click on some of the bars to see how the images look like (this was compressed using the specified method and recompressed using quasi-lossless djvu for displaying purposes.)

По оси ординат - величина SNR - т.е. Signal-Noise-ratio.

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Леон прислал мне ещё одно письмо с ответами:
Вопрос: Следует ли считать -slice = 120 максимальным значением качества DjVu? Ведь при бОльших -slice размер DjVu начинает превышать размер исходного скана.
Цитировать
Using 120 slices gives you about the same quality as a typical jpeg. It makes no sense to use more than 120 slices if your input image is already a jpeg. That is only useful for raw input images.
Вопрос: Почему Вы упомянули в предыдущем письме -slice = 999? По логике вещей максимально разумное -slice - это 120, а не 999.
Цитировать
Because I forgot that the maximum was 199. I coded that more than ten years ago...
Вопрос: Один человек утверждает, что "при значении качества 100%" он получил от JPEG2000 лучшее визуальное качество, нежели чем от IW44.
Цитировать
Given enough slices, iw44 should be able to match any jpeg or jpeg2000 quality.
For the same quality, the iw44 file should be 25-50% smaller than the jpeg and barely larger than the jpeg2000.
Except for very low qualities where the 9-7 wavelets of jpeg2000 are superior.

If the quality issue is not a luminance but a chrominance problem, try option -crcbfull.

Now there is little to do when people do not want to know.
It is very easy to produce crappy iw44 images or crappy jpeg2000
images if this is what you want.

- L.
Вот Леон отметил интересный момент:
Цитировать
If the quality issue is not a luminance but a chrominance problem, try option -crcbfull.

Вот определения:
Цитировать
Определение: luminance http://www.pcmag.ru/encyclopedia/term.php?ID=3539

1. (также Y) светимость (яркость) [цвета изображения]. Составляющая видеосигнала или схемы (модели) цветового кодирования, несущая информацию о световой интенсивности; в системах component video и S-Video этот сигнал передаётся отдельно от сигнала цветности;
2. яркость точки поверхности, излучающей или отражающей свет; измеряется в направлении, ортогональном поверхности.
Цитировать
Определение: chrominance http://www.pcmag.ru/encyclopedia/term.php?ID=2496

Цветность [изображения], сигнал цветности, цветоразностный сигнал, вектор цветности. Цветовая компонента света, независимая от яркости; видеосигнал, несущий информацию только о цвете изображения. В бытовых видеосистемах с композитным видеосигналом информация цветности и яркости объединена в общем сигнале, а в полупрофессиональной системе S-Video передаётся по двум разным каналам. Некоторые схемы сжатия видеоизображений, например JPEG, предусматривают раздельную обработку значений цветности и яркости. Технически chrominance – это линейная компонента видеосигнала, а chroma – трансформированная нелинейная компонента, хотя эти термины часто употребляются как синонимы.

Речь идёт, видимо, о том, что формат IW44 умеет "урезывать" цветность изображения - с целью снижения его размера. Для этого в С44 предусмотрены следующие параметры:
Цитировать
-crcbnormal
    Select normal chrominance encoding. Chrominance information is encoded at the same resolution as the luminance. This is the default.
-crcbhalf
    Selects half resolution chrominance encoding. Chrominance information is encoded at half the luminance resolution.
-crcbdelay n
    This option can be used with -crcbnormal and -crcbhalf to modify the quality of the chrominance information. The option arguments specifies a parameter n, expressed in slices, that reduces the bit-rate associated with the chrominance. The default chrominance encoding delay is 10 slices.
-crcbfull
    Select the highest possible quality for encoding the chrominance information. This is equivalent to specifying -crcbnormal and -crcbdelay 0.
-crcbnone
    Disable the encoding of the chrominance. Only the luminance information will be encoded. The resulting image will show in shades of gray.
« Последнее редактирование: 28 јРав 2011, 09:46:31 от monday2000 »

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Леон прислал мне ещё одно письмо с ответами:
Вопрос: IW44 - это lossy формат или нет?
Цитировать
IW44 with the max number of slices *is* lossless for gray level images.
For rgb images the color transform loses one bit (so you practically have 128 levels instead of 256).
You have to use the -crcbfull option to minimize the rgb loss.
Вопрос: Один человек критиковал IW44 и сказал, что IW44 слишком размывчатый (blurry) для него (по сравнению с JPEG2000).
Цитировать
At the highest quality, IW44 is lossless in luminance.
Therefore the "blurriness" must come from the chrominance tricks.
Try -slices=199 -crcbfull.
Вопрос: Этот человек сказал, что информация в http://leon.bottou.org/slides/djvu/index.djvu?djvuopts&page=24 наверняка устарела и JPEG2000 значительно улучшился с тех времён.  Когда этот документ был написан - вероятно, в 1998 году?
Цитировать
Probably around 2000. Note that improvements are necessarily limited because jpeg2k must comply with the standard, and the standard has not changed.
Wevelets are not like djvu. There are not many ways to compress a jpeg2k file. The only possible improvements are pre- and post-filters (which play with the perceived image quality at the expense of true snr) as well as adaptive quantization in various sections of the image.

Btw. Does you friend make this assessment by comparing original and compressed images (which one is closest to the original) or by comparing two compressed image (which one looks better without reference to the original) ?
The latter comparison is technically incorrect.  But it is true that you can tweak compression to do that.
Вопрос: К тому же, сейчас появились новые реализации JPEG2000 - которых не было в 1998 году. Например, кодек LuraTech JPEG2000, скорее всего, гораздо эффективнее базовой JasPer (т.е. стандартной JPEG2000-реализации).
Цитировать
Implementations can go faster. Accuracy improvements are limited to the above tricks.
Вопрос: Становится ли формат DjVu устаревшим?
Цитировать
It is certainly aging because nobody works in depth on it.
Вопрос: Бурное развитие всевозможных JPEG2000-реализаций - представляет ли оно угрозу существованию формата DjVu?
Цитировать
The biggest killer was certainly the brain-damaged business strategies of AT&T and then Lizardtech.
Celartem and Caminova are more resonable but lack resources.

Note that IW44 was never designed to compete with Jpeg2000. 
It was just designed to support the DjVu document encoding.
The Jpeg2000 proposals at the time were very different from IW44 and unsuitable for DjVu.
The final Jpeg2000 is much closer to IW44 (very close in fact!)

This is why I find perfectly fine to use Jpeg2000 inside DjVu if it fits the bill.
Вопрос: Мне бы не хотелось, чтобы формат DjVu канул в забвение. Наверняка формату DjVu необходим некоторый "апдейт" - чтобы не отставать от развития JPEG2000.
Цитировать
The reality is the following:
If Caminova does not do it, nobody will.
In their great wisdom^H^H^H^H^H^H greed, the AT&T lawyer made sure that none of the initial DjVu authors would ever receive a dime from DjVu products.
Although I consider that they are the most alive part of DjVu, DjVuLibre and DjVu.org are built on pure goodwill and bring zero dollars.
Yann and I have paid ten years of bandwidth expense on our salaries.

As a result none of us has the economical opportunity to spend serious time on improving DjVu.

- L.
« Последнее редактирование: 30 јРав 2011, 12:10:17 от monday2000 »

textsharik

  • Постоялец
  • ***
  • Сообщений: 138
    • Просмотр профиля
    • E-mail
Re: Обсуждение статьи "Сравнение форматов DjVu и PDF"
« Ответ #23 : 13 ґХЪРСам 2011, 21:25:42 »
Очень интересно. Не было этого раньше - я хорошо помню. В спецификации DjVu о таком чанке тоже ни звука. Что бы всё это значило - что в DjVu собираются добавить ... поддержку JPEG-2000?! :o

Давно добавили. Начиная с Document Express Enterprise версии 5.5, 6.0 - или что-то вроде того.
Проблема в том, что новые версии DEE не взломаны, поэтому широкой публике не известны.