Doc: "MCU block" = "iMCU" or "MCU"

The JPEG-1 spec never uses the term "MCU block".  That term is rarely
used in other literature to describe the equivalent of an MCU in an
interleaved JPEG image, but the libjpeg documentation uses "iMCU" to
describe the same thing.  "iMCU" is a better term, since the equivalent
of an interleaved MCU can contain multiple DCT blocks (or samples in
lossless mode) that are only grouped together if the image is
interleaved.

In the case of restart markers, "MCU block" was used in the libjpeg
documentation instead of "MCU", but "MCU" is more accurate and less
confusing.  (The restart interval is literally in MCUs, where one MCU
is one data unit in a non-interleaved JPEG image and multiple data units
in a multi-component interleaved JPEG image.)

In the case of 9b704f96b2, the issue was
actually with progressive JPEG images exactly two DCT blocks wide, not
two MCU blocks wide.

This commit also defines "MCU" and "MCU row" in the description of the
various restart marker options/parameters.  Although an MCU row is
technically always a row of samples in lossless mode, "sample row" was
confusing, since it is used in other places to describe a row of samples
for a single component (whereas an MCU row in a typical lossless JPEG
image consists of a row of interleaved samples for all components.)
This commit is contained in:
DRC
2024-08-30 10:50:13 -04:00
parent 5cf7960678
commit 8456d2b98c
23 changed files with 323 additions and 218 deletions

View File

@@ -1150,15 +1150,14 @@ boolean optimize_coding
unsigned int restart_interval
int restart_in_rows
To emit restart markers in the JPEG file, set one of these nonzero.
Set restart_interval to specify the exact interval in MCU blocks
(samples in lossless mode). Set restart_in_rows to specify the
interval in MCU rows. (If restart_in_rows is not 0, then
restart_interval is set after the image width in MCUs is computed.)
Defaults are zero (no restarts). One restart marker per MCU row is
often a good choice. NOTE: the overhead of restart markers is higher
in grayscale JPEG files than in color files, and MUCH higher in
progressive JPEGs. If you use restarts, you may want to use larger
intervals in those cases.
Set restart_interval to specify the exact interval in MCUs. Set
restart_in_rows to specify the interval in MCU rows. (If
restart_in_rows is not 0, then restart_interval is set after the image
width in MCUs is computed.) Defaults are zero (no restarts). One
restart marker per MCU row is often a good choice. NOTE: the overhead
of restart markers is higher in grayscale JPEG files than in color
files, and MUCH higher in progressive JPEGs. If you use restarts, you
may want to use larger intervals in those cases.
const jpeg_scan_info *scan_info
int num_scans