numcodecs-sperr 0.2.3

SPERR codec implementation for the numcodecs API
Documentation
{
  "type": "object",
  "unevaluatedProperties": false,
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "bpp": {
          "type": "number",
          "exclusiveMinimum": 0.0,
          "description": "positive bits-per-pixel"
        },
        "mode": {
          "type": "string",
          "const": "bpp"
        }
      },
      "required": [
        "mode",
        "bpp"
      ],
      "description": "Fixed bit-per-pixel rate"
    },
    {
      "type": "object",
      "properties": {
        "psnr": {
          "type": "number",
          "exclusiveMinimum": 0.0,
          "description": "positive peak signal-to-noise ratio"
        },
        "mode": {
          "type": "string",
          "const": "psnr"
        }
      },
      "required": [
        "mode",
        "psnr"
      ],
      "description": "Fixed peak signal-to-noise ratio"
    },
    {
      "type": "object",
      "properties": {
        "pwe": {
          "type": "number",
          "exclusiveMinimum": 0.0,
          "description": "positive point-wise (absolute) error"
        },
        "mode": {
          "type": "string",
          "const": "pwe"
        }
      },
      "required": [
        "mode",
        "pwe"
      ],
      "description": "Fixed point-wise (absolute) error"
    },
    {
      "type": "object",
      "properties": {
        "q": {
          "type": "number",
          "exclusiveMinimum": 0.0,
          "description": "positive quantisation step"
        },
        "mode": {
          "type": "string",
          "const": "q"
        }
      },
      "required": [
        "mode",
        "q"
      ],
      "description": "Fixed quantisation step"
    }
  ],
  "description": "Codec providing compression using SPERR.\n\nArrays that are higher-dimensional than 3D are encoded by compressing each\n3D slice with SPERR independently. Specifically, the array's shape is\ninterpreted as `[.., depth, height, width]`. If you want to compress 3D\nslices along three different axes, you can swizzle the array axes\nbeforehand.",
  "properties": {
    "_version": {
      "type": "string",
      "pattern": "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$",
      "description": "The codec's encoding format version. Do not provide this parameter explicitly.",
      "default": "0.2.0"
    }
  },
  "title": "SperrCodec",
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}