Список форумов shedevr.org.ru shedevr.org.ru
Группа перевода приставочных игр "ШЕДЕВР"
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Сжатие кадров в STR-видео(и не только)

 
Начать новую тему   Ответить на тему    Список форумов shedevr.org.ru -> Экстремальный ромхакинг
Предыдущая тема :: Следующая тема  
Автор Сообщение
HoRRoR
RRC2008
RRC2008


Зарегистрирован: 21.06.2006
Сообщения: 2341
Откуда: Ростов-на-Дону

СообщениеДобавлено: Вс Ноя 04, 2007 8:46 pm    Заголовок сообщения: Сжатие кадров в STR-видео(и не только) Ответить с цитатой

Собственно, у меня возник такой вопрос... Можно ли распаковать у видео отдельные кадры, а потом запаковать и вставить обратно не изменив структуры файла?
Объясню, зачем мне это надо.
Во-первых, это сэкономит ооооочень пного памяти при построении патча, а во-вторых, останется неизменённым качество незатронутого блока видео, ведь при перепаковке качество хоть немного, но теряется.
Прошу знатоков видеокодеков помочь Smile
_________________
Работаю за деньги
KILL ALL HUMANS!!!!!111
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
BoreS



Зарегистрирован: 03.04.2004
Сообщения: 347
Откуда: KarmaSociety

СообщениеДобавлено: Вс Ноя 04, 2007 10:22 pm    Заголовок сообщения: Ответить с цитатой

присоединяюсь. Нужно в перекодированном видео заменить несколько кадров, затем закодировать обратно в стр и что бы размер по возможности не увеличился и не уменьшился.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
HoRRoR
RRC2008
RRC2008


Зарегистрирован: 21.06.2006
Сообщения: 2341
Откуда: Ростов-на-Дону

СообщениеДобавлено: Вс Ноя 04, 2007 11:07 pm    Заголовок сообщения: Ответить с цитатой

Если можно - то хотя бы подскажите литературу и принцип компрессии, постараюсь разобраться сам...
_________________
Работаю за деньги
KILL ALL HUMANS!!!!!111
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Shiru



Зарегистрирован: 25.10.2006
Сообщения: 295
Откуда: Russia, Moscow

СообщениеДобавлено: Вс Ноя 04, 2007 11:20 pm    Заголовок сообщения: Ответить с цитатой

Насколько я помню, там видео жмётся похожим на MJPEG образом - без межкадрового сжатия. MDEC (Motion Decoder) декодирует сами кадры аппаратно, но поток в str вроде дополнительно пожат хаффманом (распаковывается процессором и кидается на MDEC). Т.е. теоретически отдельные кадры без пережатия всего файла заменить можно. Смотреть надо документацию на Playstation, м.б. что-то есть в SDK (не смотрел, не знаю). Ещё на Zophar'е упоминается официальный документ File Formats, который там не выложен.

Да, сжатие там идёт макроблоками, так что м.б. можно заменить даже часть кадра.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
HoRRoR
RRC2008
RRC2008


Зарегистрирован: 21.06.2006
Сообщения: 2341
Откуда: Ростов-на-Дону

СообщениеДобавлено: Вс Ноя 04, 2007 11:51 pm    Заголовок сообщения: Ответить с цитатой

Это радует Smile Ну что ж, буду информировать о прогрессе моих исследований в этой области Very Happy
_________________
Работаю за деньги
KILL ALL HUMANS!!!!!111
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
HoRRoR
RRC2008
RRC2008


Зарегистрирован: 21.06.2006
Сообщения: 2341
Откуда: Ростов-на-Дону

СообщениеДобавлено: Пн Ноя 05, 2007 1:57 am    Заголовок сообщения: Ответить с цитатой

Нашёл документ. Судя по количеству опечаток - он неофициальный Smile Но объём внушительный.
По мною прочитанному я понял, что данные сжаты подобно JPEG. Используется Фактор дискретизации(что это такое буду изучать), The color difference blocks (не знаю, как точно переводится, но погуглю), The Luminescence blocks (то же самое).
_________________
Работаю за деньги
KILL ALL HUMANS!!!!!111
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
HoRRoR
RRC2008
RRC2008


