1// Copyright 2014 PDFium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6
7#ifndef _BC_GLOBALHISTOGRAMBINARIZER_H_
8#define _BC_GLOBALHISTOGRAMBINARIZER_H_
9class CBC_CommonBinarizer;
10class CBC_CommonBitArray;
11class CBC_CommonBitMatrix;
12class CBC_LuminanceSource;
13class CBC_GlobalHistogramBinarizer;
14class CBC_GlobalHistogramBinarizer : public CBC_Binarizer {
15 public:
16  CBC_GlobalHistogramBinarizer(CBC_LuminanceSource* source);
17  virtual ~CBC_GlobalHistogramBinarizer();
18
19  void InitArrays(int32_t luminanceSize);
20  CBC_CommonBitMatrix* GetBlackMatrix(int32_t& e);
21  CBC_CommonBitArray* GetBlackRow(int32_t y,
22                                  CBC_CommonBitArray* row,
23                                  int32_t& e);
24  static int32_t EstimateBlackPoint(CFX_Int32Array& buckets, int32_t& e);
25
26 private:
27  CFX_ByteArray m_luminance;
28  CFX_Int32Array m_buckets;
29};
30#endif
31