Что они подразумевают под квантом в GraphicsMagick
У GM есть квант опции сборки, который определяет битовую глубину, используемую при чтении изображения. Создание GM с высоким квантовым значением означает, что изображения с меньшей битовой глубиной будут занимать гораздо больше памяти.
Какой здесь квант? Кто-нибудь может дать мне некоторые ресурсы по этому поводу?
2 ответа
Это параметр времени сборки, что означает, что вам нужно перекомпилировать GraphicsMagick, чтобы изменить его.
Если вы строите с Q8
каждый из ваших пикселей в изображении может иметь 2^8 уникальных значений, то есть 256 оттенков серого.
Если вы строите с Q16
каждый пиксель может иметь 2^16 уникальных значений - то есть 65 536 оттенков серого.
Таким образом, при более высоком значении квантования вы получите более плавные градиенты и, например, меньше ошибок округления. Недостатком является то, что ваша обработка может занять больше времени (зависит от процессора) и потребует больше оперативной памяти для ее хранения.
Вы можете проверить свои текущие настройки с помощью:
gm identify version
Пример вывода
GraphicsMagick 1.3.27 Q16 http://www.GraphicsMagick.org/
Copyright (C) 2002-2017 GraphicsMagick Group.
Additional copyrights and licenses apply to this software.
See http://www.GraphicsMagick.org/www/Copyright.html for details.
Feature Support:
Native Thread Safe yes
Large Files (> 32 bit) yes
Large Memory (> 32 bit) yes
BZIP yes
DPS no
FlashPix no
FreeType yes
Ghostscript (Library) no
JBIG no
JPEG-2000 no
JPEG yes
Little CMS no
Loadable Modules yes
OpenMP no
PNG yes
TIFF yes
TRIO no
UMEM no
WebP no
WMF no
X11 no
XML yes
ZLIB yes
Host type: x86_64-apple-darwin17.3.0
Configured using the command:
./configure '--prefix=/usr/local/Cellar/graphicsmagick/1.3.27' '--disable-dependency-tracking' '--enable-shared' '--disable-static' '--with-modules' '--without-lzma' '--disable-openmp' '--with-quantum-depth=16' '--without-gslib' '--with-gs-font-dir=/usr/local/share/ghostscript/fonts' '--without-x' '--without-lcms2' 'CC=clang' 'CXX=clang++'
Final Build Parameters:
CC = clang
CFLAGS = -g -O2 -Wall -D_THREAD_SAFE
CPPFLAGS = -I/usr/local/opt/freetype/include/freetype2 -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/libxml2
CXX = clang++
CXXFLAGS = -D_THREAD_SAFE
LDFLAGS = -L/usr/local/opt/freetype/lib -L/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/lib
LIBS = -lfreetype -lbz2 -lz -lltdl -lm -lpthread
Самая первая строка Q16
в нем значение моего Кванта равно 16.
Согласно этому сайту, квант это:
Базовый тип, используемый для представления образцов цвета в GraphicsMagick, является типом Quantum. Пиксели представлены структурой квантовых значений. Например, пиксель RGB содержит красный, зеленый и синий кванты, а пиксель RGBA содержит красный, зеленый, синий и кванты непрозрачности. Максимальное значение, которое может получить Quantum, определяется константным значением, представленным определением MaxRGB, которое само определяется числом битов в Quantum. Опция построения QuantumDepth определяет количество битов в Quantum.