Skip to content

caimanchik/imageOptimizations

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Домашнее задание

Основное задание

Вам дан код JPEG подобного сжатия (проект JPEG), вам нужно максимально, насколько это возможно, оптимизировать его, в том числе уменьшить потребление памяти. ВАЖНО: нужно именно оптимизировать данное решение а не переписывать его с 0!

Рекомендации:

  • Профилируйте код (используйте dotTrace)
  • Для начала оптимизируйте загрузку изображений и переписывайте только неэффективный код
  • Пишите бенчмарки на разные методы
  • Не бойтесь математики

С разными вопросами можно писать @Golrans и @ryzhes

Подсказки:

  • Распаралельте DCT
  • CbCr subsampling
  • Используйте указатели, вместо GetPixel/SetPixel, придётся написать unsafe код
  • Замените DCT на FFT (System.Numerics.Complex), нельзя использовать библиотеки, только собственная реализация!
  • Помимо подсказанного в проекте ещё много узких мест (╯°□°)╯︵ ┻━┻

Как сдавать задание:

  1. Нужно сделать замер через JpegProcessorBenchmark до оптимизаций и запомнить Mean и Allocated по операциям Compress и Uncompress
  2. Сделать аналогичные замеры после оптимизаций
  3. Внести свой результат в таблицу в день дедлайна, ссылку на которую вам дадут позже
  4. Очно или онлайн за 10-15 минут рассказать какие моменты удалось найти и как оптимизировать

Дополнительное задание: В проекте debugging/managed/Volatile запустить программу в Debug и Release режиме. В чём разница между запусками? Используйте windbg, посмотрите ассемблерный код программы и объясните, что происходит.

Полезные ссылки

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages