PSPx форум

PSPx форум (https://www.pspx.ru/forum/index.php)
-   Видео для PS Vita (https://www.pspx.ru/forum/forumdisplay.php?f=395)
-   -   Как кодировать видео для PS Vita? (https://www.pspx.ru/forum/showthread.php?t=95672)

COOLERbyPSP 16.06.2012 20:01

Цитата:

Сообщение от fedozzi (Сообщение 1035980)
господин ErikPshat как раз говорил, что не стоит выставлять разрешение больше физического разрешение Виты, мол это ухудшит картинку, или я что-то не правильно понял?

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

fedozzi 16.06.2012 20:33

что-то я еще больше начинаю запутываться))
короче вот есть конкретные разрешения исходников, по какой формуле рассчитать разрешения для Виты?
1024х576
1136х640
1280х688
1120х476
1152х480
768х576
битрейт я так понимаю лучше ставить переменный?

COOLERbyPSP 16.06.2012 20:39

Цитата:

Сообщение от fedozzi (Сообщение 1035992)
битрейт я так понимаю лучше ставить переменный?

Он в любом случае будет переменный. Ты просто ставишь среднее значение, вокруг которого он будет кол*****ся.

Цитата:

по какой формуле рассчитать разрешения для Виты?
Фигнёй маяться не стоит, xvid4psp может всё сам сделать.

А так то: экран 960х544, берем ширину 960, первый пример: 960*576/1024=540. Нужно, чтоб делилось на 8 - прибавляем 4.

ErikPshat 16.06.2012 20:59

Большее разрешение при просмотре на экране с меньшим разрешением или наоборот, всегда приводит к ухудшению картинки.

Объясню почему...
Приведу примитивное логическое объяснение:

Экраны на девайсах всегда характеризуются каким-то разрешением, например 960х544

Что такое разрешение?
Это физическое количество пикселей(точек) на экране - по ширине 960 пикселей, по высоте 544 пиксела.

Что такое пиксель?
Пиксель - это физическая величина, отдельная ячейка в матрице экрана, заполненная жидким кристаллом. Не бывает полтора или 1,7 или 0,5 пикселей, как не бывает полтора или половина человека, талевизора, пылесоса, молекулы, атома; пиксель - он один. Транзистор в матрице, преобразует получаемые данные цвета RGB (Red-Green-Blue) и заставляет поворачивается жидкому кристаллу в ячейке по данным координатам, чтобы отразить требуемый цвет в точке (пикселе). Пиксель - это минимальная величина, которая не может делиться на более мелкие, т.к. это отдельная ячейка в матрице и таких ячеек в матрице по ширине 960, по высоте 544.

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

А если разрешение картинки больше физического разрешения матрицы экрана?
Предположим картинка по ширине имеет 1920 пикселей, а экран физически может выводить только 960.
То есть, 2 пиксела невозможно поместить в один пиксел и ячейка не может разделиться надвое. Если бы такое было бы возможно, тогда бы все ячейки просто взорвались бы от разбухания ))) Получается, придётся выкинуть из изображения каждый 2-ой пиксель, то есть, отрежем пол-носа, пол-глаза, пол-картинки по сути.
На самом деле так фактически и получается, когда при просмотре HD видео 1920x1080 на экране VITA 960х544, мы видим только в 2 раза меньше пикселей от имеющихся.

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



Именно поэтому, при просмотре большего разрешения на меньшем или наоборот меньшего на большем, мы видим не оригинальную картинку, а искажённую.
Другое дело, как с этим справляются технологии.

COOLERbyPSP 16.06.2012 21:10

ErikPshat, помню где-то ты сам писал, что 720х480 на PSP выглядит лучше...(где-то на pspfaqs вроде видел)
Так что технологии справляются. А вот с собственным разрешением - не всегда очень хорошо.
Ибо декодер соневский - говно то ещё)

ErikPshat 16.06.2012 21:19

Цитата:

Сообщение от COOLERbyPSP (Сообщение 1035998)
ты сам писал, что 720х480 на PSP выглядит лучше...

