πΈ Type assertions
Object-oriented components (`PSNR`, `SSIM`, ...) now use type assertions to raise meaningful error messages. See the "Assert" section in the [README](README.md) for more information.
β»οΈ Refactor
In this release, the API has been heavily redesigned and simplified.
* The "user-friendly" functionals to compute the metrics were dropped in favor of object-oriented metrics (5994e349d4c140877e560b18c2a51307e61575fc)
* Importing `piqa` now directly gives access to the object-oriented metrics (5994e349d4c140877e560b18c2a51307e61575fc)
<table align="center">
<tr>
<th>v1.1.0</th>
<th>v1.1.3</th>
</tr>
<tr>
<td>
python
>>> from piqa import ssim
>>> criterion = ssim.SSIM()
>>> criterion(x, y)
tensor(...)
</td>
<td>
python
>>> import piqa
>>> criterion = piqa.SSIM()
>>> criterion(x, y)
tensor(...)
</td>
</tr>
</table>
* The `piqa.utils` module was divided in three sub-modules (5994e349d4c140877e560b18c2a51307e61575fc)
1. `piqa.utils.functional` regroups the convolution and kernel helpers
2. `piqa.utils.complex` is an API to manipulate "factice" complex tensors
3. `piqa.utils.color` handles the color-space conversions
* JITing is now an option which can be enabled/disabled (f46707040e98236f12ebf6df7eb93fc54b4bf380)
* Custom normalization functionals (`tensor_norm` & `normalize_tensor`) were dropped in favor of `torch.linalg.norm` (f7440076a27f8415dca1f067e3c6b49cd8924c2e)