
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" 
  "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html version="-//W3C//DTD XHTML 1.1//EN"
      xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://www.w3.org/1999/xhtml
                          http://www.w3.org/MarkUp/SCHEMA/xhtml11.xsd">
<head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
  <meta name="google-site-verification" content="MxsMq6bdLOx0KSuz1MY6yG9ZTIJ7_7DVRfl5NCAT5Yg"/>
  <title>ImageMagick: JP2 Encoding Options</title>
  <meta http-equiv="content-language" content="en-US"/>
  <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
  <meta http-equiv="reply-to" content="magick-users@imagemagick.org"/>
  <meta name="application-name" content="ImageMagick"/>
  <meta name="description" content="Use ImageMagick to convert, edit, or compose bitmap images in a variety of formats.  In addition resize, rotate, shear, distort and transform images automagically."/>
  <meta name="application-url" content="http://www.imagemagick.org"/>
  <meta name="generator" content="PHP"/>
  <meta name="keywords" content="jp2, encoding, options, ImageMagick, PerlMagick, image processing, OpenMP, software development library, image, photo, software, Magick++, MagickWand"/>
  <meta name="rating" content="GENERAL"/>
  <meta name="robots" content="INDEX, FOLLOW"/>
  <meta name="generator" content="ImageMagick Studio LLC"/>
  <meta name="author" content="ImageMagick Studio LLC"/>
  <meta name="revisit-after" content="2 DAYS"/>
  <meta name="resource-type" content="document"/>
  <meta name="copyright" content="Copyright (c) 1999-2012 ImageMagick Studio LLC"/>
  <meta name="distribution" content="Global"/>
  <link rel="icon" href="../images/wand.png"/>
  <link rel="shortcut icon" href="../images/wand.ico"  type="images/x-icon"/>
  <link rel="canonical" href="http://www.imagemagick.org" />
  <link rel="meta" type="application/rdf+xml" title="ICI" href="http://imagemagick.org/ici.rdf"/>
  <!-- Add jQuery library -->
  <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js"></script>
  
  <!-- Optionaly include easing and/or mousewheel plugins -->
  <script type="text/javascript" src="http://www.imagemagick.org/fancybox/jquery.easing-1.3.pack.js"></script>
  <script type="text/javascript" src="http://www.imagemagick.org/fancybox/jquery.mousewheel-3.0.6.pack.js"></script>
  
  <!-- Add fancyBox -->
  <link rel="stylesheet" href="http://www.imagemagick.org/fancybox/jquery.fancybox.css?v=2.0.4" type="text/css" media="screen" />
  <script type="text/javascript" src="http://www.imagemagick.org/fancybox/jquery.fancybox.pack.js?v=2.0.4"></script>
  
  <!-- Optionaly include button and/or thumbnail helpers -->
  <link rel="stylesheet" href="http://www.imagemagick.org/fancybox/helpers/jquery.fancybox-buttons.css?v=2.0.4" type="text/css" media="screen" />
  <script type="text/javascript" src="http://www.imagemagick.org/fancybox/helpers/jquery.fancybox-buttons.js?v=2.0.4"></script>
  
  <link rel="stylesheet" href="http://www.imagemagick.org/fancybox/helpers/jquery.fancybox-thumbs.css?v=2.0.4" type="text/css" media="screen" />
  <script type="text/javascript" src="http://www.imagemagick.org/fancybox/helpers/jquery.fancybox-thumbs.js?v=2.0.4"></script>
  <script type="text/javascript">
  	$(document).ready(function() {
  		$(".fancybox").fancybox();
  	});
  </script>
  <!-- ImageMagick style -->
  <link rel="stylesheet" href="http://www.google.com/cse/style/look/default.css" type="text/css" />
  <style type="text/css" media="all">
    @import url("../www/magick.css");
  </style>
</head>