Зарегистрирован: 21.06.2006
Сообщения: 2341
Откуда: Ростов-на-Дону

СообщениеДобавлено: Пн Ноя 05, 2007 2:44 am    Заголовок сообщения: Ответить с цитатой

Ужас Shocked
http://compression.ru/book/part2/part2__3.htm#_Toc448152511
Это вообще реально реализовать? оО
_________________
Работаю за деньги
KILL ALL HUMANS!!!!!111
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Shiru



Зарегистрирован: 25.10.2006
Сообщения: 295
Откуда: Russia, Moscow

СообщениеДобавлено: Пн Ноя 05, 2007 3:39 am    Заголовок сообщения: Ответить с цитатой

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

Опечатки в документе могут быть официальными, наверняка изначально он написан на японском, и потом переведён тем, кто под руку попался.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
HoRRoR
RRC2008
RRC2008


Зарегистрирован: 21.06.2006
Сообщения: 2341
Откуда: Ростов-на-Дону

СообщениеДобавлено: Пн Ноя 05, 2007 12:09 pm    Заголовок сообщения: Ответить с цитатой

Блин, я в математике не шарю Sad
Если не трудно, кто-нибудь может расписать алгоритм компрессии/декомпресии так, как он будет исполняться на компе?
_________________
Работаю за деньги
KILL ALL HUMANS!!!!!111
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
HoRRoR
RRC2008
RRC2008


Зарегистрирован: 21.06.2006
Сообщения: 2341
Откуда: Ростов-на-Дону

СообщениеДобавлено: Пн Ноя 05, 2007 5:22 pm    Заголовок сообщения: Ответить с цитатой

Так, вроде частично вник в алгоритм, спасибо Dangaard'у за изъяснение математических формул Smile
Но есть загвоздка - то не так дока)) То PSX Documentation Project, в ней данные немного не те... А про File Formats пишут следующее:
Цитата:
This is a very detailed document on PSX file formats such as TIM, TMD, XA, STR, and others. This appears to be an official document and due to copyright, it cannot be distributed here.

Где её можно урвать? Rolling Eyes
--
Ложная тревога, нашёл Smile Спасибо BoresSmile
_________________
Работаю за деньги
KILL ALL HUMANS!!!!!111
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
BoreS



Зарегистрирован: 03.04.2004
Сообщения: 347
Откуда: KarmaSociety

СообщениеДобавлено: Пн Ноя 05, 2007 9:16 pm    Заголовок сообщения: Ответить с цитатой

не за что, теперь ждём от тебя законченного продукта, то бишь программы для редактирования кадров в .СТР Laughing
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
HoRRoR
RRC2008
RRC2008


Зарегистрирован: 21.06.2006
Сообщения: 2341
Откуда: Ростов-на-Дону

СообщениеДобавлено: Пн Ноя 05, 2007 9:40 pm    Заголовок сообщения: Ответить с цитатой

BoreS писал(а):
не за что, теперь ждём от тебя законченного продукта, то бишь программы для редактирования кадров в .СТР Laughing

А что смешного? Прогресс, хоть маленький, но есть Smile
_________________
Работаю за деньги
KILL ALL HUMANS!!!!!111
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
BoreS



Зарегистрирован: 03.04.2004
Сообщения: 347
Откуда: KarmaSociety

СообщениеДобавлено: Вт Ноя 06, 2007 8:17 am    Заголовок сообщения: Ответить с цитатой

Это у меня не смех, а радость Smile
я уверен что у тебя получится.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Shiru



Зарегистрирован: 25.10.2006
Сообщения: 295
Откуда: Russia, Moscow

СообщениеДобавлено: Вт Ноя 06, 2007 8:55 am    Заголовок сообщения: Ответить с цитатой

К вопросу о декодировании. Основную часть можно подсмотреть в каком-нибудь эмуляторе PlayStation с открытыми исходниками. Например, PCSX (mdec.c, mdec.h). Вот с кодированием будет тяжело, оно само по себе сложнее, и подсмотреть негде.

