unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Leo Famulari <leo@famulari.name>
To: Arun Isaac <arunisaac@systemreboot.net>
Cc: guix-devel@gnu.org
Subject: Re: [PATCH 2/2] gnu: graphicsmagick: Build with 16 bit quantum depth.
Date: Wed, 8 Mar 2017 13:54:25 -0500	[thread overview]
Message-ID: <20170308185425.GA4625@jasmine> (raw)
In-Reply-To: <20170307172647.944-2-arunisaac@systemreboot.net>

On Tue, Mar 07, 2017 at 10:56:47PM +0530, Arun Isaac wrote:
> Octave requires graphicsmagick to be built with 16 bit quantum depth.
> 
> * gnu/packages/imagemagick.scm (graphicsmagick)[arguments]: Add
>   "--with-quantum-depth=16" to #:configure-flags.

In case anyone is wonder what this option does, here is documentation
from source file 'www/INSTALL-unix.rst':


--with-quantum-depth

  This option allows the user to specify the number of bits to use per
  pixel quantum (the size of the red, green, blue, and alpha pixel
  components. When an image file with less depth is read, smaller
  values are scaled up to this size for processing, and are scaled
  down from this size when a file with lower depth is written.  For
  example, "--with-quantum-depth=8" builds GraphicsMagick using 8-bit
  quantums. Most computer display adaptors use 8-bit
  quantums. Currently supported arguments are 8, 16, or 32.  The
  default is 8. This option is the most important option in
  determining the overall run-time performance of GraphicsMagick.

  The number of bits in a quantum determines how many values it may
  contain. Each quantum level supports 256 times as many values as
  the previous level. The following table shows the range available
  for various quantum sizes.

      ============  =====================  =================
      QuantumDepth  Valid Range (Decimal)  Valid Range (Hex)
      ============  =====================  =================
            8                0-255               00-FF
           16               0-65535            0000-FFFF
           32            0-4294967295      00000000-FFFFFFFF
      ============  =====================  =================

  Larger pixel quantums cause GraphicsMagick to run more slowly and to
  require more memory. For example, using sixteen-bit pixel quantums
  causes GraphicsMagick to run 15% to 50% slower (and take twice as
  much memory) than when it is built to support eight-bit pixel
  quantums.  Regardless, the GraphicsMagick authors prefer to use
  sixteen-bit pixel quantums since they support all common image
  formats and assure that there is no loss of color precision.

  The amount of virtual memory consumed by an image can be computed
  by the equation (QuantumDepth*Rows*Columns*5)/8. This is an
  important consideration when resources are limited, particularly
  since processing an image may require several images to be in
  memory at one time. The following table shows memory consumption
  values for a 1024x768 image:

      ============  ==============
      QuantumDepth  Virtual Memory
      ============  ==============
          8              3MB
         16              8MB
         32             15MB
      ============  ==============

  GraphicsMagick performs all image processing computations using
  floating point or non-lossy integer arithmetic, so results are very
  accurate.  Increasing the quantum storage size decreases the amount
  of quantization noise (usually not visible at 8 bits) and helps
  prevent countouring and posterization in the image.

  Consider also using the --enable-quantum-library-names configure
  option so that installed shared libraries include the quantum depth
  as part of their names so that shared libraries using different
  quantum depth options may co-exist in the same directory.

  reply	other threads:[~2017-03-08 18:54 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-07 17:26 [PATCH 1/2] gnu: octave: Build with curl and graphicsmagick Arun Isaac
2017-03-07 17:26 ` [PATCH 2/2] gnu: graphicsmagick: Build with 16 bit quantum depth Arun Isaac
2017-03-08 18:54   ` Leo Famulari [this message]
2017-03-08 20:13     ` Arun Isaac
2017-03-07 20:04 ` [PATCH 1/2] gnu: octave: Build with curl and graphicsmagick ng0
  -- strict thread matches above, loose matches on Subject: below --
2017-03-07 19:16 Arun Isaac
2017-03-07 19:16 ` [PATCH 2/2] gnu: graphicsmagick: Build with 16 bit quantum depth Arun Isaac
2017-03-08 20:11 [PATCH 1/2] gnu: octave: Build with curl and graphicsmagick Arun Isaac
2017-03-08 20:11 ` [PATCH 2/2] gnu: graphicsmagick: Build with 16 bit quantum depth Arun Isaac
2017-03-09 21:46   ` Leo Famulari

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170308185425.GA4625@jasmine \
    --to=leo@famulari.name \
    --cc=arunisaac@systemreboot.net \
    --cc=guix-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).