<body id="www-imagemagick-org">
<div class="titlebar">
<div style="margin: 17px auto; float: left;">
  <script type="text/javascript">
  <!--
    google_ad_client = "pub-3129977114552745";
    google_ad_slot = "5439289906";
    google_ad_width = 728;
    google_ad_height = 90;
  //-->
  </script>
  <script type="text/javascript"
    src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
  </script>
</div>
<a href="../discourse-server">
  <img src="../images/logo.jpg"
  alt="ImageMagick Logo"
  style="width: 123px; height: 118px; border: 0px; float: right;" /></a>
<a href="../index.html">
  <img src="../images/sprite.jpg"
  alt="ImageMagick Sprite"
  style="width: 114px; height: 118px; border: 0px; float: right;" /></a>
</div>

<div class="westbar">

<div class="menu">
  <a title="About ImageMagick" href="../index.html">About ImageMagick</a>
</div>
<div class="menu">
  <a title="Binary Releases" href="binary-releases.html">Binary Releases</a>
</div>
<div class="sub">
    <a title="Binary Release: Unix" href="binary-releases.html#unix">Unix</a>
</div>
<div class="sub">
    <a title="Binary Release: MacOS X" href="binary-releases.html#macosx">Mac OS X</a>
</div>
<div class="sub">
    <a title="Binary Release: iOS" href="binary-releases.html#iOS">iOS</a>
</div>
<div class="sub">
    <a title="Binary Release: Windows" href="binary-releases.html#windows">Windows</a>
</div>
<div class="sep"></div>
<div class="menu">
  <a title="Command-line Tools" href="command-line-tools.html">Command-line Tools</a>
</div>
<div class="sub">
    <a title="Command-line Tools: Processing" href="command-line-processing.html">Processing</a>
</div>
<div class="sub">
    <a title="Command-line Tools: Options" href="command-line-options.html">Options</a>
</div>
<div class="sub">
    <a title="Command-line Tools: Usage" href="http://www.imagemagick.org/Usage/">Usage</a>
</div>
<div class="menu">
  <a title="Program Interfaces" href="api.html">Program Interfaces</a>
</div>
<div class="sub">
    <a title="Program Interface: MagickWand" href="magick-wand.html">MagickWand</a>
</div>
<div class="sub">
    <a title="Program Interface: MagickCore" href="magick-core.html">MagickCore</a>
</div>
<div class="sub">
    <a title="Program Interface: PerlMagick" href="perl-magick.html">PerlMagick</a>
</div>
<div class="sub">
    <a title="Program Interface: Magick++" href="magick++.html">Magick++</a>
</div>
<div class="sep"></div>
<div  class="menu">
   <a title="Install from Source" href="install-source.html">Install from Source</a>
</div>
<div class="sub">
    <a title="Install from Source: Unix" href="install-source.html#unix">Unix</a>
</div>
<div class="sub">
    <a title="Install from Source: Windows" href="install-source.html#windows">Windows</a>
 </div>
<div class="menu">
  <a title="Resources" href="resources.html">Resources</a>
</div>
<div class="menu">
  <a title="Architecture" href="architecture.html">Architecture</a>
</div>
<div class="menu">
  <a title="Download" href="download.html">Download</a>
</div>
<div class="sep"></div>
<div class="menu">
  <a title="Search" href="search.html">Search</a>
</div>
<div class="sep"></div>
<div class="menu">
  <a title="Site Map" href="sitemap.html">Site Map</a>
</div>
<div  class="sub">
  <a title="Site Map: Links" href="links.html">Links</a>
</div>
<div class="sep"></div>
<div class="menu">
  <a rel="follow" title="Sponsors" href="sponsors.html">Sponsors:</a>

  <a href="http://www.networkredux.com"> <img src="../images/networkredux.png" width="140" height="31" alt="[sponsor]" style="margin-top: 4px; margin-left: 4px; border: 0px; float: left;" /></a>
  <a href="http://www.dinodirect.com/ipads-tablets/"> <img src="../images/dino-direct.jpg" width="140" height="90" alt="[sponsor]" style="margin-top: 4px; margin-left: 4px; border: 0px; float: left;" /></a><!-- 201208010120 mickey@163... -->