Никогда такого не говорил. Наоборот, всегда писал, что 480х272 выглядет лучше, чем 720х480.

fedozzi 16.06.2012 21:55

COOLERbyPSP
большое спасибо, щас буду пробовать, а то в понедельник еду на ЕВРО, в дороге хоть Гнев Титанов посмотрю))
ErikPshat
большое спасибо все очень понятно, только вот тогда всплывает вопрос допустим в солидном кинотеатре проектор вещает с разрешением 4К, потом этот же фильм выходит на блю-рее с разрешением 1080п, потом какой-нибудь умелец рипает его до 720п, и в конце-концов я его ужимаю до 960х544, при таком раскладе пиксели разве не пропадают?

ErikPshat 16.06.2012 22:12

Цитата:

Сообщение от fedozzi (Сообщение 1035992)
по какой формуле рассчитать разрешения для Виты?

Элементарно. Вычисляете аспект Виты 960 : 544 = 1,7647058823529411764705882352941 ~ 1,765

Всё остальное видео приводите к этому аспекту (по ширине или по высоте, как вам хочется).
Математика элементарная: вычисляем аспект исходного видео; привязываем его к любой из сторон Виты 960 или 544; лишнее обрезаем или оставляем большее, либо меньшее, а так же соблюдаем спецификацию.

Вариант 1 с чёрными полосами:

1024х576 => 1024:576=1,777; 960:1,777=540 => 960x540 (исправляем на 544 - кратно 8 без остатка)
1136х640 => 1136:640=1,775; 960:1,775=540 => 960x540 (544)
1280х688 => 1280:688=1,860; 960:1,860=516 => 960х516 (520)
1120х476 => 1120:476=2,353; 960:2,353=408 => 960х408
1152х480 => 1152:480=2,400; 960:2,400=400 => 960x400

Ширина поуже, а высота выше разрешения Виты:
768х576 => 768:576=1,333; 544х1,333=725 => 725х544 (728 - первое)

Примечание:
(исправляем на 544 - кратно 8 без остатка) - нужно проверять, чтобы ширина и высота соответствовала спецификации.
Исправление ширины или высоты в отдельности приводит к непременному искажению картинки, то есть сплющиванию/расплющиванию или сжатию/расжатию.
Но небольшая корректировка в несколько пикселей никто не заметит, например подправить высоту с 540 на 544.




Вариант 2 без чёрных полос:

1024х576 => 1024:576=1,777; 544х1,777=967 => 967x544 (первое исправляем на 960 - кратно 16 без остатка)
1136х640 => 1136:640=1,775; 544х1,775=966 => 966x544 (первое 960)
1280х688 => 1280:688=1,860; 544х1,860=1012 => 1012х544 (первое 1008, либо 960 с кропом)
1120х476 => 1120:476=2,353; 544х2,353=1280 => 1280х544 (либо 960 с кропом)
1152х480 => 1152:480=2,400; 544х2,400=1306 => 1306x544 (первое 1296, либо 960 с кропом)

Ширина поуже, а высота выше разрешения Виты:
768х576 => 768:576=1,333; 960:1,333=720 => 960х720 (второе 544 с кропом)

Примечание:
(либо 960 с кропом) - то есть, у вас ширина или высота получается больше разрешения Vita. Кропом обрезается всё лишнее изображение до 960, например по бокам. Получится такой же эффект, как мы смотрим широкоформатные фильмы на телевизоре 4:3 во весь экран или суперширокоформатный на экране 16:9, зрители в принципе не замечают, что фильм, который мы смотрим, на самом деле широкоформатный.

(1280х544) - тут, когда по ширине или по высоте мы привязывает сторону к разрешению Виты, а другая сторона получается больше, тогда есть ещё один плюс, на Vita вы можете выставить формат экрана "На весь экран", тогда картинка сама заполныется полностью по высоте 544, а по ширине делает кроп за вас. Либо вы можете выставить по ширине, тогда картинка не будет обрезанной, а отобразится во всю ширину, но по высоте уменьшится, то есть получим эффект с чёрными полосками из "Варианта 1".




