Java Doc for StdEntropyCoder.java in  » 6.0-JDK-Modules » Java-Advanced-Imaging » jj2000 » j2k » entropy » encoder » Java Source Code / Java DocumentationJava Source Code and Java Documentation

Java Source Code / Java Documentation
1. 6.0 JDK Core
2. 6.0 JDK Modules
3. 6.0 JDK Modules com.sun
4. 6.0 JDK Modules com.sun.java
5. 6.0 JDK Modules sun
6. 6.0 JDK Platform
7. Ajax
8. Apache Harmony Java SE
9. Aspect oriented
10. Authentication Authorization
11. Blogger System
12. Build
13. Byte Code
14. Cache
15. Chart
16. Chat
17. Code Analyzer
18. Collaboration
19. Content Management System
20. Database Client
21. Database DBMS
22. Database JDBC Connection Pool
23. Database ORM
24. Development
25. EJB Server geronimo
26. EJB Server GlassFish
27. EJB Server JBoss 4.2.1
28. EJB Server resin 3.1.5
29. ERP CRM Financial
30. ESB
31. Forum
32. GIS
33. Graphic Library
34. Groupware
35. HTML Parser
36. IDE
37. IDE Eclipse
38. IDE Netbeans
39. Installer
40. Internationalization Localization
41. Inversion of Control
42. Issue Tracking
43. J2EE
44. JBoss
45. JMS
46. JMX
47. Library
48. Mail Clients
49. Net
50. Parser
51. PDF
52. Portal
53. Profiler
54. Project Management
55. Report
56. RSS RDF
57. Rule Engine
58. Science
59. Scripting
60. Search Engine
61. Security
62. Sevlet Container
63. Source Control
64. Swing Library
65. Template Engine
66. Test Coverage
67. Testing
68. UML
69. Web Crawler
70. Web Framework
71. Web Mail
72. Web Server
73. Web Services
74. Web Services apache cxf 2.0.1
75. Web Services AXIS2
76. Wiki Engine
77. Workflow Engines
78. XML
79. XML UI
Java
Java Tutorial
Java Open Source
Jar File Download
Java Articles
Java Products
Java by API
Photoshop Tutorials
Maya Tutorials
Flash Tutorials
3ds-Max Tutorials
Illustrator Tutorials
GIMP Tutorials
C# / C Sharp
C# / CSharp Tutorial
C# / CSharp Open Source
ASP.Net
ASP.NET Tutorial
JavaScript DHTML
JavaScript Tutorial
JavaScript Reference
HTML / CSS
HTML CSS Reference
C / ANSI-C
C Tutorial
C++
C++ Tutorial
Ruby
PHP
Python
Python Tutorial
Python Open Source
SQL Server / T-SQL
SQL Server / T-SQL Tutorial
Oracle PL / SQL
Oracle PL/SQL Tutorial
PostgreSQL
SQL / MySQL
MySQL Tutorial
VB.Net
VB.Net Tutorial
Flash / Flex / ActionScript
VBA / Excel / Access / Word
XML
XML Tutorial
Microsoft Office PowerPoint 2007 Tutorial
Microsoft Office Excel 2007 Tutorial
Microsoft Office Word 2007 Tutorial
Java Source Code / Java Documentation » 6.0 JDK Modules » Java Advanced Imaging » jj2000.j2k.entropy.encoder 
Source Cross Reference  Class Diagram Java Document (Java Doc) 


java.lang.Object
   jj2000.j2k.image.ImgDataAdapter
      jj2000.j2k.entropy.encoder.EntropyCoder
         jj2000.j2k.entropy.encoder.StdEntropyCoder

StdEntropyCoder
public class StdEntropyCoder extends EntropyCoder implements StdEntropyCoderOptions(Code)
This class implements the JPEG 2000 entropy coder, which codes stripes in code-blocks. This entropy coding engine can function in a single-threaded mode where one code-block is encoded at a time, or in a multi-threaded mode where multiple code-blocks are entropy coded in parallel. The interface presented by this class is the same in both modes.

