Compressão JPEG200

A compressão de imagens para o formato JPEG 2000 (.jp2) foi introduzida com o objetivo de melhorar a qualidade visual das imagens enviadas para validação de vivacidade. Comparado ao JPEG tradicional, o JPEG 2000 oferece uma compressão mais eficiente, resultando em imagens mais claras com menos perda de qualidade.

Visão Geral

  • Um novo método de configuração chamado setImageCompressionFormat foi introduzido no SDK

  • O passiveResult resultante é limitado a um tamanho máximo de 180 KB;

  • Esta configuração afeta apenas a imagem enviada em passiveResult; as propriedades originalPhoto e croppedPhoto permanecem no formato JPEG para manter a compatibilidade com versões anteriores.

Aspecto
JPEG
JPEG2000

Parâmetro de compressão

compressionQuality (1 a 0 no iOS, 100 a 0 no Android)

compressionFactor (>= 1)

Direção de compressão

Quanto menor a qualidade da compressão, maior será a compressão.

Quanto maior o fator de compressão, maior a compressão.

Estratégia inicial

Começa com 1.0 (iOS) / 100 (Android)

Começa com 10

Incremento por iteração

-0.02 (iOS) / -2 (Android)

+0.5 (iOS) / +1 (Android)

Critério de parada

passiveResult ≤ 180 KB ou até atingir um limite mínimo de qualidade de compressão de 0.5 (iOS) / 50 (Android).

passiveResult <= 180 KB ou até atingir um limite máximo de 20 no fator de compressão

No formato JPEG 2000, o fator de compressão começa em 10, valor escolhido porque requer menos iterações para atingir o limite de 180 KB no passiveResult. Se o tamanho do alvo for diferente, recomenda-se ajustar esse valor inicial para tornar a compressão mais eficiente.

Exemplos de Uso

iOS (Swift):

let builder = BCCFaceBuilder(self, delegate: self)

builder
  .addPassiveLiveness
  .setImageCompressionFormat(.jpeg2000) // or .jpeg (default)
  .initializeCapture()

Android (Kotlin):

val builder = BCCFaceBuilder(context, delegate)

builder
  .addPassiveLiveness
  .setImageCompressionFormat(ImageCompressionFormat.JPEG2000) // or .JPEG (default)
  .initializeCapture()

A configuração setImageCompressionFormat está disponível apenas para Liveness Passivo. Não se aplica a outros tipos de captura.

Atualizado

Isto foi útil?