Skip to content

Latest commit

 

History

History
119 lines (83 loc) · 2.83 KB

io.rst

File metadata and controls

119 lines (83 loc) · 2.83 KB

Decoding / Encoding images and videos

.. currentmodule:: torchvision.io

The :mod:`torchvision.io` module provides utilities for decoding and encoding images and videos.

Image Decoding

Torchvision currently supports decoding JPEG, PNG, WEBP, GIF, AVIF, and HEIC images. JPEG decoding can also be done on CUDA GPUs.

The main entry point is the :func:`~torchvision.io.decode_image` function, which you can use as an alternative to PIL.Image.open(). It will decode images straight into image Tensors, thus saving you the conversion and allowing you to run transforms/preproc natively on tensors.

from torchvision.io import decode_image

img = decode_image("path_to_image", mode="RGB")
img.dtype  # torch.uint8

# Or
raw_encoded_bytes = ...  # read encoded bytes from your file system
img = decode_image(raw_encoded_bytes, mode="RGB")

:func:`~torchvision.io.decode_image` will automatically detect the image format, and call the corresponding decoder (except for HEIC and AVIF images, see details in :func:`~torchvision.io.decode_avif` and :func:`~torchvision.io.decode_heic`). You can also use the lower-level format-specific decoders which can be more powerful, e.g. if you want to encode/decode JPEGs on CUDA.

.. autosummary::
    :toctree: generated/
    :template: function.rst

    decode_image
    decode_jpeg
    encode_png
    decode_webp
    decode_avif
    decode_heic
    decode_gif

.. autosummary::
    :toctree: generated/
    :template: class.rst

    ImageReadMode

Obsolete decoding function:

.. autosummary::
    :toctree: generated/
    :template: function.rst

    read_image

Image Encoding

For encoding, JPEG (cpu and CUDA) and PNG are supported.

.. autosummary::
    :toctree: generated/
    :template: function.rst

    encode_jpeg
    write_jpeg
    encode_png
    write_png

IO operations

.. autosummary::
    :toctree: generated/
    :template: function.rst

    read_file
    write_file

Video - DEPREACTED

Warning

DEPRECATED: All the video decoding and encoding capabilities of torchvision are deprecated from version 0.22 and will be removed in version 0.24. We recommend that you migrate to TorchCodec, where we'll consolidate the future decoding/encoding capabilities of PyTorch

.. autosummary::
    :toctree: generated/
    :template: function.rst

    read_video
    read_video_timestamps
    write_video


Fine-grained video API

In addition to the :mod:`read_video` function, we provide a high-performance lower-level API for more fine-grained control compared to the :mod:`read_video` function. It does all this whilst fully supporting torchscript.

.. autosummary::
    :toctree: generated/
    :template: class.rst

    VideoReader