Вот оказывается как у Вас всё закручено - каждая точка имеет свои собственные поля формата координат (+4бита на каждую пару!!)
Но это не значит, что
если даже прямоугольник будет, его координаты (4 штуки) будут занимать от 4х до 8ми байт в зависимости от его положения внутри области.
Минимум 5 байт (4байта координат + 8бит полей размера), и то в самом лучшем случае, когда весь прямоугольник лежит внутри области 256х256.
Таких 5-байтовых прямоугольников будет 17% от всех возможных в квадрате 400х400.
Остальные кости упадут так: 6bytes - 38%; 7 - 32%; 8 - 12%; 9bytes - 1.7%
Для сравнения: в SWF-кодировке прямоугольник с 9-битными координатами в любом случае упаковывается в 5+4х9=41 бит
Теперь сравним оба метода на примере широкоформатной задачи: надо изобразить (допустим) карту звёздного неба - 20 тыс. пятнышек, разбросанных по простыне 16000х10000 пикселей, или 320,000х200,000 twips. У каждой звезды могут быть свой цвет, размер и форма, но нас интересует только кодирование их координат.
Сколько объектов попадет в квадрат 256х256 twips (2.5-байтовые координаты)? Ответ: НОЛЬ !
В полосах Х<65536 и Y<65536, находятся соответственно 20% и 33% всех звёзд, причем только 6% требуют 4.5-байтовой кодировки, остальные 49% занимают 6.5 байт. Ну и наконец 45% требуют 8 с половиной байт на пару.
ИТОГО: 142Кбайт для представления координат, из них 10000 байт используются только на кодирования размера данных.
SWF требует 5.125 байт (41 бит) на пару координат, или 100Кбайт на все объекты, при значительно более простом кодировании.