package com.google.zxing.common; import com.google.zxing.LuminanceSource; import com.google.zxing.NotFoundException; import java.lang.reflect.Array; /* loaded from: classes.dex */ public final class HybridBinarizer extends GlobalHistogramBinarizer { private BitMatrix e; public HybridBinarizer(LuminanceSource luminanceSource) { super(luminanceSource); } private static int a(int i, int i2, int i3) { return i < i2 ? i2 : i > i3 ? i3 : i; } @Override // com.google.zxing.common.GlobalHistogramBinarizer, com.google.zxing.Binarizer public BitMatrix a() throws NotFoundException { BitMatrix bitMatrix = this.e; if (bitMatrix != null) { return bitMatrix; } LuminanceSource c = c(); int c2 = c.c(); int a = c.a(); if (c2 < 40 || a < 40) { this.e = super.a(); } else { byte[] b = c.b(); int i = c2 >> 3; if ((c2 & 7) != 0) { i++; } int i2 = i; int i3 = a >> 3; if ((a & 7) != 0) { i3++; } int i4 = i3; int[][] a2 = a(b, i2, i4, c2, a); BitMatrix bitMatrix2 = new BitMatrix(c2, a); a(b, i2, i4, c2, a, a2, bitMatrix2); this.e = bitMatrix2; } return this.e; } private static void a(byte[] bArr, int i, int i2, int i3, int i4, int[][] iArr, BitMatrix bitMatrix) { int i5 = i4 - 8; int i6 = i3 - 8; for (int i7 = 0; i7 < i2; i7++) { int i8 = i7 << 3; int i9 = i8 > i5 ? i5 : i8; int a = a(i7, 2, i2 - 3); for (int i10 = 0; i10 < i; i10++) { int i11 = i10 << 3; int i12 = i11 > i6 ? i6 : i11; int a2 = a(i10, 2, i - 3); int i13 = 0; for (int i14 = -2; i14 <= 2; i14++) { int[] iArr2 = iArr[a + i14]; i13 += iArr2[a2 - 2] + iArr2[a2 - 1] + iArr2[a2] + iArr2[a2 + 1] + iArr2[a2 + 2]; } a(bArr, i12, i9, i13 / 25, i3, bitMatrix); } } } private static void a(byte[] bArr, int i, int i2, int i3, int i4, BitMatrix bitMatrix) { int i5 = (i2 * i4) + i; int i6 = 0; while (i6 < 8) { for (int i7 = 0; i7 < 8; i7++) { if ((bArr[i5 + i7] & 255) <= i3) { bitMatrix.c(i + i7, i2 + i6); } } i6++; i5 += i4; } } private static int[][] a(byte[] bArr, int i, int i2, int i3, int i4) { int i5 = 8; int i6 = i4 - 8; int i7 = i3 - 8; int[][] iArr = (int[][]) Array.newInstance((Class) int.class, i2, i); for (int i8 = 0; i8 < i2; i8++) { int i9 = i8 << 3; if (i9 > i6) { i9 = i6; } for (int i10 = 0; i10 < i; i10++) { int i11 = i10 << 3; if (i11 > i7) { i11 = i7; } int i12 = (i9 * i3) + i11; int i13 = 0; int i14 = 0; int i15 = 0; int i16 = 255; while (i13 < i5) { int i17 = i14; int i18 = 0; while (i18 < i5) { int i19 = bArr[i12 + i18] & 255; i17 += i19; if (i19 < i16) { i16 = i19; } if (i19 > i15) { i15 = i19; } i18++; i5 = 8; } if (i15 - i16 > 24) { i13++; i12 += i3; i5 = 8; while (i13 < 8) { for (int i20 = 0; i20 < 8; i20++) { i17 += bArr[i12 + i20] & 255; } i13++; i12 += i3; } } else { i5 = 8; } i14 = i17; i13++; i12 += i3; } int i21 = i14 >> 6; if (i15 - i16 <= 24) { i21 = i16 / 2; if (i8 > 0 && i10 > 0) { int i22 = i8 - 1; int i23 = i10 - 1; int i24 = ((iArr[i22][i10] + (iArr[i8][i23] * 2)) + iArr[i22][i23]) / 4; if (i16 < i24) { i21 = i24; } } } iArr[i8][i10] = i21; } } return iArr; } }