<div class="sponsbox">
<div class="sponsor">
  <a rel="follow" title="Sponsor: The Fastest &amp; Easiest Way to Find Images" href="http://www.graphicsfactory.com">The Fastest &amp; Easiest Way to Find Images</a><!-- 201210010270 graphicsfac... -->
</div>
<div class="sponsor">
  <a rel="follow" title="Sponsor: VPS" href="http://www.interdominios.com/vps">VPS</a><!-- 201209010090 barsh@inter... -->
</div>
<div class="sponsor">
  <a rel="follow" title="Werbebanner Werbeplane" href="http://www.allesbanner.de">Werbebanner Werbeplane</a><!-- 201212010450 info@druck... -->
</div>
<div class="sponsor">
  <a rel="follow" title="Entertainment News &amp; Photos" href="http://www.zimbio.com">Entertainment News &amp; Photos</a><!-- 201211010540 bd@zimb... -->
</div>
<div class="sponsor">
  <a rel="follow" title="Sponsor: LED24" href="http://led24.de/">LED24</a><!-- 201207010270 info@led24... -->
</div>
<div class="sponsor">
  <a rel="follow" title="Sponsor: Best Website Hosting" href="http://www.top-cheap-web-hosting.com">Best Website Hosting</a><!-- 201304010090 eunge.liu-->
</div>
<div class="sponsor">
  <a rel="follow" title="Android Tablet" href="http://www.dinodirect.com/ipads-tablets/">Android Tablet</a><!-- 201208010120 mickey@163... -->
</div>
<div class="sponsor">
  <a rel="follow" title="Sponsor: Web Site Hosting" href="http://webhostinggeeks.com">Web Site Hosting</a><!-- 201302010900 funds@enmob... -->
</div>
<div class="sponsor">
   <a rel="follow" title="Sponsor: Premium Quality Stock Photos" href="http://www.f1online.pro/en/">Premium Quality Stock Photos</a><!-- 2012080100540 ... -->
</div>
<div class="sponsor">
   <a rel="follow" title="Sponsor: Druckerei" href="http://print24.com/de/">Druckerei</a><!-- 2012070100250 ... -->
</div>
<div class="sponsor">
  <a rel="follow" title="Sponsor: Managed Server" href="http://www.robhost.de">Managed Server</a><!-- 201210010720 klikics... -->
</div>
<div class="sponsor">
  <a rel="follow" title="Sponsor: Druckerei" href="http://www.allesdruck.de">Druckerei</a><!-- 201303011500 r.leo -->
</div>
<div class="sponsor">
   <a rel="follow" title="Sponsor: Free Catalogs" href="http://www.who-sells-it.com/">Free Catalogs</a><!-- 20120801000600 -->
</div>
<div class="sponsor">
   <a rel="follow" title="Sponsor: Web Hosting" href="http://www.hostucan.com">Web Hosting</a><!-- 2012120100150 racent marketing@webhosting...-->
</div>
</div>
</div>
</div>

<div class="eastbar">
  <div class="g-plusone" id="gplusone"></div>
  <script type="text/javascript">
    window.___gcfg = {
      lang: 'en-US'
    };

    (function() {
      var po = document.createElement('script');
      po.type = 'text/javascript'; po.async = true;
      po.src = 'https://apis.google.com/js/plusone.js';
      var script = document.getElementsByTagName('script')[0];
      script.parentNode.insertBefore(po, script);
    })();
    var gplusone = document.getElementById("gplusone");
    gplusone.setAttribute("data-size","medium");
    gplusone.setAttribute("data-count","false");
  </script>
</div>

<div class="main">

<h1>ImageMagick JPEG-2000 Image Format</h1>
<p class="navigation-index"></p>

<p>ImageMagick's JPEG-2000 image formats, JP2 and JPC, accept a plethora of encoding options as detailed below.  As an example, suppose you are interested in these options:</p>