The number of threads used by this entropy coder is specified by the "jj2000.j2k.entropy.encoder.StdEntropyCoder.nthreads" Java system property. If set to "0" the single threaded implementation is used. If set to 'n' ('n' larger than 0) then 'n' extra threads are started by this class which are used to encode the code-blocks in parallel (i.e. ideally 'n' code-blocks will be encoded in parallel at a time). On multiprocessor machines under a "native threads" Java Virtual Machine implementation each one of these threads can run on a separate processor speeding up the encoding time. By default the single-threaded implementation is used. The multi-threaded implementation currently assumes that the vast majority of consecutive calls to 'getNextCodeBlock()' will be done on the same component. If this is not the case, the speed-up that can be expected on multiprocessor machines might be significantly decreased.

The code-blocks are rectangular, with dimensions which must be powers of 2. Each dimension has to be no smaller than 4 and no larger than 256. The product of the two dimensions (i.e. area of the code-block) may not exceed 4096.

Context 0 of the MQ-coder is used as the uniform one (uniform, non-adaptive probability distribution). Context 1 is used for RLC coding. Contexts 2-10 are used for zero-coding (ZC), contexts 11-15 are used for sign-coding (SC) and contexts 16-18 are used for magnitude-refinement (MR).

This implementation buffers the symbols and calls the MQ coder only once per stripe and per coding pass, to reduce the method call overhead.

This implementation also provides some timing features. They can be enabled by setting the 'DO_TIMING' constant of this class to true and recompiling. The timing uses the 'System.currentTimeMillis()' Java API call, which returns wall clock time, not the actual CPU time used. The timing results will be printed on the message output. Since the times reported are wall clock times and not CPU usage times they can not be added to find the total used time (i.e. some time might be counted in several places). When timing is disabled ('DO_TIMING' is false) there is no penalty if the compiler performs some basic optimizations. Even if not the penalty should be negligeable.

The source module must implement the CBlkQuantDataSrcEnc interface and code-block's data is received in a CBlkWTData instance. This modules sends code-block's information in a CBlkRateDistStats instance.
See Also:   CBlkQuantDataSrcEnc
See Also:   CBlkWTData
See Also:   CBlkRateDistStats



Field Summary
final public static  StringDEF_THREADS_NUM
    
final public static  intTHREADS_PRIORITY_INC
     The increase in priority for the compressor threads, currently 3.
final public static  StringTHREADS_PROP_NAME
    
public  StringSpecbms
    
public  StringSpeccss
    
public  StringSpeclcs
    
public  StringSpecmqrs
    
public  StringSpecrts
    
public  StringSpecsss
    
public  StringSpectts
    

Constructor Summary
public  StdEntropyCoder(CBlkQuantDataSrcEnc src, CBlkSizeSpec cblks, PrecinctSizeSpec pss, StringSpec bms, StringSpec mqrs, StringSpec rts, StringSpec css, StringSpec sss, StringSpec lcs, StringSpec tts)
     Instantiates a new entropy coder engine, with the specified source of data, nominal block width and height.

Method Summary
public  voidfinalize()
     Prints the timing information, if collected, and calls 'finalize' on the super class.
public  intgetCBlkHeight(int t, int c)
     Returns the code-block height for the specified tile and component.
public  intgetCBlkWidth(int t, int c)
     Returns the code-block width for the specified tile and component.
public  CBlkRateDistStatsgetNextCodeBlock(int c, CBlkRateDistStats ccb)
     Returns the next coded code-block in the current tile for the specified component, as a copy (see below).
public  intgetPPX(int t, int c, int rl)
     Returns the precinct partition width for the specified component, tile and resolution level.
public  intgetPPY(int t, int c, int rl)
     Returns the precinct partition height for the specified component, tile and resolution level.
public  voidinitTileComp(int nt, int nc)
     Load options, length calculation type and termination type for each tile-component.
public  voidnextTile()
     Advances to the next tile, in standard scan-line order (by rows then columns).
public  booleanprecinctPartitionUsed(int c, int t)
     Returns true if precinct partition is used for the specified component and tile, returns false otherwise.
public  voidsetTile(int x, int y)
     Changes the current tile, given the new indexes.

Field Detail
DEF_THREADS_NUM
final public static String DEF_THREADS_NUM(Code)
The default value for the property in THREADS_PROP_NAME: 0



THREADS_PRIORITY_INC
final public static int THREADS_PRIORITY_INC(Code)
The increase in priority for the compressor threads, currently 3. The compressor threads will have a priority of THREADS_PRIORITY_INC more than the priority of the thread calling this class constructor. Used only in the multi-threaded implementation.



