View Issue Details

IDProjectCategoryView StatusLast Update
0000060JVT JM H.264/AVC reference softwareencoderpublic2010-04-20 16:55
ReporterKarsten Suehring Assigned To 
PrioritynoneSeverityminorReproducibilitysometimes
Status confirmedResolutionopen 
Platformany 
Product VersionJM 16.1 
Summary0000060: Tips for low memory situations
DescriptionAlexis [Edited by Karsten, updated Apr 2010]:

For large image formats the JM encoder might require a substantial amount of memory. If your system has more than 2 GB RAM make sure to use a 64-bit OS to allow programs to grow beyond the 2 GB / process memory limit on 32-bit systems.

UPDATE: It seems that the actual memory limit on 32-bit Windows is 1GB.

If you are trying to encode interlace content in particular the current JM would try to allocate memory for both frame and field representations which could be quite enormous. Things can get worse if you use too many reference frames. However, there are many ways to reduce the memory requirements of the encoder:
 
a) When encoding 8-bit content, set #define IMGTYPE to 0. This will allow the encoder to use byte instead of short for pixel data.
b) reduce the number of references you may be using
c) increase the virtual memory size on your system.
d) avoid using ChromaMCBuffer. Although this can speed up encoding, it is done at a cost in memory.
e) possibly avoid using RDPictureDecision encoding since that also requires more memory (this time for quality improvements)
 
Obviously one could make a lot of improvements in the JM in terms of memory handling/allocation. It really depends on our time though when such could be done [Note: This has been improved since the original report].

Furthermore, it is suggested to also set the following #defines to 0:

#define ENABLE_FIELD_CTX 0 //!< Enables field context types for CABAC.
#define ENABLE_HIGH444_CTX 0 //!< Enables High 4:4:4 context types for CABAC.

The above, will not only save memory, but will also speed up the code considerably if CABAC is used for entropy coding. However, field coding (picture level and macroblock level) and 444 will not be supported.
TagsNo tags attached.

Activities

There are no notes attached to this issue.

Issue History

Date Modified Username Field Change
2007-06-20 14:40 Karsten Suehring New Issue
2007-06-20 14:40 Karsten Suehring Status new => confirmed
2009-09-15 18:32 Karsten Suehring Product Version JM 12.2 => JM 16.1
2009-09-15 18:32 Karsten Suehring Description Updated
2010-04-20 16:55 Karsten Suehring Description Updated