P.S. Предлагаю добавить в ФАК, чтобы эти простые истины не ломали головы несчастных математиков.

COOLERbyPSP 16.06.2012 22:12

fedozzi, в смысле? Разумеется, если растянуть 960*544 обратно до 4к - пиксели пропадут.
Если только видеоряд и в 4к не был "мыльным кинцом"

Насчёт добавления в фак - спорно. xvid4psp сам всё просчитывает = это никому не нужно. Разве что ознакомиться с теорией.

ErikPshat 16.06.2012 22:18

Цитата:

Сообщение от fedozzi (Сообщение 1036008)
я его ужимаю до 960х544, при таком раскладе пиксели разве не пропадают?

Просто при кодировке из одного разрешения в другое, кодировщик обладает более продвинутыми возможностями по квантованию соседних пикселей.
Сама же PSP масштабирует изображение примитивными алгоритмами по сравнению с кодерами. Тут только ИМХО.

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

COOLERbyPSP 16.06.2012 22:20

Цитата:

Сообщение от ErikPshat (Сообщение 1036014)
искажённую картинку

Вот как знаешь, но мне не нравится, как это звучит...Я сразу представляю картинку с "зажёваной" видеокассеты)

fedozzi 16.06.2012 22:29

ErikPshat
если я правильно понял, то кроп обрезает не только черные полосы сверху и снизу, но и часть самой картинки справа и слева?

ErikPshat 16.06.2012 22:31

Цитата:

Сообщение от COOLERbyPSP (Сообщение 1036015)
не нравится, как это звучит...

Ну нравится, не нравится - спи моя красавица :D

А на самом деле, если сплющить картинку 960x550 до 960х544, то ты этого даже не заметишь.

Другое дело, если сплющить от 960х756 до 960х544, тогда конечно вместо нормальных людей будут бегать толстые каратышки. :D

А как ты можешь предложить вариант без искажений, чтобы соблюсти стандарты кратности?
Объясни на элементарном примере 960x540

COOLERbyPSP 16.06.2012 22:39

Цитата:

Сообщение от ErikPshat (Сообщение 1036019)
ты

Кто?

ErikPshat 16.06.2012 22:44

Цитата:

Сообщение от COOLERbyPSP (Сообщение 1036023)
Кто?

Вы, все :)

Цитата:

Сообщение от fedozzi (Сообщение 1036018)
если я правильно понял, то кроп обрезает не только черные полосы сверху и снизу, но и часть самой картинки справа и слева?

Это как ты сам выберешь.
Если выставляешь меньший аспект и ставишь кроп, то всё лишнее обрежется.

Допустим, сверху и снизу чёрные полосы, но картинка по высоте больше Виты, например 720 (а у виты ведь 544).
Ты берёшь и обрезаешь чёрные полосы свеху 88 и снизу 88, получается как раз 544 без чёрных полос.

Аналогичный вариант, когда чёрные полосы не по 88 сверху и снизу, а допустим по 40.
Тогда просто обрезаем их по 40 (всего 80), получается картинка по высоте уже не 720, а 640.
Теперь мы, избавившись от чёрных полос, выставляем разрешение кодирования в 544, получаем то, что доктор прописал.
По ширине конечно проводим аналогию и включаем мозг, чтобы исправляя высоту, не напороть с шириной.


P.S. Ушёл смотреть чемпионат Европы: Россия - Греция, начинается по 1-му.

COOLERbyPSP 16.06.2012 22:50

Мне лично по-барабану на разрешение. Если исходник по какому-либо параметру подходит\превосходит разрешение Виты - я оставляю как есть или ставлю 960 или 544. А уж как там высота\ширина себя поведёт, если аспект не 16:9 - мне пофиг.

Главное не ошибиться с высотой. Растянутую до исходного аспекта ширину человеческий глаз воспримет адекватно.

fedozzi 16.06.2012 23:37

всем большое спасибо, помогли мне во многом разобраться, уже конвертирую, надеюсь все будет ок))

