Сжатие с потерями: методы и примеры кода для изображений, аудио и видео

Сжатие с потерями — это метод сжатия данных, который уменьшает размер файла путем окончательного удаления определенной информации, которая считается менее важной или менее заметной для человеческого глаза или уха. Этот тип сжатия обычно используется для мультимедийных файлов, таких как изображения, аудио и видео.

Вот несколько методов сжатия с потерями и примеры кода:

  1. Сжатие JPEG (изображение):

    • Пример кода на Python с использованием библиотеки Pillow:

      from PIL import Image
      def compress_image(input_image_path, output_image_path, quality):
       with Image.open(input_image_path) as image:
           image.save(output_image_path, "JPEG", quality=quality)
      compress_image("input.jpg", "output.jpg", quality=80)
  2. Сжатие MP3 (аудио):

    • Пример кода на Python с использованием библиотеки pydub:

      from pydub import AudioSegment
      def compress_audio(input_audio_path, output_audio_path, bitrate):
       audio = AudioSegment.from_file(input_audio_path)
       audio.export(output_audio_path, format="mp3", bitrate=bitrate)
      compress_audio("input.wav", "output.mp3", bitrate="64k")
  3. Сжатие H.264 (видео):

    • Пример кода в инструменте командной строки FFmpeg:

      ffmpeg -i input.mp4 -c:v libx264 -crf 23 -c:a copy output.mp4

Это всего лишь несколько примеров методов сжатия с потерями. В разных областях используются и другие алгоритмы и методы.