Releases: aastopher/imgdd
Rust imgdd 0.1.3
-
Code Cleanup:
Simplified and refactored parts of the codebase to improve readability and maintainability. -
Documentation Alignment:
Updated and aligned documentation across the repository to ensure consistency and clarity. -
Minor Fixes for imgddcore:
Addressed several minor issues within imgddcore, for improved stability and performance. -
GitHub Actions Refinements:
Enhanced our CI/CD workflows by refining GitHub Actions. These improvements include better artifact handling, more robust version validation, and streamlined documentation deployment.
Python imgdd 0.1.5
-
Code Cleanup:
Simplified and refactored parts of the codebase to improve readability and maintainability. -
Documentation Alignment:
Updated and aligned documentation across the repository to ensure consistency and clarity. -
Minor Fixes for imgddcore:
Addressed several minor issues within imgddcore, for improved stability and performance. -
GitHub Actions Refinements:
Enhanced our CI/CD workflows by refining GitHub Actions. These improvements include better artifact handling, more robust version validation, and streamlined documentation deployment.
rs-v0.1.2
What's Changed
- fix doc publish action by @aastopher in #23
- patch docs by @aastopher in #24
- verify align hash output with imagehash by @aastopher in #25
- verify align hash output with imagehash by @aastopher in #26
Full Changelog: py-v0.1.3...rs-v0.1.2
aHash
- Reversed Bit Order:
Now uses1 << (63 - i)so that the most significant bit corresponds to the first pixel, matching imagehash’s convention.
mHash
- Reversed Bit Order:
Bit order is reversed (using1 << (63 - i)) to align with other hash types. - Optimized Median Calculation:
Uses Rust’sselect_nth_unstableto compute the median in O(n) time instead of a full sort.
dHash
- Optimized Loop Structure:
Retrieves the first pixel outside the inner loop (iterating from x = 1 to 8) to avoid redundant calls.
pHash
- Refined DCT Processing:
Applies the DCT row‑wise and then column‑wise in place using a fixed‑size temporary array. - DC Exclusion in Median Calculation:
Extracts the top‑left 8×8 DCT coefficients and excludes the DC component when computing the median. - O(n) Median Computation:
Usesselect_nth_unstable_byto find median in O(n). - Reversed Bit Order:
Final hash bits are reversed (using1 << (63 - i)) for consistency with the other algorithms. - Result:
Produces a pHash that is consistent with imagehash.
wHash (Wavelet Hash)
- Reversed Bit Order:
Now uses1 << (63 - i)so that the most significant bit corresponds to the first pixel, matching imagehash’s convention. - Haar Transform via dwt Crate:
Implement Haar transform functions from thedwtcrate. - Zeroing DC Coefficient:
Immediately zero out the DC coefficient after forward transform. - O(n) Median Calculation:
Clones transformed pixel vector and usesselect_nth_unstable_byto find median in O(n). - Hash Generation:
Iterates over the reconstructed coefficients from the inverse Haar transform, setting bits based on the median, to conform to imagehash’s output. - Result:
Produces a wHash that is consistent with imagehash.
Each change was made to improve performance, and ensure consistent bit ordering across all hash types, and simplify the implementations and align hash output with imagehash for consistency.
py-v0.1.4
What's Changed
- fix doc publish action by @aastopher in #23
- patch docs by @aastopher in #24
- verify align hash output with imagehash by @aastopher in #25
- verify align hash output with imagehash by @aastopher in #26
Full Changelog: py-v0.1.3...py-v0.1.4
aHash
- Reversed Bit Order:
Now uses1 << (63 - i)so that the most significant bit corresponds to the first pixel, matching imagehash’s convention.
mHash
- Reversed Bit Order:
Bit order is reversed (using1 << (63 - i)) to align with other hash types. - Optimized Median Calculation:
Uses Rust’sselect_nth_unstableto compute the median in O(n) time instead of a full sort.
dHash
- Optimized Loop Structure:
Retrieves the first pixel outside the inner loop (iterating from x = 1 to 8) to avoid redundant calls.
pHash
- Refined DCT Processing:
Applies the DCT row‑wise and then column‑wise in place using a fixed‑size temporary array. - DC Exclusion in Median Calculation:
Extracts the top‑left 8×8 DCT coefficients and excludes the DC component when computing the median. - O(n) Median Computation:
Usesselect_nth_unstable_byto find median in O(n). - Reversed Bit Order:
Final hash bits are reversed (using1 << (63 - i)) for consistency with the other algorithms. - Result:
Produces a pHash that is consistent with imagehash.
wHash (Wavelet Hash)
- Reversed Bit Order:
Now uses1 << (63 - i)so that the most significant bit corresponds to the first pixel, matching imagehash’s convention. - Haar Transform via dwt Crate:
Implement Haar transform functions from thedwtcrate. - Zeroing DC Coefficient:
Immediately zero out the DC coefficient after forward transform. - O(n) Median Calculation:
Clones transformed pixel vector and usesselect_nth_unstable_byto find median in O(n). - Hash Generation:
Iterates over the reconstructed coefficients from the inverse Haar transform, setting bits based on the median, to conform to imagehash’s output. - Result:
Produces a wHash that is consistent with imagehash.
Each change was made to improve performance, and ensure consistent bit ordering across all hash types, and simplify the implementations and align hash output with imagehash for consistency.
init imgddpy
init imgddpy
meta detail alignment
release updated docs and quick meta detail alignment
Full Changelog: rs-v0.1.0...rs-v0.1.1
init imgdd
initial release of rust imgdd
What's Changed
- Feature/python api by @aastopher in #2
- init split crates + add rust interface by @aastopher in #7
Full Changelog: https://github.com/aastopher/imgdd/commits/rs-v0.1.0
bad release
bad release
init imgdd python
init imgdd python
Full Changelog: rs-v0.1.1...py-v0.1.0