THREADS_PROP_NAME
final public static String THREADS_PROP_NAME(Code)
The Java system property name for the number of threads to use: jj2000.j2k.entropy.encoder.StdEntropyCoder.nthreads



bms
public StringSpec bms(Code)
By-pass mode specifications



css
public StringSpec css(Code)
Causal stripes specifications



lcs
public StringSpec lcs(Code)
The length calculation specifications



mqrs
public StringSpec mqrs(Code)
MQ reset specifications



rts
public StringSpec rts(Code)
Regular termination specifications



sss
public StringSpec sss(Code)
Error resilience segment symbol use specifications



tts
public StringSpec tts(Code)
The termination type specifications




Constructor Detail
StdEntropyCoder
public StdEntropyCoder(CBlkQuantDataSrcEnc src, CBlkSizeSpec cblks, PrecinctSizeSpec pss, StringSpec bms, StringSpec mqrs, StringSpec rts, StringSpec css, StringSpec sss, StringSpec lcs, StringSpec tts)(Code)
Instantiates a new entropy coder engine, with the specified source of data, nominal block width and height.

If the 'OPT_PRED_TERM' option is given then the MQ termination must be 'TERM_PRED_ER' or an exception is thrown.


Parameters:
  src - The source of data
Parameters:
  cbks - Code-block size specifications
Parameters:
  pss - Precinct partition specifications
Parameters:
  bms - By-pass mode specifications
Parameters:
  mqrs - MQ-reset specifications
Parameters:
  rts - Regular termination specifications
Parameters:
  css - Causal stripes specifications
Parameters:
  sss - Error resolution segment symbol use specifications
Parameters:
  lcs - Length computation specifications
Parameters:
  tts - Termination type specifications
See Also:   MQCoder




Method Detail
finalize
public void finalize() throws Throwable(Code)
Prints the timing information, if collected, and calls 'finalize' on the super class.



getCBlkHeight
public int getCBlkHeight(int t, int c)(Code)
Returns the code-block height for the specified tile and component.
Parameters:
  t - The tile index
Parameters:
  c - The component index The code-block height for the specified tile and component.



getCBlkWidth
public int getCBlkWidth(int t, int c)(Code)
Returns the code-block width for the specified tile and component.
Parameters:
  t - The tile index
Parameters:
  c - the component index The code-block width for the specified tile and component



getNextCodeBlock
public CBlkRateDistStats getNextCodeBlock(int c, CBlkRateDistStats ccb)(Code)
Returns the next coded code-block in the current tile for the specified component, as a copy (see below). The order in which code-blocks are returned is not specified. However each code-block is returned only once and all code-blocks will be returned if the method is called 'N' times, where 'N' is the number of code-blocks in the tile. After all the code-blocks have been returned for the current tile calls to this method will return 'null'.

When changing the current tile (through 'setTile()' or 'nextTile()') this method will always return the first code-block, as if this method was never called before for the new current tile.

The data returned by this method is always a copy of the internal data of this object, if any, and it can be modified "in place" without any problems after being returned.
Parameters:
  c - The component for which to return the next code-block.
Parameters:
  ccb - If non-null this object might be used in returning the codedcode-block in this or any subsequent call to this method. If null a newone is created and returned. If the 'data' array of 'cbb' is not nullit may be reused to return the compressed data. The next coded code-block in the current tile for component'n', or null if all code-blocks for the current tile have beenreturned.
See Also:   CBlkRateDistStats




getPPX
public int getPPX(int t, int c, int rl)(Code)
Returns the precinct partition width for the specified component, tile and resolution level.
Parameters:
  t - the tile index
Parameters:
  c - the component
Parameters:
  rl - the resolution level The precinct partition width for the specifiedcomponent, tile and resolution level



getPPY
public int getPPY(int t, int c, int rl)(Code)
Returns the precinct partition height for the specified component, tile and resolution level.
Parameters:
  t - the tile index
Parameters:
  c - the component
Parameters:
  rl - the resolution level The precinct partition height for the specifiedcomponent, tile and resolution level



initTileComp
public void initTileComp(int nt, int nc)(Code)
Load options, length calculation type and termination type for each tile-component.
Parameters:
  nt - The number of tiles
Parameters:
  nc - The number of components



nextTile
public void nextTile()(Code)
Advances to the next tile, in standard scan-line order (by rows then columns). An NoNextElementException is thrown if the current tile is the last one (i.e. there is no next tile).

