- Use cupy to measure memory leak (#777) @bdice
- Fix wheel tests for Rocky Linux 8. (#774) @bdice
- Disable custom 2D separable filtering kernels on windows (#770) @grlee77
- chan_vese: pass all constants to
_fused_variance_kernel2
as device scalars (#764) @grlee77 - Fix "compatibility" spelling in CHANGELOG (#759) @jakirkham
- Fix error in dependencies.yaml causing incomplete pyproject.toml generation (#757) @grlee77
- Do not depends on unused libraries for libtiff (#785) @gigony
- Fix a couple of performance issues in
peak_local_max
(improve performance of blob detectors andcorner_peaks
) (#782) @grlee77 - update vendored CUDA includes to match CuPy >= 13.3 (#781) @grlee77
- Use CI workflow branch 'branch-24.10' again (#780) @jameslamb
- Add support for Python 3.12 (#773) @jameslamb
- Update rapidsai/pre-commit-hooks (#772) @KyleFromNVIDIA
- bump scikit-image upper bound (allow 0.24.x) (#769) @grlee77
- Drop Python 3.9 support (#766) @jameslamb
- Remove NumPy <2 pin (#762) @seberg
- Update pre-commit hooks (#760) @KyleFromNVIDIA
- Switch to pytest-lazy-fixtures (#756) @gigony
- Drop NumPy build dependency (#751) @jakirkham
- Use workflow branch 24.08 again (#749) @KyleFromNVIDIA
- Build and test with CUDA 12.5.1 (#747) @KyleFromNVIDIA
- Minor fixes for NumPy 2.0 compatibility (#746) @grlee77
- skip CMake 3.30.0, require CMake >=3.26.4 (#745) @jameslamb
- Use verify-alpha-spec hook (#744) @KyleFromNVIDIA
- remove .gitattributes (#740) @jameslamb
- Adopt CI/packaging codeowners (#739) @bdice
- Remove text builds of documentation (#738) @vyasr
- use rapids-build-backend (#736) @jameslamb
- The
output
argument ofcucim.skimage.filters.gaussian
has been renamed toout
. The old name is deprecated and will be removed in release 25.02 (#727) - Renamed
get_xyz_coords
function is now removed (useskimage.color.xyz_tristimulus_values
instead) (#724) - Removed deprecated
return_error
kwarg fromphase_cross_correlation
(the error is now always returned) (#724) - Removed deprecated
random_state
kwarg frommedial_axis
(it was renamed torng
previously) (#724)
- Use SciPy's KDTree instead of deprecated cKDTree (#733) @grlee77
- Binary and grayscale morphology functions have bug fixes in the case of even-sized/non-symmetric footprints (for details see upstream MR: scikit-image/scikit-image#6695) (#728)
cucim.skimage.measure.regionprops
(andregionprops_table
) support one new region property:intensity_std
(#727)cucim.skimage.segmentation.expand_labels
now supports aspacing
keyword argument to take a pixel's physical dimensions into account (#727)- binary morphology functions have a new
mode
argument that controls how values outside the image boundaries are interpreted (#728) - grayscale morphology functions have new
mode
andcval
arguments that control how boundaries are extended (#728)
- Enable FutureWarnings/DeprecationWarnings as errors (#734) @mroeschke
- Migrate to
{{ stdlib("c") }}
(#731) @hcho3 - Implement upstream changes from scikit-image 0.23 (part 2 of 2: morphology) (#728) @grlee77
- Implement upstream changes from scikit-image 0.23 (part 1 of 2) (#727) @grlee77
- Update the test criteria for test_read_random_region_cpu_memleak (#726) @gigony
- Remove code needed to support Python < 3.9 and apply ruff's pyupgrade rules (#725) @grlee77
- removal of deprecated functions/kwargs scheduled for release 24.06 (#724) @grlee77
- Enable all tests for
arm
jobs (#717) @galipremsagar - prevent path conflict (#713) @AyodeAwe
- Updated cuCIM APIs for consistency with scikit-image 0.23.2 (#727 and #728)
- Additional modules use
__init__.pyi
instead of just__init__.py
(#727) - Some grayscale tests now compare directly to
skimage
CPU outputs instead fetching previously saved values (#728) - Refactored some test cases to better use
pytest.mark.parametrize
(#728) - Bumped version pinning for scikit-image to allow 0.23.x to be installed (#728)
- Various fixes to documentation strings (consistent shape notation, etc.) (#727)
- Require
click
as a wheel dependency (#719) @jakirkham - Fix docs upload directory (#714) @raydouglass
- Fix
popd
indent inrun
(#693) @jakirkham - Re-run
ci/release/update-version.sh 24.04.00
(#690) @jakirkham
- Support CUDA 12.2 (#672) @jameslamb
- Use
conda env create --yes
instead of--force
(#716) @bdice - Add upper bound to prevent usage of NumPy 2 (#712) @bdice
- Remove hard-coding of RAPIDS version (#711) @KyleFromNVIDIA
- Switch
pytest-xdist
algorithm toworksteal
(#708) @bdice - Simplify version update script (#705) @jakirkham
- Add support for Python 3.11, require NumPy 1.23+ (#704) @jameslamb
- target branch-24.04 for GitHub Actions workflows (#702) @jameslamb
- Refactor CUDA libraries in dependencies.yaml (#699) @bdice
- Update ops-bot.yaml (#694) @AyodeAwe
- add rapids-dependency-file-generator pre-commmit hook (#682) @jameslamb
- Fix CUDA trove classifiers & update README install instructions (#695) @jakirkham
- Exclude PyTest 8 (#689) @jakirkham
- Update OpenJPEG to 2.5.0 (#685) @jakirkham
- Fix CI (pt. 2) (#680) @jakirkham
- Fix CI issues (#676) @jakirkham
- Remove update to symlink (#674) @raydouglass
- Add 3rd party license file in Conda packages (#654) @jakirkham
- Fix style issue in
docs/source/conf.py
(#648) @jakirkham
- Consolidate test requirements in
dependencies.yaml
(#683) @jakirkham - Remove usages of rapids-env-update (#673) @KyleFromNVIDIA
- refactor CUDA versions in dependencies.yaml (#671) @jameslamb
- minor updates/fixes for consistency with scikit-image 0.22 (#670) @grlee77
- Update CODEOWNERS (#669) @ajschmidt8
- remove redundant notebook (#668) @grlee77
- remove .idea folder (CLion IDE configuration) (#667) @grlee77
- Cleanup old ci and docs subfolders and related files under python/cucim (#666) @grlee77
- remove various files related to old wheel building mechanism (#665) @grlee77
- Relax
openslide
pin (#653) @jakirkham - install imagecodecs and openslide-python dependencies so additional tests will run (#634) @grlee77
- Retag wheels to be
cpXY
(#644) @jakirkham - remove leftover pyproject_.toml file (#632) @grlee77
- update version string (e.g. for CHANGELOG link) in pyproject.toml (#630) @grlee77
- fix import order in test case (#624) @grlee77
- Standardize on
rng
overseed
and fix miscellaneous deprecation warnings (#621) @grlee77 - Fix iterator-related memory issues (#620) @gigony
- carry out removals of previously deprecated functions/kwargs (#631) @grlee77
- Improve memory leak check stability in test_read_region_cpu_memleak test (#623) @gigony
- Update linting tool versions and replace isort with ruff (#622) @grlee77
- Update packages (pybind11 and catch2) and do not use nvidia-docker command (#618) @gigony
- Replace setup.py with pyproject toml (#617) @grlee77
- update linters and move their configurations from setup.cfg to pyproject.toml (#616) @grlee77
- remove versioneer (#615) @grlee77
- Update
shared-action-workflows
references (#614) @AyodeAwe - Use branch-23.12 workflows. (#613) @bdice
- cucim: Build CUDA 12.0 ARM conda packages. (#610) @bdice
- Update image names (#609) @AyodeAwe
- Use
copy-pr-bot
(#606) @ajschmidt8
- Sync cuCIM API with scikit-image 0.21 (#573) @grlee77
- The
random_state
argument of medial_axis and unsupervised_wiener is now deprecated and will be removed in the future. The new argument name,seed
, should be used instead. (#573) @grlee77 - The existing function
cucim.skimage.color.get_xyz_coords
has been renamedcucim.skimage.color.xyz_tristimulus_values
. The former function name is deprecated and will be removed in the future. (#573) @grlee77
- Remove libwebp-base upper bound. (#599) @bdice
- Fix ignore_run_exports_from. (#596) @bdice
- Add ignore_run_exports for CUDA 11 (#593) @raydouglass
- Use linalg & inline
_get_manders_overlap_coeff
(#578) @jakirkham - Fix canny and butterworth (recent CuPy and NumPy compatibility) (#574) @grlee77
- A bug was fixed in 2D shear calculations for AffineTransform. (#573) @grlee77
- A bug was fixed in the energy calculation of
cucim.skimage.segmentation.chan_vese
. This fix may result in different output from previous versions. (#573) @grlee77
- The formerly private function
_invariant_denoise
has been renameddenoise_invariant
and is now part of the publiccucim.skimage.restoration
API (#573) @grlee77 - A new
return_mapping
option was added tocucim.skimage.segmentation.join_segmentations
. This provides an additional output with a mapping between the labels in the joined segmentation and the original ones. (#573) @grlee77 - Added support for y-axis shear to the 2D AffineTransform. (#573) @grlee77
- Postponed the assessment of GPU memory for testing (#601) @gigony
- Do not use x86_64 GDS binaries for aarch64 (#590) @gigony
- remove checks for versions of scikit-image that are no longer supported (#587) @grlee77
- Allow scikit-image 0.21.0 (#580) @jakirkham
- Drop unneeded selector on
libwebp-base
(#579) @jakirkham - switch from bundled lazy loading code to the public lazy_loader package (#575) @grlee77
- Sync cuCIM API with scikit-image 0.21 (#573) @grlee77
- cuCIM: Build CUDA 12 packages (#572) @jakirkham
- use rapids-upload-docs script (#570) @AyodeAwe
- Remove documentation build scripts for Jenkins (#567) @ajschmidt8
- Fix SHA256 check failure in test suite (#564) @grlee77
- Handle space character in ./run download_testdata (#556) @gigony
- Fix
return_error='always'
behavior in phase_cross_correlation (#549) @grlee77 - Only load versioned
libcufile
(#548) @jakirkham - add a 20 minute timeout for pytest runs on CI (#545) @grlee77
- protect against possible out of bounds memory access in 2D distance transform (#540) @grlee77
- Fix doc building via
run build_package
(#553) @grlee77 - update changelog for release 23.04.00 and 23.04.01 (#552) @grlee77
- Allow numpy 1.24. (#563) @bdice
- run docs nightly too (#560) @AyodeAwe
- Update cupy dependency (#558) @vyasr
- Remove libjpeg dependency (#557) @gigony
- Enable sccache hits from local builds (#551) @AyodeAwe
- Revert shared workflows branch (#550) @ajschmidt8
- Support Python 3.9 build/tests (#547) @shwina
- Remove usage of rapids-get-rapids-version-from-git (#546) @jjacobelli
- Use ARC V2 self-hosted runners for GPU jobs (#538) @jjacobelli
- Remove underscore in build string. (#528) @bdice
- Pin libwebp-base (#541) @ajschmidt8
- Fix bug in median filter with non-uniform footprint (#521) @grlee77
- use cp.around instead of cp.round for CuPy 10.x compatibility (#508) @grlee77
- Fix error in LZ4-compressed Zarr writing demo (#506) @grlee77
- Normalize whitespace. (#474) @bdice
- allow scikit-image 0.20 as well (#536) @grlee77
- Pass
AWS_SESSION_TOKEN
andSCCACHE_S3_USE_SSL
vars to conda build (#525) @ajschmidt8 - Update aarch64 to GCC 11 (#524) @bdice
- Update to GCC 11 (#522) @bdice
- Upgrade dockcross and pybind11 (#519) @gigony
- Binary morphology: omit weights array when possible (#517) @grlee77
- Fix inefficiency in handling clipping of image range in
resize
and other transforms (#516) @grlee77 - Fix GHA build workflow (#515) @AjayThorve
- Reduce error handling verbosity in CI tests scripts (#511) @AjayThorve
- Update shared workflow branches (#510) @ajschmidt8
- Remove gpuCI scripts. (#505) @bdice
- Move date to build string in
conda
recipe (#497) @ajschmidt8
- apply bug fix to vendored ndimage code (#494) @grlee77
- Closes #490 -- fixes bug in hue jitter (#491) @benlansdell
- Fix random seed used in test_3d_similarity_estimation (#472) @grlee77
- Add colocalization measures (#488) @grlee77
- Add disambiguation option to phase_cross_correlation (skimage 0.20 feature) (#486) @grlee77
- Update shared workflow branches (#501) @ajschmidt8
- Update
isort
version to 5.12.0 (#492) @ajschmidt8 - Improve rank filtering performance by removing use of footprint kernel when possible (#485) @grlee77
- use vendored version of cupy.pad with added performance optimizations (#482) @grlee77
- add docs builds to Github Actions (#481) @AjayThorve
- Update
numpy
version specifier (#480) @ajschmidt8 - Build CUDA
11.8
and Python3.10
Packages (#476) @ajschmidt8 - Add GitHub Actions Workflows. (#471) @bdice
- Fix conflicts in "Forward-merge branch-22.12 to branch-23.02" (#468) @jakirkham
- Enable copy_prs. (#465) @bdice
- Implement additional deprecations carried out for scikit-image 0.20 (#451) @grlee77
- improved implementation of ridge filters (bug fixes and reduced memory footprint) (#423) @grlee77
- pin to cmake !3.25.0 on CI to avoid bug with CUDA+conda during build (#444) @grlee77
- update incorrect argument and deprecated function for tifffile.TiffWriter (#433) @JoohyungLee0106
- Fix rotate behavior for ndim > 2 (#432) @grlee77
- add whole-slide tiled read/write demos for measuring GPUDirect Storage (GDS) I/O performance (#452) @grlee77
- Add demo for distance_transform_edt (#394) @grlee77
- Support no-compression method in converter (#443) @gigony
- add three segmentation metrics (#425) @grlee77
- add isotropic binary morphology functions (#421) @grlee77
- Add blob feature detectors (blob_dog, blob_log, blob_doh) (#413) @monzelr
- additional minor updates (skimage 0.20) (#455) @grlee77
- Implement additional deprecations carried out for scikit-image 0.20 (#451) @grlee77
- Faster
hessian_matrix_*
andstructure_tensor_eigvals
via analytical eigenvalues for the 3D case (#434) @grlee77 - use fused kernels to reduce overhead in corner detector implementations (#426) @grlee77
- Misc updates for consistency with scikit-image 0.20 (#424) @grlee77
- improved implementation of ridge filters (bug fixes and reduced memory footprint) (#423) @grlee77
- analytical moments computations, support pixel spacings in moments and regionprops (#422) @grlee77
- Forward merge branch-22.10 to branch-22.12 (#420) @grlee77
- Support
sampling
kwarg fordistance_transform_edt
(take pixel/voxel sizes into account) (#407) @grlee77 - Improve performance of Euclidean distance transform (#406) @grlee77
- Correctly use dtype when computing shared memory requirements of separable convolution (#409) @grlee77
- Forward-merge branch-22.08 to branch-22.10 (#403) @jakirkham
- Add missing imports of euler_number and perimeter_crofton (#386) @grlee77
- update pypi CHANGELOG.md for releases 22.08.00 and 22.08.01 (#404) @grlee77
- Update README.md (#396) @HesAnEasyCoder
- Allow cupy 11 (#399) @galipremsagar
- Add cucim.skimage.feature.match_descriptors (#338) @grlee77
- Merge docs and add links (#415) @jakirkham
- Add benchmarks for scikit-image functions introduced in 22.08 (#378) @grlee77
- create SimilarityTransform using CuPy 9.x-compatible indexing (#365) @grlee77
- Add
__init__.py
incucim.core
(#359) @jakirkham - Stain extraction: use a less strict condition across channels when thresholding (#316) @grlee77
- Incorporate bug fixes from skimage 0.19.3 (#312) @grlee77
- fix RawKernel bug for canny filter when quantiles are used (#310) @grlee77
- Defer loading of
custom.js
(#383) @galipremsagar - add cucim.core.morphology to API docs + other docstring fixes (#367) @grlee77
- Update README.md (#361) @HesAnEasyCoder
- remove unimplemented functions from See Also and fix version numbers in deprecation warnings (#356) @grlee77
- Forward-merge branch-22.06 to branch-22.08 (#344) @grlee77
- Update README.md (#315) @HesAnEasyCoder
- Update index.rst (#314) @HesAnEasyCoder
- Update PyPI package documentation for v22.06.00 (#311) @gigony
- Add segmentation with the Chan-Vese active contours method (#343) @grlee77
- Add cucim.skimage.morphology.medial_axis (#342) @grlee77
- Add cucim.skimage.segmentation.expand_labels (#341) @grlee77
- Add Euclidean distance transform for images/volumes (#318) @grlee77
- Revert "Allow CuPy 11" (#362) @galipremsagar
- Fix issues with day & night modes in python docs (#360) @galipremsagar
- Allow CuPy 11 (#357) @jakirkham
- more efficient separable convolution (#355) @grlee77
- Support resolution and spacing metadata (#349) @gigony
- Performance optimizations to morphological segmentation functions (#340) @grlee77
- benchmarks: avoid use of deprecated pandas API (#339) @grlee77
- Reduce memory overhead and improve performance of normalize_colors_pca (#328) @grlee77
- Protect against obscure divide by zero error in edge case of
normalize_colors_pca
(#327) @grlee77 - complete parametrization of cucim.skimage benchmarks (#324) @grlee77
- parameterization of
filters
andfeatures
benchmarks (v2) (#322) @grlee77 - Add a fast histogram-based median filter (#317) @grlee77
- Remove custom compiler environment variables (#307) @ajschmidt8
- Populate correct channel names for RGBA image (#294) @gigony
- Merge branch-22.04 into branch-22.06 (#258) @jakirkham
- add missing
cucim.skimage.segmentation.clear_border
function (#267) @grlee77 - add
cucim.core.operations.color.stain_extraction_pca
andcucim.core.operations.color.normalize_colors_pca
for digital pathology H&E stain extraction and normalization (#273) @grlee77, @drbeh
- Update to use DLPack v0.6 (#295) @gigony
- Remove plugin-related messages temporarily (#291) @gigony
- Simplify recipes (#286) @Ethyling
- Use cupy.fuse to improve efficiency hessian_matrix_eigvals (#280) @grlee77
- Promote small integer types to single rather than double precision (#278) @grlee77
- improve efficiency of histogram-based thresholding functions (#276) @grlee77
- Remove unused dependencies in GPU tests job (#268) @Ethyling
- Enable footprint decomposition for morphology (#274) @grlee77
- Use conda compilers (#232) @Ethyling
- Build packages using mambabuild (#216) @Ethyling
- Fix ImportError from vendored code (#252) @grlee77
- Fix wrong dimension in metadata (#248) @gigony
- Handle file descriptor ownership and update documents for GDS (#234) @gigony
- Check nullptr of handler in CuFileDriver::close() (#229) @gigony
- Fix docs builds (#218) @ajschmidt8
- Apply fixes to skimage.transform scheduled for scikit-image 0.19.2 (#208) @grlee77
- Update PyPI cuCIM v22.02.01 CHANGELOG.md (#249) @gigony
- Update GTC 2021 Spring video links (#227) @gigony
- Update documents for v22.02.00 (#226) @gigony
- Merge branch-22.02 into branch-22.04 (#220) @jakirkham
- Expose data type of CuImage object for interoperability with NumPy (#246) @gigony
- Temporarily disable new
ops-bot
functionality (#239) @ajschmidt8 - Add
.github/ops-bot.yaml
config file (#236) @ajschmidt8 - randomization per image per batch (#231) @shekhardw
- Fix a bug in v21.12.01 (#191) @gigony
- Fix GPU memory leak when using nvJPEG API (when
device='cuda'
parameter is used inread_region
method).
- Fix GPU memory leak when using nvJPEG API (when
- Fix segfault for preferred_memory_capacity in Python 3.9+ (#214) @gigony
- Update cucim.skimage API to match scikit-image 0.19 (#190) @glee77
- Support multi-threads and batch, and support nvJPEG for JPEG-compressed images (#191) @gigony
- Allow CuPy 10 (#195) @jakikham
- Add missing imports tests (#183) @Ethyling
- Allow installation with CuPy 10 (#197) @glee77
- Upgrade Numpy to 1.18 for Python 3.9 support (#196) @Ethyling
- Upgrade Numpy to 1.19 for Python 3.9 support (#203) @Ethyling
- Support Aperio SVS with CPU LZW and jpeg2k decoder (#141) [@gigony](https://github.com/gigony](https://github.com/gigony))
- Add NVTX support for performance analysis (#144) [@gigony](https://github.com/gigony](https://github.com/gigony))
- Normalize operation (#150) [@shekhardw](https://github.com/shekhardw](https://github.com/shekhardw))
- Load libcufile.so with RTLD_NODELETE flag (#177) [@gigony](https://github.com/gigony](https://github.com/gigony))
- Remove rmm/nvcc dependencies to fix cudaErrorUnsupportedPtxVersion error (#175) [@gigony](https://github.com/gigony](https://github.com/gigony))
- Do not compile code with nvcc if no CUDA kernel exists (#171) [@gigony](https://github.com/gigony](https://github.com/gigony))
- Fix a segmentation fault due to unloaded libcufile (#158) [@gigony](https://github.com/gigony](https://github.com/gigony))
- Fix thread contention in Cache (#145) [@gigony](https://github.com/gigony](https://github.com/gigony))
- Build with NumPy 1.17 (#148) [@jakirkham](https://github.com/jakirkham](https://github.com/jakirkham))
- Add Jupyter notebook for SVS Support (#147) [@gigony](https://github.com/gigony](https://github.com/gigony))
- Update change log for v21.10.01 (#142) [@gigony](https://github.com/gigony](https://github.com/gigony))
- update docs theme to pydata-sphinx-theme (#138) [@quasiben](https://github.com/quasiben](https://github.com/quasiben))
- Update Github links in README.md through script (#132) [@gigony](https://github.com/gigony](https://github.com/gigony))
- Fix GDS link in Jupyter notebook (#131) [@gigony](https://github.com/gigony](https://github.com/gigony))
- Update notebook for the interoperability with DALI (#127) [@gigony](https://github.com/gigony](https://github.com/gigony))
- Update
conda
recipes for Enhanced Compatibility effort by (#164) [@ajschmidt8](https://github.com/ajschmidt8](https://github.com/ajschmidt8)) - Fix Changelog Merge Conflicts for
branch-21.12
(#156) [@ajschmidt8](https://github.com/ajschmidt8](https://github.com/ajschmidt8)) - Add cucim.kit.cumed plugin with skeleton (#129) [@gigony](https://github.com/gigony](https://github.com/gigony))
- Update initial cpp unittests (#128) [@gigony](https://github.com/gigony](https://github.com/gigony))
- Optimize zoom out implementation with separate padding kernel (#125) [@chirayuG-nvidia](https://github.com/chirayuG-nvidia](https://github.com/chirayuG-nvidia))
- Do not force install linux-64 version of openslide-python (#124) [@Ethyling](https://github.com/Ethyling](https://github.com/Ethyling))
- Forward-merge branch-21.08 to branch-21.10 (#88) @jakirkham
- Update PyPI cuCIM v21.08.01 README.md and CHANGELOG.md (#87) @gigony
- Support raw RGB tiled TIFF (#108) @gigony
- Add a mechanism for user to know the availability of cucim.CuImage (#107) @gigony
- Enable GDS and Support Runtime Context (enter, exit) for CuFileDriver and CuImage (#106) @gigony
- Add transforms for Digital Pathology (#100) @shekhardw
- ENH Replace gpuci_conda_retry with gpuci_mamba_retry (#69) @dillon-cullinan
- Remove int-type bug on Windows in skimage.measure.label (#72) @grlee77
- Fix missing array interface for associated_image() (#65) @gigony
- Handle zero-padding version string (#59) @gigony
- Remove invalid conda environment activation (#58) @ajschmidt8
- Pin
isort
hook to 5.6.4 (#73) @charlesbluca - Add skimage.morphology.thin (#27) @grlee77
- Add SciPy 2021 to README (#79) @jakirkham
- Use more descriptive ElementwiseKernel names in cucim.skimage (#75) @grlee77
- Add initial Python unit/performance tests for TIFF loader module (#62) @gigony
- Fix
21.08
forward-merge conflicts (#57) @ajschmidt8
- Update
update-version.sh
(#42) @ajschmidt8
- Update environment variable used to determine
cuda_version
(#43) @ajschmidt8 - Update version script to remove bump2version dependency (#41) @gigony
- Update changelog (#40) @ajschmidt8
- Update docs build script (#39) @ajschmidt8
- Initial release of cuCIM including cuClaraImage and cupyimg.