<ul>
<li>code blocks are 64 samples in width and 32 samples in height</li>
<li>no multicomponent transform</li>
<li>4 resolution levels for each component</li>
<li>compression is lossy at 64:1</li>
</ul>

<p>Use this command:</p>

<p class='crt'><span class="crtprompt"> $ </span><span class='crtin'>convert wizard.png -define jp2:cblkwidth=64 -define jp2:cblkheight=32  \ <br/>
  -define jp2:nomct -define jp2:numrlvls=4 -define jp2:rate=0.015625 wizard.jpc</span></p>
<p>Here we convert a giga-byte TIFF image to JPEG-2000 with a reduced memory footprint:</p>

<p class='crt'><span class="crtprompt"> $ </span><span class='crtin'>convert frame-00038.tif -define jp2:tilewidth=256 -define jp2:tileheight=256 frame-00038.jp2</span></p>
<p>Here is a lossy example using the full gamut of JP2 options:</p>

<p class='crt'><span class="crtprompt"> $ </span><span class='crtin'>convert input.tif -define numrlvls=7 -define jp2:tilewidth=1024
-define jp2:tileheight=1024 \<br />-define jp2:rate=0.02348 -define
jp2:prg=rpcl -define jp2:mode=int -define jp2:prcwidth=16383 \<br />-define
jp2:prcheight=16383 -define jp2:cblkwidth=64 -define jp2:cblkheight=64
-define jp2:sop output.jp2</span></p>
<p>Here is the same example with lossless encoding:</p>
<p class='crt'><span class="crtprompt"> $ </span><span class='crtin'>convert input.tif -define numrlvls=6 -define jp2:tilewidth=1024
-define jp2:tileheight=1024 \<br />-define jp2:rate=1.0 -define jp2:lazy
-define jp2:prg=rlcp -define jp2:ilyrrates=\<br />'0.015625,0.01858,0.0221,0.025,0.03125,0.03716,0.04419,0.05,0.0625,
0.075,0.088,0.1,0.125,0.15,0.18,0.21,0.25,0.3,0.35,0.4,0.5,0.6,0.7,0.84'
\<br />-define jp2:mode=int output.jp2</span></p>
<p>Here is a complete list of JPEG-2000 encoding options:</p>

<dl class="doc">
<dt class="doc">imgareatlx=x</dt>
<dd>Set the x-coordinate of the top-left corner of the image area to x.</dd>
<dt class="doc">imgareatly=y</dt>
<dd>Set the y-coordinate of the top-left corner of the image area to y.</dd>
<dt class="doc">tilegrdtlx=x</dt>
<dd>Set the x-coordinate of the top-left corner of the tiling grid to x.</dd>
<dt class="doc">tilegrdtly=y</dt>
<dd>Set the y-coordinate of the top-left corner of the tiling grid to y.</dd>
<dt class="doc">tilewidth=w</dt>
<dd>Set the nominal tile width to w.</dd>
<dt class="doc">tileheight=h</dt>
<dd>Set the nominal tile height to h.</dd>
<dt class="doc">prcwidth=w</dt>
<dd>Set the precinct width to w. The argument w must be an integer power of two. The default value is 32768.</dd>
<dt class="doc">prcheight=h</dt>
<dd>Set the precinct height to h. The argument h must be an integer power of two. The default value is 32768.</dd>
<dt class="doc">cblkwidth=w</dt>
<dd>Set the nominal code block width to w. The argument w must be an integer power of two.  The default value is 64.</dd>
<dt class="doc">cblkheight=h</dt>
<dd>Set the nominal code block height to h. The argument h must be an integer power of two. The default value is 64.</dd>
<dt class="doc">mode=m</dt>
<dd>Set the coding mode to m. The argument m must have one of the following values:

<table class="doc">
  <tbody>
  <tr>
    <th align="left">Value</th>
    <th align="left">Description</th>
  </tr>

  <tr> <td>int</td>    <td>integer mode</td> </tr>
  <tr> <td>real</td>    <td>real mode</td> </tr>
  </tbody>