This default implementation just advances to the next tile in the source.




precinctPartitionUsed
public boolean precinctPartitionUsed(int c, int t)(Code)
Returns true if precinct partition is used for the specified component and tile, returns false otherwise.
Parameters:
  c - The component
Parameters:
  t - The tile True if precinct partition is used for the specifiedcomponent and tile, returns false otherwise.



setTile
public void setTile(int x, int y)(Code)
Changes the current tile, given the new indexes. An IllegalArgumentException is thrown if the indexes do not correspond to a valid tile.

This default implementation just changes the tile in the source.
Parameters:
  x - The horizontal index of the tile.
Parameters:
  y - The vertical index of the new tile.




Fields inherited from jj2000.j2k.entropy.encoder.EntropyCoder
final public static char OPT_PREFIX(Code)(Java Doc)
protected CBlkQuantDataSrcEnc src(Code)(Java Doc)

Methods inherited from jj2000.j2k.entropy.encoder.EntropyCoder
public static EntropyCoder createInstance(CBlkQuantDataSrcEnc src, J2KImageWriteParamJava wp, CBlkSizeSpec cblks, PrecinctSizeSpec pss, StringSpec bms, StringSpec mqrs, StringSpec rts, StringSpec css, StringSpec sss, StringSpec lcs, StringSpec tts)(Code)(Java Doc)
public SubbandAn getAnSubbandTree(int t, int c)(Code)(Java Doc)
abstract public int getCBlkHeight(int t, int c)(Code)(Java Doc)
abstract public int getCBlkWidth(int t, int c)(Code)(Java Doc)
public int getCbULX()(Code)(Java Doc)
public int getCbULY()(Code)(Java Doc)
public static String[][] getParameterInfo()(Code)(Java Doc)
public boolean isReversible(int t, int c)(Code)(Java Doc)

Fields inherited from jj2000.j2k.image.ImgDataAdapter
protected ImgData imgdatasrc(Code)(Java Doc)
protected int tIdx(Code)(Java Doc)

Methods inherited from jj2000.j2k.image.ImgDataAdapter
public int getCompImgHeight(int c)(Code)(Java Doc)
public int getCompImgWidth(int c)(Code)(Java Doc)
public int getCompSubsX(int c)(Code)(Java Doc)
public int getCompSubsY(int c)(Code)(Java Doc)
public int getCompULX(int c)(Code)(Java Doc)
public int getCompULY(int c)(Code)(Java Doc)
public int getImgHeight()(Code)(Java Doc)
public int getImgULX()(Code)(Java Doc)
public int getImgULY()(Code)(Java Doc)
public int getImgWidth()(Code)(Java Doc)
public int getNomRangeBits(int c)(Code)(Java Doc)
public int getNomTileHeight()(Code)(Java Doc)
public int getNomTileWidth()(Code)(Java Doc)
public int getNumComps()(Code)(Java Doc)
public Point getNumTiles(Point co)(Code)(Java Doc)
public int getNumTiles()(Code)(Java Doc)
public Point getTile(Point co)(Code)(Java Doc)
public int getTileCompHeight(int t, int c)(Code)(Java Doc)
public int getTileCompWidth(int t, int c)(Code)(Java Doc)
public int getTileHeight()(Code)(Java Doc)
public int getTileIdx()(Code)(Java Doc)
public int getTilePartULX()(Code)(Java Doc)
public int getTilePartULY()(Code)(Java Doc)
public int getTileWidth()(Code)(Java Doc)
public void nextTile()(Code)(Java Doc)
public void setTile(int x, int y)(Code)(Java Doc)

Methods inherited from java.lang.Object
native protected Object clone() throws CloneNotSupportedException(Code)(Java Doc)
public boolean equals(Object obj)(Code)(Java Doc)
protected void finalize() throws Throwable(Code)(Java Doc)
final native public Class getClass()(Code)(Java Doc)
native public int hashCode()(Code)(Java Doc)
final native public void notify()(Code)(Java Doc)
final native public void notifyAll()(Code)(Java Doc)
public String toString()(Code)(Java Doc)
final native public void wait(long timeout) throws InterruptedException(Code)(Java Doc)
final public void wait(long timeout, int nanos) throws InterruptedException(Code)(Java Doc)
final public void wait() throws InterruptedException(Code)(Java Doc)

www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.