Карта сайтаПоискОбратная связь
f-баня
а тебя здесь нет?
(мучеников: 12878)


Вернуться   Форум о FIFA 15, FIFA 14, PES 2014 и других футбольных симуляторах на fifasoccer.ru > Жизнь > Трепология > Программирование

Ответ
 
Опции темы
Старый 24.12.2005, 19:31   #1
Администратор
 
Аватар для вегуд
 
Регистрация: 13.07.2005
Сообщений: 317
По умолчанию Формат BIG файла

Не оставляю надежды, что кому-то из посетителей это интересно

начну издалека (для тех кто прогуливал информатику )
что такое формат файла и зачем он нужен.
формат файла - это его структура, определяющая расположение
информационных блоков, плюс способ представления данных.
обычно, структура файла предусматривает наличие
так называемой сигнатуры (подписи), которая отличает один
формат от другого. как правило, подпись располагается в самом начале файла.
например, у zip-файлов это "PK", у bmp - "BM", у EXE - "MZP",
сигнатура BIG-файлов - "BIGF" или "BIG4"... в этом можно убедиться, открыв
файлы в hex-редакторе или просто в FAR-е (установите себе Far. www.rarlab.com. Для жителей exUSSR он бесплатен).

вот текстовый файл. он не имеет структуры - она и не нужна, потому что это
просто однородные данные (около 100 различных символов, которые мы можем понять)
в чистом виде, как они есть.

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

насчет упомянутого выше способа представления данных.
например, если в палитре 256 цветов, то один пиксель
может быть описан числом от 0 - 255. такое число будет занимать
ровно 1 байт. можно просто записать N пикселей в виде
N байт и это будет просто как грабли (так устроен формат BMP)
но тогда бы у нас картинки занимали по 2-3 мегабайта.
поэтому придумывают такие способы записи этих пикселей,
чтобы сократить размер файла. получается, что в зависимости
от самого изображения файл будет то больше, то меньше.
потому что пустую картинку с белым фоном можно записать как
картинка 100х100, цвет пикселя: 1, количество пикселей: 10000.
и не обязательно при этом прописывать каждый белый пиксель.
примерно делается в формате GIF. поэтому он дает
плохое сжатие для избражений с градиентами и выигрывает по размеру
у JPEG'а, если на картинке изобилуют места с однородным фоном.

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



возвращаясь к теме...
BIG-файлы. что это такое?
это файлы, которые содержат другие файлы.
что-то навроде архивов с нулевым сжатием.

зачем они такие нужны?
например в фифе около 10000 файлов
текстуры футболок, 3д модели лиц, и всякое прочее говно
если бы 10000 файлов по отдельности лежали в каталоге,
то занимали бы больше места чем если бы их засунуть
в один файл. так устроена файловая система FAT или NTFS.
на каждый файл отводится какое-то место кратное определенному
числу (не вдаваясь в подробности про всякие сектора и кластеры...)
как правило файл не занимает всего места, что ему отведено,
но место оказывается как-бы занятым. при наличии большого
числа файлов эти "незанятые" хвостики складываются
в солидные мегабайты.
можете проверить, посмотрев в виндовсе правой кнопкой свойства папки или файла.
в свойствах будет два размера:
"размер" - сколько по сути занимают файлы
и
"да диске" - сколько эти файлы отъедают места на самом деле.
слабонервных разница может шокировать.
например 100 файлов по 1 байтку, казалось бы должны
занимать 100 байтиков. а получается порядка 2-3 мегабайт (в зависимости от размера диска).


снова, возвращаясь к теме...
таким образом, структура BIG-файла такова:
указано общее число подфайлов (назовем их так) в BIG-файле.
затем идет таблица, содержащая
- размер подфайла,
- смещение подфайла (кол-во байт от начала до места, где лежит содержимое подфайла)
- имя подфайла.
затем идет содержимое всех подфайлов, помещенных в данный BIG.
данная структура позволяет без проблем найти и извлечь
нужный подфайл из BIG'а.


замечу, что в PES5 применяется формат ASF,
аналогичный по функции BIG файлам и
практически аналогичный им по структуре...
с той разницей, что в ASF нет имени подфайла
(недавно узнал что песоиды называют подфайлы "слотами" )


более детально, позже, в следующем посте...
а то сегодня что-то заносит не в ту степь..
вегуд вне форума   Ответить с цитированием
Старый 24.12.2005, 19:40   #2
Guest
 
Сообщений: n/a
По умолчанию

Интересно, но к чему это ?
  Ответить с цитированием
Старый 24.12.2005, 19:44   #3
Администратор
 
Аватар для вегуд
 
Регистрация: 13.07.2005
Сообщений: 317
По умолчанию