ErikPshat 17.06.2012 01:05

Цитата:

Сообщение от COOLERbyPSP (Сообщение 1036027)
Мне лично по-барабану на разрешение.

Ну по барабану это как по барабану. А я люблю когда всё чётко, без помарок и косяков.

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

И потом, я опираюсь на твои слова, которые ты сам же и опровергаешь:
Цитата:

Сообщение от COOLERbyPSP (Сообщение 1035986)
ширина должна делиться на 16, а высота на 8

А теперь говоришь, что пофиг. Я сам не кодировал для Виты, потому что у меня её нет. Поэтому я поверил тебе. А оказывается пофиг, главное выставил что-то одно, а другое не важно, хоть 540, хоть 544, хотя 540 на 8 не делится.

COOLERbyPSP 17.06.2012 01:34

ErikPshat, просто для совместимости с железками рекомендуют. Да и погрешность до 16\9 меньше...

Ну блин, мне пофиг, но не совсем) То есть я, в силу маниакальности, предпочту, например, анаморфно растянутые до 1280х544 960х544, нежели 1280х544 или 960х400 с полями. Я исхожу из того, что раз на глаз не заметно, то и перебарщивать не надо.

fedozzi 17.06.2012 19:04

короче, 4 из 6 фильмов получились с зелеными полосками, чем черные поля в них выше, тем зеленые полоски выше, 2 оставшихся фильма были тоже с черными полями, но почему-то зеленых полосок не было.

fedozzi добавил 17.06.2012 в 19:04
на компе они просматриваются без зеленых полос, и я понял согласно чему, появляются зеленые полосы при просмотре на Вите:
960х544 (2 фильма), 960х540 и 720х308 воспроизводятся без зеленых полос.
960х408, 960х520 и 960х400 (2 фильма) воспроизводятся с зелеными полосками.
Т.е. Вите не нравятся сильно широкие фильмы даже если в них есть черные полосы, что с этим делать??

toxanik 17.06.2012 19:10

fedozzi, в первый пост после старинного разбирательства этой вещи таки добавили какую-то инфу. Не помогла?

ErikPshat 17.06.2012 19:32

Цитата:

Сообщение от fedozzi (Сообщение 1036106)
на компе они просматриваются без зеленых полос, и я понял согласно чему, появляются зеленые полосы при просмотре на Вите:
960х544 (2 фильма), 960х540 и 720х308 воспроизводятся без зеленых полос.
960х408, 960х520 и 960х400 (2 фильма) воспроизводятся с зелеными полосками.
Т.е. Вите не нравятся сильно широкие фильмы даже если в них есть черные полосы, что с этим делать??

Если такое происходит, то тут надо понимать ещё одну вещь про чёрные/зелёные полоски:
  • Есть фильмы, допустим 960х400, обрезанные в чистом виде. То есть, по высоте они на 400, далее девайс сам заполняет пустоты сверху и снизу полосками.
  • Есть фильмы, допустим "960х400" (в кавычках), которые смотрятся в точности так же, но это на самом деле 960х544! - так же отображается в характеристиках свойств. Но почему-то у них точно такие-же по высоте чёрные полосы при просмотре.
Тут дело в том, что второй фильм по высоте не 400, а все 544, просто чёрные полосы идут в составе фильма, т.е. эти полоски и есть часть фильма, точно так же, как ошейник у собаки или пистолет в руках человека на видео.
Ну думаю поняли, что я хотел сказать.

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

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

Но я предлагаю всегда использовать 2-ой вариант, описанный мною выше в инструкции, либо делать кроп лишнего.

COOLERbyPSP 17.06.2012 19:33

Цитата:

Сообщение от fedozzi (Сообщение 1036106)
что с этим делать

Всё уже давно разжёвано - добавляйте полосы, пока не получите 960*544.

С чёрными полями - 1й способ из шапки.
SONY, запилите нормальную прошивку!

ErikPshat 17.06.2012 19:44

Цитата:

