Skip to the content.

Optimize Performance

This guide covers techniques to improve Quagga2’s barcode scanning performance.

Overview

Performance optimization in Quagga2 involves balancing accuracy against speed. The key areas to optimize are:

Input Resolution

Using inputStream.size

Reducing the processing resolution is the most effective way to improve performance:

Quagga.init({
  inputStream: {
    size: 640  // Process at 640px max dimension instead of full resolution
  }
});

Recommended values:

Camera Constraints

Request only the resolution you need:

inputStream: {
  constraints: {
    width: { ideal: 1280 },
    height: { ideal: 720 }
  }
}

Locator Configuration

Half Sampling

Keep halfSample: true (default) for faster localization:

locator: {
  halfSample: true  // Processes at half resolution
}

Patch Size

Larger patch sizes are faster but may miss small barcodes:

locator: {
  patchSize: "large"  // Options: x-small, small, medium, large, x-large
}

Reader Selection

Only enable the barcode formats you need:

decoder: {
  readers: ["code_128_reader"]  // Don't enable all readers
}

Processing Frequency

Limit scan rate to reduce CPU usage:

Quagga.init({
  frequency: 10  // Max 10 scans per second
});

Disable Localization

If barcode position is fixed, disable localization entirely:

Quagga.init({
  locate: false,
  inputStream: {
    area: {
      top: "25%",
      right: "25%",
      bottom: "25%",
      left: "25%"
    }
  }
});

← Back to How-To Guides