Commit Graph

15 Commits

Author SHA1 Message Date
Timmy Welch
aa1fe89e96 Performance
Reduce allocations by re-using uint8 slices where possible
Use github.com/disintegration/imaging for resizing
Add a module option to skip RGB conversion for YCbCr images
2024-08-04 17:21:58 -07:00
Timmy Welch
1ca06a1968 Make compliant with python imagehash 2024-04-05 17:29:30 -06:00
Wu Tingfeng
d68e89bd8f
Increase test coverage to 96.6% (#61)
* gitignore *.html for test coverage reports

* fix typos

* Increase hashcompute.go test coverage to 100 percent

* Add new Go versions. Upgrade GitHub Actions.

* Add tests for missing ext hashes

* Add test for hashing non-hexadecimal string

* Add tests for loading empty bytes buffer

* Run go fmt

* Fix comments

* Fix comments

* Fix spelling

* fix actions versions

* Upgrade to actions/setup-go@v4

* Add minimum Go version for go.mod
2023-05-03 23:52:14 +09:00
Dong-hee Na
6392b0bac9
all: Add more test (#30)
* hashcompute_test: Add benchmark

* all: Add more test
2019-03-19 23:10:52 +09:00
Dong-hee Na
14aa1e136f
dct: Improve DCT1D to O(nlogn) algorithm (#29)
* hashcompute_test: Add benchmark

* dct: Improve DCT1D to O(nlogn) algorithm

AS-IS:
BenchmarkPerceptionHash-8  500  2893930 ns/op  456698 B/op  4455 allocs/op

TO-BE:
BenchmarkPerceptionHash-8  2000  890306 ns/op  456382 B/op  4455 allocs/op

reference: DCT type II, unscaled. Algorithm by Byeong Gi Lee, 1984.
2019-03-19 13:52:44 +09:00
Dong-hee Na
3e058be50d
hashcompute: Update Extend API (#28)
* hashcompute: Update Extend API

- AverageHashExtend -> ExtAverageHash
- PerceptionHashExtend -> ExtPerceptionHash
- DiffrenceHashExtend -> ExtDiffrenceHash

* imagehash: Update load api
2019-03-18 23:53:09 +09:00
Dong-hee Na
161b6f5676
hashcompute: Redesign XXXHashExtend API interface (#27) 2019-03-18 21:40:16 +09:00
Dong-hee Na
20cafe6017
hashcompute: Fix 64bits unaligned size case (#23) 2019-03-16 23:15:32 +09:00
Dong-hee Na
5f56e8609c
DifferenceHashExtend: Implement DifferenceHashExtend (#21) 2019-03-16 00:47:57 +09:00
Dong-hee Na
b535580cae
AverageHashExtend: Implement AverageHashExtend and fix bugs (#20) 2019-03-16 00:26:38 +09:00
Alex
c41a59a872 add PerceptionHashExtend function (#18)
goimagehash: Implement PerceptionHashExtend
2019-02-08 18:02:25 +09:00
Dong-hee Na
6995fa9b0c goimagehash: Add test 2018-05-10 11:54:51 +09:00
Dong-hee Na
1903317145 goimagehash: Fix quickselect algorithm to pick median value. 2018-05-08 13:33:43 +09:00
Dominik Honnef
ad2b6ded3b Use bits.OnesCount64 when available
Benchmark on i7-2600k, which has the POPCNT instruction:

name                 old time/op  new time/op  delta
DistanceIdentical-8  5.08ns ± 0%  1.01ns ± 1%  -80.07%  (p=0.008 n=5+5)
DistanceDifferent-8  81.5ns ± 2%   1.0ns ± 0%  -98.76%  (p=0.016 n=5+4)

Benchmark on Cavium Octeon, a MIPS64 platform with no dedicated
instruction:

name                 old time/op  new time/op  delta
DistanceIdentical-2   120ns ± 6%   144ns ± 5%  +19.93%  (p=0.008 n=5+5)
DistanceDifferent-2   656ns ± 4%   144ns ± 4%  -78.09%  (p=0.008 n=5+5)
2018-05-02 23:52:38 +09:00
Dong-hee Na
7aba8954cd [goimagehash] First implement. 2017-07-31 22:47:14 +09:00