Сообщение от fedozzi (Сообщение 1036106)
Т.е. Вите не нравятся сильно широкие фильмы даже если в них есть черные полосы, что с этим делать??

Как ведут себя фильмы, по моему второму варианту? То есть, фильм привязываешь по максимуму к одной стороне, когда другая остаётся больше, т.е. уходит за пределы разрешения.

Появляются ли зелёные полоски при масштабированни по всей ширине, когда высота становится меньше и должны добавлятся чёртные полоски?

COOLERbyPSP 17.06.2012 19:46

ErikPshat, 1280*544 корректно воспроизводится - проверял лично на вите doubledeath

ErikPshat 17.06.2012 20:01

Кстати, тут пришла одна безумная мысль по поводу зелёных полосочек...
  • Они могут быть чисто зелёными 0х00FF00 - вот так этот цвет выглядет - зелёный по максимуму на 256, остальные цвета на нуле.
  • Они могут быть просто зелёными 0х008000 - вот так этот цвет выглядет - зелёный на половину на 128, остальные цвета на нуле.

Какой цвет показывает Вита, я не знаю )))

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

Во втором случае просто зелёный цвет, но так же может использоваться в Хромакее при соответствующих корректировках.

Поэтому у меня возникла мысль: "А не специально ли для эффектов Sony сделала эту фичу, чтобы заполнять пустоты зелёным, если разрешение видео меньше. То есть, возможно она это может использовать, чтобы прикреплять к видеороликам, рекламным например, тиллерам, а потом на фон накладывать движущуюся окантовку, рамочку и т.п.?"

COOLERbyPSP 17.06.2012 20:03

ErikPshat, а там не пустоты заполняются, там жирная полоса прямо посередине вылазит =\

ErikPshat 17.06.2012 20:17

Цитата:

Сообщение от COOLERbyPSP (Сообщение 1036126)
ErikPshat, а там не пустоты заполняются, там жирная полоса прямо посередине вылазит =\

Хмм, у меня была ассоциация зелёных полос с чёрными, как я понял из разговоов ранее. Получается вы меня опять сбивали с толку всё это время, говоря про зелёные полосочки "типа вместо чёрных" ))) Вот что значит выражать свои мысли не правильно.

В таком случае, возможно это действительно БАГ, когда слишком широкое видео, по отношению к высоте, накладывает на видео зелёные полосы, как испорченный экран, если я правильно понял.

Да просто тогда не парьте себе мозг, а делайте кроп слишком широкого видео до 16:9, чтобы смотреть на весь экран вообще без чёрных полос. Экран на Вите же не как у меня телевизор 40", поэтому незачем ущерблять экран Виты ещё и чёрными полосками.

Кстати, видео нужно не 16:9, потому что это не формат Виты, ведь это 1,777, а у Виты 1,765.

COOLERbyPSP 17.06.2012 20:35

Цитата:

Сообщение от ErikPshat (Сообщение 1036130)
не парьте себе мозг

2 способа в шапке описаны - который нужен, тот и выберут.
Цитата:

Сообщение от ErikPshat (Сообщение 1036130)
не 16:9

Да и у PSP такое же, сильно заморачиваться ради 4х пикселей не стоит.
Цитата:

Сообщение от ErikPshat (Сообщение 1036130)
возможно это действительно БАГ

Давно уже выяснили же)

ErikPshat 17.06.2012 20:56

Цитата:

Сообщение от COOLERbyPSP (Сообщение 1036136)
заморачиваться ради 4х пикселей не стоит

А как же штандарты?

COOLERbyPSP 18.06.2012 01:17

Надо бы шапку немного прибрать. Займусь пока.

fedozzi 18.06.2012 01:21

в общем как правильно сказал COOLERbyPSP, Вита показывает зеленую полоску только при разрешении 960х<544, потому что если ширина будет больше 960, то тогда не важно если высота будет меньше 544, фильмы с разрешением 1040x432, 1120х476, 1152х480 смотрятся отлично :)

COOLERbyPSP 18.06.2012 01:49

fedozzi, SONY тонко троллят, ага) Сначала High 3.1, потом ещё и это...
Погодиииии-ка...а если скормить 976х416?

