ilyachalov (ilyachalov) wrote,
ilyachalov
ilyachalov

Categories:

Передача картинки по сети

Вопрос из книги Таненбаума про компьютерные сети к главе 1 «Введение», цитата:

23. Имеется несжатое изображение размером 1600 × 1200 пикселов, 3 байта/пиксел. Сколько времени потребуется на его передачу с помощью модема, работающего со скоростью 56 Кбит/с? С помощью кабельного модема, работающего на 1 Мбит/с? По Ethernet со скоростью передачи 10 Мбит/с? По Ethernet со скоростью 100 Мбит/с? По гигабитной Ethernet?


Про то, что такое «пропускная способность» и «Ethernet», было в предыдущем посте по теме.

Почему для хранения одного пикселя изображения используется 3 байта? Пиксель изображения характеризуется его цветом. Например, для хранения одного пикселя черно-белого изображения можно использовать один бит: 1 — черный цвет, 0 — белый цвет (или наоборот). Для хранения одного пикселя избражения, в котором используется большее количество цветов, потребуется уже несколько битов (или даже несколько байтов). Например, для хранения одного пикселя изображения, в котором цвет каждого пикселя может принимать одно значение из 16 777 216 возможных, потребуется 24 бита или 3 байта. Тут подробнее:

https://ru.wikipedia.org/wiki/TrueColor

Из-за того, что для хранения одного пикселя приходится использовать целых 3 байта, размеры изображений могут получаться очень большими, а, следовательно, их передача по сети может занимать довольно большое время, особенно по каналам с небольшой пропускной способностью. Поэтому для обмена изображениями по сети были придуманы разнообразные способы сжатия изображений в виде разных форматов хранения картинок. Например, форматы хранения картинок GIF или JPEG. Но в нашем случае предполагается, что сжатие не используется, чтобы упростить вычисления.

Вообще, этот вопрос — один из самых простых к этой главе книги.

Вычислим размер изображения:

1600 * 1200 * 3 = 5 760 000 байт или
5 760 000 * 8 = 46 080 000 бит

Вычислим время на передачу этого изображения по сетям с разной пропускной способностью:

1) 46 080 000 бит / 56 Кбит/с = 46 080 000 / 56 000 = 822,86 с = 13,71 мин

2) 46 080 000 бит / 1 Мбит/с = 46 080 000 / 106 = 46,08 с

3) 46 080 000 бит / 10 Мбит/с = 46 080 000 / (10 * 106) = 4,608 с

4) 46 080 000 бит / 100 Мбит/с = 46 080 000 / (100 * 106) = 0,4608 с

5) 46 080 000 бит / 1000 Мбит/с = 46 080 000 / (1000 * 106) = 0,04608 с
Tags: Образование, Рисунки
Subscribe

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your IP address will be recorded 

  • 0 comments