Есть такая смутная идея. Вроде были программы для конвертирования видео в str, чтобы смотреть на приставке. Можно пойти таким путём: разбираемся, как заменить один кадр в потоке; кодируем свой вариант видео такой программой; берём оттуда нужные кадры и заменяем ими кадры оригинального файла. Бонус: не надо самостоятельно декодировать и кодировать сами кадры.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
HoRRoR
RRC2008
RRC2008


Зарегистрирован: 21.06.2006
Сообщения: 2341
Откуда: Ростов-на-Дону

СообщениеДобавлено: Вт Ноя 06, 2007 9:45 am    Заголовок сообщения: Ответить с цитатой

Спасибо большое Smile Но я все-таки постараюсь написать все там, тем более процесс не такой уж и сложный... Мне пригодился бы опыт работы с видео Smile
_________________
Работаю за деньги
KILL ALL HUMANS!!!!!111
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
HoRRoR
RRC2008
RRC2008


Зарегистрирован: 21.06.2006
Сообщения: 2341
Откуда: Ростов-на-Дону

СообщениеДобавлено: Вт Ноя 06, 2007 10:48 pm    Заголовок сообщения: Ответить с цитатой

Короче медленно, но чётко и очень уверенно въезжаю в алгоритм, попутно переводя часть доки, описывающую STR. В конце выложу перевод и своё подробное изъяснение формата STR.
Пока перевёл только маленький кусочек из середины про RunLevel-оптимизацию.

Часть перевода на заценку.
_________________
Работаю за деньги
KILL ALL HUMANS!!!!!111
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
HoRRoR
RRC2008
RRC2008


Зарегистрирован: 21.06.2006
Сообщения: 2341
Откуда: Ростов-на-Дону

СообщениеДобавлено: Вт Ноя 13, 2007 9:09 pm    Заголовок сообщения: Ответить с цитатой

Короче пока научился заменять только кадры целиком.
Написал прогу для замены кадров, но за работоспособность не отвечаю Smile Заменит - хорошо, не заменит - я не виноват :D

Frame Replacer

Для применения надо определить:
- Размер сектора
- Адрес первого сектора первого фрейма
- Смещение заголовка в секторе

Как это сделать?

Начнём с размера сектора. Вы можете увидеть повторяющиеся через определённые интервалы схожие структуры. Нужно найти в начале одной из таких структур значение типа 6xxx, обычно это 6001 - это начало заголовка. Отмеряем размер до следующего такого значения - это и будет размер сектора. Обычно это $930.

Адрес первого сектора определить не сложно. Для этого надо сперва определить, с чего начинается сектор. Во всём секторе, за исключением начала (и конца, если это конце фрейма) идут беспорядочные данные. Как только они кончаются, структурированные данные. Вот начало этой структуры и будет началом сектора. Ну а первый сектор будет сектором, идущий первым Very Happy. Обычно у STR присутствует заголовок файла, где-то от 16 байт, поэтому часто начало файла не является началом первого сектора.

Смещение заголовка - это смещение 6xxx относительно начала сектора.

Использование программы:

FReplacer <Изменяемый файл> <Исходный файл> <Адрес первого сектора первого фрейма> <Размер сектора> <Смещение заголовка в секторе> <Начальный кадр> <Конечный кадр>

<Изменяемый файл> - файл, в котором будут заменяться кадры
<Исходный файл> - файл без звука, созданный с помощью MOVCONV, размер сектора $800
<Адрес первого сектора первого фрейма> - no comments
<Размер сектора> - n/c
<Смещение заголовка в секторе> - n/c
<Начальный кадр> - кадр, начиная с которого заменять
<Конечный кадр> - кончая которым заменять

Пример:
Код:
FReplacer D:\_job\SH1\STR\Old\!@!.STR D:\_job\SH1\STR\sh.str $2C $930 $18 15 90


Могу включить поддержку любого исходного видео (не обязательно с размером сектора 2048 байт), но тогда придётся писать больше параметров и т.п. В общем, понадобится кому-нибудь - допишу.


P.S. Просьба потестить Smile
_________________
Работаю за деньги
KILL ALL HUMANS!!!!!111
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов shedevr.org.ru -> Экстремальный ромхакинг Часовой пояс: GMT + 3
Страница 1 из 1

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


Powered by phpBB © 2001, 2005 phpBB Group