COOLERbyPSP 19.06.2012 03:02

ErikPshat, насчёт того, что "лучше пиксель в пиксель"
http://puu.sh/BW4b
Это скрин с PSP 100x, разрешение видео 720х576 (анаморфированное в 1024х576, но PSP этого не понимает). Как ни крути, а иероглифы в 480х272 именно на PSP (на компе ок) будут вести себя несколько...хреново, в силу того, что они красные.
(На белом фоне, наверное, не совсем удачный пример =\. Поищу ещё)

Вот. Запилил наглядное сравение. Но, почему-то при ресайзе из 720x576 на PSP немного режутся края.
http://www.check2pic.ru/compare/19048/
Внимательно (невооружённым глазом видно) смотрим на грани красных объектов. И нет, это не артефакты компрессии.

ErikPshat 19.06.2012 05:00

Цитата:

Сообщение от COOLERbyPSP (Сообщение 1036734)
насчёт того, что "лучше пиксель в пиксель"

Не вижу связи. Вижу только, что при ресайзе битрейт явно подрезали и сравнение 2-ух одинаковых картинок 480х272, только с разными размерами 154 кб и 208 кб - вот и весь секрет.

COOLERbyPSP 19.06.2012 05:18

ErikPshat, да ты упорот) Хоть 4 мегабита подай на 480х272, та же хрень будет. Меньший битрейт разве что убил напрочь шум. Скриншоты в битмапе по 382 килобайта мне не понравились - решил пожать (кстати в png - так что баттхёрт неясен). Не веришь - проверяй сам. PSP у тебя полно)
Могу ссылку на исходник дать, там каких-то 36Мбит\с.

vitalikus 19.06.2012 15:52

ErikPshat, На всякий случай даю визуальное представления зелёным полосам
http://i.piccy.info/i7/3c2b61a14461a...C_0073_500.jpg

COOLERbyPSP, Ну я думаю что проблема в рескейле консолью, хотя красный всегда странно артефачил во многих видео форматах...

COOLERbyPSP 19.06.2012 16:54

Проблема не конкретно в красном. Проблема в насыщеных RGB составляющих цветах. Раньше думал, что с матрицей экрана что-то не то, но нет, в играх же всё нормально. Думаю, сей "эффект" можно увидеть и на ПК, выставив вывод видео через VMR-7 (точно не помню, ковырял давно уже).
А за фото с магической_зелёной_хренью отдельное спасибо).

ErikPshat 19.06.2012 21:10

Цитата:

Сообщение от vitalikus (Сообщение 1036976)
даю визуальное представления зелёным полосам

О, спасибо, теперь понятно, что за хрень ))

Тут явно видно, что реально чистый Хромакей 0х00FF00.
Думаю это всё-таки из-за ширины происходит сдвиг эффекта и всё-таки какая-то задумка Sony. Реально наводит на мысли, что задумывалось на фон ставить рамочку видео или картинки под уменьшенное видео. Делается это так... делается трейлер размером, например 760х320, а под ним, в качестве бэкграунда, воспроизводится другая заставка или картинка и вместо зелёного она заполняет фон, а где нет зелёного, там не затрагивается.

Нужно только узнать технологию, как 2 видео воспроизводить одновременно, думаю тут нужен XML.

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

vivan 20.06.2012 17:52

COOLERbyPSP,
эта "проблема" заложена в самом стандарте видео, а именно используемом цветовом пространстве YV12.
Дело в том, что видео кодируется не в привычном RGB, а в YV12. Это такой цветовой формат, в котором есть три компоненты - яроксть + две цветовых. Прикол в том, что из-за особенностей глаза (меньшая чувствительность к цвету, чем к яркости), можно кодировать цветовые компоненты в два раза меньше разрешении.
Таки образом на блок из 2х2 пикселя тратится не 4х3х8 = 96 бит (24 бита на пиксель в среднем), а 8 (один семпл первой цветовой составляющей) + 8 (один семпл второй) + 4х8 (четыре семпла яркостной) = 48 бит или 12 бит на пиксель в среднем. Т.е. выгода - в два раза, при практически минимальном визуальном отличии.
Картинко раз, и еще вики: http://ru.wikipedia.org/wiki/YUV

