mirror of
https://github.com/openmv/openmv.git
synced 2025-11-04 14:49:50 +08:00
Reduce IDE JPEG quality.
This commit is contained in:
parent
34ffa826dd
commit
d9c8b1535d
@ -540,11 +540,11 @@ bool jpeg_compress(image_t *src, image_t *dst, int quality, bool realloc)
|
||||
|
||||
jpeg_subsample_t jpeg_subsample;
|
||||
|
||||
if (quality > 70) {
|
||||
if (quality > 60) {
|
||||
jpeg_subsample = JPEG_SUBSAMPLE_1x1;
|
||||
} else if (quality > 50) {
|
||||
} else if (quality > 35) {
|
||||
jpeg_subsample = JPEG_SUBSAMPLE_2x1;
|
||||
} else { // <= 50
|
||||
} else { // <= 35
|
||||
jpeg_subsample = JPEG_SUBSAMPLE_2x2;
|
||||
}
|
||||
|
||||
@ -572,6 +572,9 @@ bool jpeg_compress(image_t *src, image_t *dst, int quality, bool realloc)
|
||||
}
|
||||
DCY = jpeg_processDU(&jpeg_buf, YDU, fdtbl_Y, DCY, YDC_HT, YAC_HT);
|
||||
}
|
||||
if (jpeg_buf.overflow) {
|
||||
goto jpeg_overflow;
|
||||
}
|
||||
}
|
||||
} else if (src->bpp == 2) {// TODO assuming RGB565
|
||||
switch (jpeg_subsample) {
|
||||
@ -620,6 +623,9 @@ bool jpeg_compress(image_t *src, image_t *dst, int quality, bool realloc)
|
||||
DCU = jpeg_processDU(&jpeg_buf, UDU, fdtbl_UV, DCU, UVDC_HT, UVAC_HT);
|
||||
DCV = jpeg_processDU(&jpeg_buf, VDU, fdtbl_UV, DCV, UVDC_HT, UVAC_HT);
|
||||
}
|
||||
if (jpeg_buf.overflow) {
|
||||
goto jpeg_overflow;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -674,6 +680,9 @@ bool jpeg_compress(image_t *src, image_t *dst, int quality, bool realloc)
|
||||
DCU = jpeg_processDU(&jpeg_buf, UDU, fdtbl_UV, DCU, UVDC_HT, UVAC_HT);
|
||||
DCV = jpeg_processDU(&jpeg_buf, VDU, fdtbl_UV, DCV, UVDC_HT, UVAC_HT);
|
||||
}
|
||||
if (jpeg_buf.overflow) {
|
||||
goto jpeg_overflow;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -750,6 +759,9 @@ bool jpeg_compress(image_t *src, image_t *dst, int quality, bool realloc)
|
||||
DCU = jpeg_processDU(&jpeg_buf, UDU, fdtbl_UV, DCU, UVDC_HT, UVAC_HT);
|
||||
DCV = jpeg_processDU(&jpeg_buf, VDU, fdtbl_UV, DCV, UVDC_HT, UVAC_HT);
|
||||
}
|
||||
if (jpeg_buf.overflow) {
|
||||
goto jpeg_overflow;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -771,6 +783,7 @@ bool jpeg_compress(image_t *src, image_t *dst, int quality, bool realloc)
|
||||
printf("time: %lums\n", HAL_GetTick() - start);
|
||||
#endif
|
||||
|
||||
jpeg_overflow:
|
||||
return jpeg_buf.overflow;
|
||||
}
|
||||
|
||||
|
||||
@ -170,7 +170,7 @@ void sensor_init0()
|
||||
memset(JPEG_FB(), 0, sizeof(*JPEG_FB()));
|
||||
|
||||
// Set default quality
|
||||
JPEG_FB()->quality = 50;
|
||||
JPEG_FB()->quality = 35;
|
||||
|
||||
// Set fb_enabled
|
||||
JPEG_FB()->enabled = fb_enabled;
|
||||
@ -636,7 +636,7 @@ int sensor_snapshot(image_t *image, line_filter_t line_filter_func, void *line_f
|
||||
}
|
||||
// No buffer overflow, increase quality up to max quality based on frame size
|
||||
if (overflow_count == 0 &&
|
||||
JPEG_FB()->quality < ((MAIN_FB_SIZE() > JPEG_QUALITY_THRESH) ? 50:75)) {
|
||||
JPEG_FB()->quality < ((MAIN_FB_SIZE() > JPEG_QUALITY_THRESH) ? 35:60)) {
|
||||
JPEG_FB()->quality++;
|
||||
}
|
||||
// Set FB from JPEG image
|
||||
|
||||
Loading…
Reference in New Issue
Block a user