The Independent JPEG Group's JPEG software v5

This commit is contained in:
Thomas G. Lane
1994-09-24 00:00:00 +00:00
committed by DRC
parent cc7150e281
commit 36a4ccccd3
141 changed files with 30726 additions and 17773 deletions

View File

@@ -1,7 +1,7 @@
/*
* jutils.c
*
* Copyright (C) 1991, 1992, Thomas G. Lane.
* Copyright (C) 1991-1994, Thomas G. Lane.
* This file is part of the Independent JPEG Group's software.
* For conditions of distribution and use, see the accompanying README file.
*
@@ -11,14 +11,30 @@
* a surrounding application.
*/
#define JPEG_INTERNALS
#include "jinclude.h"
#include "jpeglib.h"
/*
* Arithmetic utilities
*/
GLOBAL long
jdiv_round_up (long a, long b)
/* Compute a/b rounded up to next integer, ie, ceil(a/b) */
/* Assumes a >= 0, b > 0 */
{
return (a + b - 1L) / b;
}
GLOBAL long
jround_up (long a, long b)
/* Compute a rounded up to next multiple of b; a >= 0, b > 0 */
/* Compute a rounded up to next multiple of b, ie, ceil(a/b)*b */
/* Assumes a >= 0, b > 0 */
{
a += b-1;
a += b - 1L;
return a - (a % b);
}
@@ -46,10 +62,10 @@ jround_up (long a, long b)
GLOBAL void
jcopy_sample_rows (JSAMPARRAY input_array, int source_row,
JSAMPARRAY output_array, int dest_row,
int num_rows, long num_cols)
int num_rows, JDIMENSION num_cols)
/* Copy some rows of samples from one place to another.
* num_rows rows are copied from input_array[source_row++]
* to output_array[dest_row++]; these areas should not overlap.
* to output_array[dest_row++]; these areas may overlap for duplication.
* The source and destination arrays must be at least as wide as num_cols.
*/
{
@@ -57,7 +73,7 @@ jcopy_sample_rows (JSAMPARRAY input_array, int source_row,
#ifdef FMEMCOPY
register size_t count = (size_t) (num_cols * SIZEOF(JSAMPLE));
#else
register long count;
register JDIMENSION count;
#endif
register int row;
@@ -78,7 +94,8 @@ jcopy_sample_rows (JSAMPARRAY input_array, int source_row,
GLOBAL void
jcopy_block_row (JBLOCKROW input_row, JBLOCKROW output_row, long num_blocks)
jcopy_block_row (JBLOCKROW input_row, JBLOCKROW output_row,
JDIMENSION num_blocks)
/* Copy a row of coefficient blocks from one place to another. */
{
#ifdef FMEMCOPY
@@ -89,7 +106,7 @@ jcopy_block_row (JBLOCKROW input_row, JBLOCKROW output_row, long num_blocks)
inptr = (JCOEFPTR) input_row;
outptr = (JCOEFPTR) output_row;
for (count = num_blocks * DCTSIZE2; count > 0; count--) {
for (count = (long) num_blocks * DCTSIZE2; count > 0; count--) {
*outptr++ = *inptr++;
}
#endif