Но отличие таки есть, и оно заметно на вот таких мелких цветных деталях. Еще заметно на записях видео с экрана.
Вот например, видео в 4:4:4, и сравнение скрина с исходного видео и после ConvertToYV12 ().

Также из этого вытекает еще 1 проблема: как обратно все растягивать. Есть несколько алгоритмов интерполяции:
1) Nearest Neighbor (ака ближайший сосед). В общем из 1 пикселя получается 4 простым превращением 1 пикселя в 2х2 таких же. Например на твоей аве это будет выглядеть так: http://2.firepic.org/2/images/2012-0...xm7gf0afym.png
2) Что-нибудь отличное от него. Выглядит куда лучше.
Вот сравнение, скрин с одного видео, просто разные настройки рендерера (штука, которая из YV12 получает RGB, который на дисплей выводится): http://screenshotcomparison.com/comparison/131312

Беда виты в том, что она хрому (цветовую компоненту) масштабирует по первому алгоритму. Что с этим можно делать? Да разве что кодировать в разрешении выше нативного (видимо лучше всего - 720p), тогда дополнительное масштабирование всей картинки будет немного это все сглаживать. А еще можно гневное письмо в сони написать :D

З.ы. пока гоняю тесты, но на первый взгляд - вита потянула 720p с 9ю рефреймами (что соответствует High@L4.1), но пониженым до 3.1 левелом.
З.ы.ы. сам пока кодирую --preset <какой хочешь по соотношению скорость/сжатие> --tune animation --crf 17 --profile high --level 3.1 --vbv-maxrate 17500 --vbv-bufsize 17500, все ок даже с 720p@60fps видео.
Инфа про размер vbv буфера у виты - проверенная?) И таки рекомендую перейти на пресеты (medium это не пресет, это дефолт :D), и если надо - уже крутить настройки относительно них. А то половина - это veryslow, плюс-минус. Их же совсем не зря сделали ;)
З.ы.ы.ы. эта зелень - это мб YUV с 0 в каждой компоненте. Можете сами проверить :) http://fic.bos.ru/solutions/YUV2RGB.php Если как-нибудь кто-нибдуь снимет скрин с зеленью - можно будет проверить, число там близкое к 135 или к 255)
З.ы.ы.ы.ы. еще по поводу кодирования в натив/не натив - разницы особой нет - сама вита масштабирует неплохо, так что особой разницы между хорошим скейлером при кодировании и скейлом при воспроизведении нет. Но учитывая проблему с апсемплингом хромы - рекомендую таки 720p, а не натив.
З.ы.ы.ы.ы.ы. еще одна мысль по поводу зелени - так работает аппаратный оверлей.
Цитата:

An application using a hardware overlay gets a completely separate section of video memory that belongs only to that application. Because nothing else uses it, the program never needs to waste resources in checking whether a given piece of the memory belongs to it, nor does it need to monitor whether the user moves the window and changes the location of the video memory. To get the image from the separate video memory to display in tandem with the remaining shared elements on the display, the graphical subsystem associates a certain attribute (for example, a particular color) as a "mask" for that overlay, which the graphics card understands to mean that it is to draw from the separate overlay buffer onto the screen. (This technique has become known as "chroma key".)
Возможно рендрер считает, что он должен выводить на весь экран - и готовит область во весь экран... а видеокарта отдает видео не на весь экран - вот и остается "подготовленный" кусок экрана, в который ничего не вывели - и он имеет цвет "подготовленной" части.
З.ы.(6) tl;dr а сабы так и не завелись? А то в очень обширных настройках из суммарных 4х пунктов есть "язык субтитров" о_О


Текущее время: 02:17. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2025, vBulletin Solutions, Inc. Перевод: zCarot
PSPx Forum - Сообщество фанатов игровых консолей.