Цитата:
Сообщение от Goal
Интересно, но к чему это ?
я уже стар...
хочу передать свой опыт молодым бойцам, которые, если что, подхватят мое знамя ..
вегуд вне форума   Ответить с цитированием
Старый 24.12.2005, 21:21   #4
Guest
 
Сообщений: n/a
По умолчанию

вегуд, я, например, все это отлично знаю. Только я не понял, а зачем мне формат .BIG-файлов?
  Ответить с цитированием
Старый 24.12.2005, 22:10   #5
Посетитель
 
Аватар для D@P
 
Регистрация: 02.04.2005
Адрес: Россия, ПИТЕР
Сообщений: 1,438
Отправить сообщение для D@P с помощью ICQ
По умолчанию

вегуд, почти ничего из этого толком не знал. а ты доступно всё рассказал.
хорошая качественная леция
продолжай в том же духе.
__________________
+
Делай, что должно, и будь, что будет.
D@P вне форума   Ответить с цитированием
Старый 25.12.2005, 16:28   #6
Администратор
 
Аватар для Asiat
 
Регистрация: 03.04.2005
Сообщений: 1,235
По умолчанию

Поотркывал взякие графичекие файлы в хексэдиторе к сожалению структуры не понял
И почему вся инфа записывается там при помощи цифр и ABCDEF ?
Asiat вне форума   Ответить с цитированием
Старый 25.12.2005, 16:44   #7
Посетитель
 
Аватар для Schweinsteiger
 
Регистрация: 07.04.2005
Адрес: Москва-Дюссельдорф(Germany)
Сообщений: 154
По умолчанию

Всегда найдутся люди, которым интересно из каких винтиков-шпунтиков сделана его любимая игруха. Уж куда лучше, чем обсуждать кто как бреется и где учится. Мне лично, очень интересно было читать Вегуда. Вообщем "пиши ещё" и "Требую продолжения банкета!"(с)
Schweinsteiger вне форума   Ответить с цитированием
Старый 25.12.2005, 17:11   #8
Посетитель
 
Аватар для Rayne
 
Регистрация: 31.03.2005
Адрес: Москва
Сообщений: 185
Отправить сообщение для Rayne с помощью ICQ
По умолчанию

Цитата:
И почему вся инфа записывается там при помощи цифр и ABCDEF ?
это, судя по описанию, шестнадцатиричная система исчисления.
а hex редакторы, значит, редакторы, переводящие файл в шестнадцатиричную систему.

зы извиняйте, если бред
Rayne вне форума   Ответить с цитированием
Старый 25.12.2005, 21:21   #9
Администратор
 
Аватар для smallball
 
Регистрация: 06.04.2005
Адрес: Samara
Сообщений: 2,875
Отправить сообщение для smallball с помощью ICQ
По умолчанию

Согласен с Nefelim-ом, даже учитывая "близость" смерти вегуда. На дворе 21-й век, каждый формат файла должен сопровождаться соответствующей утилитой по его обработке. Если стороннему (не придумавшему этот формат файла) программисту приходится писать свою утилиту, то это просто плохой формат файла. При чем как обычно эти проблемы вызваны недостатком конкуренции на рынке (ЕА вообще нужно давно засудить за монополизм). И даже если сейчас ничего с этими "форматами" поделать нельзя, то через несколько лет (как раз к вегудовой "кончине") сменится поколение программистов поколением нетфреймворкинистов и все встанет в стандартизованное русло (никому больше в голову не придет придумывать что то свое). Проще говоря, Microsoft всех "за уши притянет" к стандартным (читай своим) средствам разработки программ. При чем кого будет волновать, что файлы занимают на диске в 10 раз больше места, чем "положено", если размеры дисков растут пропорционально снижению стоимости одного мегабайта.
smallball вне форума   Ответить с цитированием
Старый 25.12.2005, 22:12   #10
Администратор
 
Аватар для smallball
 
Регистрация: 06.04.2005
Адрес: Samara
Сообщений: 2,875
Отправить сообщение для smallball с помощью ICQ
По умолчанию

Цитата:
Сообщение от вегуд
я уже стар...
Только опираясь на это...
Так что никаких наездов.
Просто хотелось понять, зачем все это нужно? Искать "приемника", но для чего? Если для редактирования фифы, то нет же никакой гарантии, что в 2008-м она будет такой как сейчас? Если просто для поддержки и развития сайта, то при чем тут big-файлы? Ну и уж вряд ли это написано просто для "нам будет полезно". С таким же успехом D@P ты мог бы кратко описать часть лекции из медицины. Я бы с удовольствием почитал...
smallball вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +3, время: 22:22.