</table>
</dd>

<dd>If lossless coding is desired, the integer mode must be used. By default, the integer mode is employed. The choice of mode also determines which multicomponent and wavelet transforms (if any) are employed.</dd>
<dt class="doc">rate=r</dt>
<dd>Specify the target rate. The argument r is a positive real number. Since a rate of one corresponds to no compression, one should never need to explicitly specify a rate greater than one.  By default, the target rate is considered to be infinite.</dd>
<dt class="doc">ilyrrates=r0[,r1,. . . ,rN]</dt>
<dd>Specify the rates for any intermediate layers. The argument to this option is a comma separated list of N rates. Each rate is a positive real number. The rates must increase monotonically.  The last rate in the list should be less than or equal to the overall rate (as specified with the rate option).</dd>
<dt class="doc">prg=p</dt>
<dd>Set the progression order to p. The argument p must have one of the following values:

<table class="doc">
  <tbody>
  <tr>
    <th align="left">Value</th>
    <th align="left">Description</th>
  </tr>

  <tr> <td>lrcp</td>    <td>layer-resolution-component-position (LRCP) progressive (i.e., rate scalable)</td> </tr>
  <tr> <td>rlcp</td>    <td>resolution-layer-component-position (RLCP) progressive (i.e., resolution scalable)</td> </tr>
  <tr> <td>rpcl</td>    <td>resolution-position-component-layer (RPCL) progressive</td> </tr>
  <tr> <td>pcrl</td>    <td>position-component-resolution-layer (PCRL) progressive</td> </tr>
  <tr> <td>cprl</td>    <td>component-position-resolution-layer (CPRL) progressive</td> </tr>
  </tbody>
</table>
</dd>

<dd>By default, LRCP progressive ordering is employed. Note that the RPCL and PCRL progressions are not valid for all possible image geometries.</dd>
<dt class="doc">nomct</dt>
<dd>Disallow the use of any multicomponent transform.</dd>
<dt class="doc">numrlvls=n</dt>
<dd>Set the number of resolution levels to n. The argument n must be an integer that is greater than or equal to one. The default value is 6.</dd>
<dt class="doc">sop</dt>
<dd>Generate SOP marker segments.</dd>
<dt class="doc">eph</dt>
<dd>Generate EPH marker segments.</dd>
<dt class="doc">lazy</dt>
<dd>Enable lazy coding mode (a.k.a. arithmetic coding bypass).</dd>
<dt class="doc">termall</dt>
<dd>Terminate all coding passes.</dd>
<dt class="doc">segsym</dt>
<dd>Use segmentation symbols.</dd>
<dt class="doc">vcausal</dt>
<dd>Use vertically stripe causal contexts.</dd>
<dt class="doc">pterm</dt>
<dd>Use predictable termination.</dd>
<dt class="doc">resetprob</dt>
<dd>Reset the probability models after each coding pass.</dd>
<dt class="doc">numgbits=n</dt>
<dd>Set the number of guard bits to n.</dd>
</dl>

</div>

<div id="linkbar">
    <span id="linkbar-west">&nbsp;</span>
    <span id="linkbar-center">
      <a href="../discourse-server">Discourse Server</a> &bull;
      <a href="http://www.imagemagick.org/MagickStudio/scripts/MagickStudio.cgi">Studio</a>
    </span>
    <span id="linkbar-east">&nbsp;</span>
  </div>
  <div class="footer">
    <span id="footer-west">&copy; 1999-2012 ImageMagick Studio LLC</span>
    <span id="footer-east"> <a href="contact.html">Contact the Wizards</a></span>
  </div>
  <div style="clear: both; margin: 0; width: 100%; "></div>
  <script type="text/javascript">
    var _gaq = _gaq || [];
    _gaq.push(['_setAccount', 'UA-17690367-1']);
    _gaq.push(['_trackPageview']);

    (function() {
      var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
      ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
      var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
    })();
  </script>
</body>
</html>
