|
Tempter57
Стаж: 16 лет 11 месяцев Сообщений: 4995
|
Tempter57 ·
09-Фев-09 09:49
(16 лет 7 месяцев назад, ред. 09-Фев-09 09:49)
WertNox писал(а):
Tempter57, разве один проход с постоянный битрейтом даёт качество видео лучше, чем два прохода с плавающим битрейтом?
Нет не лучше, во время 1-го прохода кодек анализирует исходник, намечая на какие сцены больше перераспределить битрейта, на какие меньше, второй проход -непосредственно кодирование с учётом анализа.
Но при тех максимальных квантах 2,2,3 можно, задав высокий битрейт от 1500 до 2000 кодеку XviD, получить очень высокое качество на выходе за один проход при кодировании с постоянным битрейтом (не путать с заданным размером), а подключив ещё и матрицу распределения квантов, например, EQM V3LR до 1600 кбит\с или EQM v3hr свыше 1600 кбит\с , можно получить ещё и более качественную выходную картинку, сократив при этом выходной размер на несколько процентов.
|
|
WertNox
Стаж: 16 лет 9 месяцев Сообщений: 67
|
WertNox ·
09-Фев-09 10:39
(спустя 50 мин., ред. 09-Фев-09 10:39)
Tempter57, можешь подсказать как и где подключать матрицы распределения квантов? P.S. По поводу ошибки при перекодирование BD-Remux, про которую я написал чуть выше, если понадобится, могу предоставить образец видео нужной длины.
|
|
Tempter57
Стаж: 16 лет 11 месяцев Сообщений: 4995
|
Tempter57 ·
09-Фев-09 11:07
(спустя 27 мин.)
WertNox писал(а):
Tempter57, можешь подсказать как и где подключать матрицы распределения квантов?
Если в Megui на первой страничке настроек кодека XviD есть Quantization Type там в строке надо указать путь, где у вас лежат матрицы и подключить необходимую. Для XviD 4PSP открыть Настройки видео кодирования=> Quantization => Matrix. И обязательно прочти статью shellgen Матрицы распределения квантов
|
|
crazy-cactus
  Стаж: 17 лет 9 месяцев Сообщений: 2812
|
crazy-cactus ·
09-Фев-09 11:25
(спустя 17 мин.)
Tempter57
что лучше указывать кодеку при двухпроходном сжатии - желаемый битрейт или размер? Я так понимаю, что размер лучше, т.к. кодек в этом случае сможет более гибко перераспределять битрейт в зависимости от сцены. Я прав?
P.P.S. А как происходит трехпроходное сжатие? Двухпроходное понятно: анализ -> сжатие. А для чего третий проход?
|
|
Tempter57
Стаж: 16 лет 11 месяцев Сообщений: 4995
|
Tempter57 ·
09-Фев-09 11:35
(спустя 9 мин.)
crazy-cactus писал(а):
Tempter57
что лучше указывать кодеку при двухпроходном сжатии - желаемый битрейт или размер? Я так понимаю, что размер лучше, т.к. кодек в этом случае сможет более гибко перераспределять битрейт в зависимости от сцены. Я прав?
P.P.S. А как происходит трехпроходное сжатие? Двухпроходное понятно: анализ -> сжатие. А для чего третий проход?
Правильно считаешь, дело в том, что зачастую в один проход с заданным битрейтом кодируются либо сериалы, либо домашнее видео. Правилом хорошего тона на трекере считается делать рипы в заданный размер: 700 MB, 1400 MB(1,37 GB), 2100 MB, 2800 MB или 1\3, 1\2, 1 DVD.
При 3-х проходном сжатии первые два прохода -анализ, кодировка идёт непосредственно только в последнем третьем проходе. Т.е. имеем более тщательный анализ исходника. Смысла особого нет, поскольку прибавка в качестве мизерная.
|
|
WertNox
Стаж: 16 лет 9 месяцев Сообщений: 67
|
WertNox ·
09-Фев-09 11:52
(спустя 17 мин., ред. 09-Фев-09 15:31)
Tempter57, очень благодарю за подсказку и ссылку.
Я правильно понял, что .cqm файл - это матрица?
|
|
viktor_
 Стаж: 19 лет 3 месяца Сообщений: 879
|
viktor_ ·
09-Фев-09 16:59
(спустя 5 часов)
crazy-cactus писал(а):
что лучше указывать кодеку при двухпроходном сжатии - желаемый битрейт или размер?
Абсолютно без разницы. Если задаешь битрейт в двухпроходном кодировании - это не значит, что он будет постоянным. По битрейту прога подсчитает исходный размер (время фильма х заданный битрейт), а потом все пойдет так же, как если задаешь размер сам.
|
|
Wergil
 Стаж: 18 лет 1 месяц Сообщений: 50
|
Wergil ·
09-Фев-09 21:19
(спустя 4 часа, ред. 09-Фев-09 21:19)
Имеется японский DVD (аниме). Хочу его пережать в x264 с помощью MeGUI. Споткнулся на деинтерлейсе. Автоматика выставила:
DGDecode_mpeg2source("E:\Anime\Edit\WA\VTS_01_1.d2v", info=3)
ColorMatrix(hints=true, interlaced=true, threads=0)
tfm(order=1).tdecimate(hybrid=1)
В общем, очень неплохо выходит, только в очень быстрых сценах картинка идет квадратами.
DGDecode_mpeg2source("E:\Anime\Edit\WA\VTS_01_1.d2v", cpu=4, info=3) не помогает
С этим можно что-то сделать, или смириться?
|
|
xizo
 Стаж: 18 лет 2 месяца Сообщений: 67
|
xizo ·
09-Фев-09 21:21
(спустя 2 мин.)
Когда прикрепляю две аудио дорожки к mkv (кодек x264), media player classic видит только одну - ту которая по дефолту или ту которая выше (и в выборе дорожек есть только одна). Можно как-то сделать что б была возможность выбирать дорожки?
|
|
Wergil
 Стаж: 18 лет 1 месяц Сообщений: 50
|
Wergil ·
09-Фев-09 21:39
(спустя 17 мин., ред. 09-Фев-09 21:39)
xizo
А чем прикрепляешь?
Я пользуюсь mkvmerge GUI. Выбрал дорожки (галочками), указал описание/язык "Start muxing" и можно пить кофе (секунд 10 - 120  ).
|
|
xizo
 Стаж: 18 лет 2 месяца Сообщений: 67
|
xizo ·
09-Фев-09 21:42
(спустя 3 мин.)
Точно так и делаю, только когда открываю в media player classic: play->audio-> там только 1 дорожка. Хоть к видео прикреплено две.
|
|
crazy-cactus
  Стаж: 17 лет 9 месяцев Сообщений: 2812
|
crazy-cactus ·
09-Фев-09 21:59
(спустя 17 мин.)
xizo, этот вопрос задается ловольно часто. Есть 2 решения:
1. В трее ищи Haali Media Splitter и переключай дорожки в нем.
2. Либо используй VLC - он лишен подобной проблемы.
|
|
Wergil
 Стаж: 18 лет 1 месяц Сообщений: 50
|
Wergil ·
09-Фев-09 22:06
(спустя 6 мин., ред. 09-Фев-09 22:06)
Ясно. Попробуй Navigate -> Audio Language -> ???
И всё появится 
Или как crazy-cactus пишет.
|
|
xizo
 Стаж: 18 лет 2 месяца Сообщений: 67
|
xizo ·
09-Фев-09 22:12
(спустя 6 мин., ред. 09-Фев-09 22:12)
Спасибо всем, через Navigate -> Audio Language -> действительно все работает.
|
|
Mike7L
 Стаж: 19 лет 4 месяца Сообщений: 393
|
Mike7L ·
10-Фев-09 01:06
(спустя 2 часа 53 мин., ред. 10-Фев-09 01:06)
Имеется 3 звуковых дорожки с DVD (25 fps) и видео с HDTV (23,976 fps) что целесообразнее подгонять? При условии, что и звук и видео будут перекодироваться в другой формат ? (x264 + aac + mkv)
Заранее спасибо
|
|
So_What
 Стаж: 18 лет 1 месяц Сообщений: 438
|
So_What ·
10-Фев-09 03:35
(спустя 2 часа 28 мин.)
Mike7L лучше подгонять звук под HDTV/
|
|
Pustovetov
 Стаж: 17 лет 10 месяцев Сообщений: 4247
|
Pustovetov ·
10-Фев-09 07:18
(спустя 3 часа, ред. 10-Фев-09 07:18)
Wergil писал(а):
Имеется японский DVD (аниме). Хочу его пережать в x264 с помощью MeGUI. Споткнулся на деинтерлейсе. Автоматика выставила:
А причем здесь деинтерлейс? Это нормальная красивая такая блочность. cpu=4 конечно для начала, ну а далее к примеру попробовать использовать dfttest
Mike7L писал(а):
Имеется 3 звуковых дорожки с DVD (25 fps) и видео с HDTV (23,976 fps) что целесообразнее подгонять? При условии, что и звук и видео будут перекодироваться в другой формат ? (x264 + aac + mkv)
"Замедление" звука это операция влияющая на качество дорожек. "Ускорение" видео никак на качество видео не влияет (ну будут показываться картинки на 4% быстрее, будет демонстрироваться не ~24, а 25 кадров в секунду...). Из этих соображений наверно лучше сделать из видео 25 fps
|
|
javum
 Стаж: 18 лет 3 месяца Сообщений: 32
|
javum ·
10-Фев-09 09:26
(спустя 2 часа 7 мин.)
Wergil писал(а):
В общем, очень неплохо выходит, только в очень быстрых сценах картинка идет квадратами.
DGDecode_mpeg2source("E:\Anime\Edit\WA\VTS_01_1.d2v", cpu=4, info=3) не помогает 
С этим можно что-то сделать, или смириться?
Не советовал бы использовать "cpu=". Это, как говорится, прошлый век 
Мне понравился скриптик Deblock_QED. Для начала попробуй с параметрами по-умолчанию:
|
|
Mike7L
 Стаж: 19 лет 4 месяца Сообщений: 393
|
Mike7L ·
10-Фев-09 12:29
(спустя 3 часа, ред. 10-Фев-09 13:13)
Pustovetov
Я тоже склоняюсь к этому варианту (изменить Fps видео). К тому-же раcкладывать, растягивать и пересобирать 4 6-канальных дороги как-то не очень хочеться... Могли бы вы посоветовать Avisynth фильтр для моего случая? Подойдет ли AssumeFPS (не скажеться ли на качестве изображения)? Дело в том, что в исходнике есть пара глюков - картинка рассыпается на 1с (благо, в коротких сценах (2-4 сек)). Эти сцены хочу заменить полностью апскейлом с DVD(25 fps).
|
|
9Nickko
 Стаж: 18 лет 5 месяцев Сообщений: 137
|
9Nickko ·
10-Фев-09 12:56
(спустя 26 мин.)
Подскажите кто-нибудь пожалуйста почему может не работать Deblock_QED?
В папке plugins в ависинте файлик Deblock_QED.avs лежит.
Вот его содержимое:
скрытый текст
Код:
function Deblock_QED ( clip clp, int "quant1", int "quant2",
\ int "aOff1", int "bOff1", int "aOff2", int "bOff2", int "uv", bool "usegrid", bool "fixmod" )
{
quant1 = default( quant1, 20 )
quant2 = default( quant2, 40 ) aOff1 = default( aOff1, quant1/2 ) # I've no clue if these are clever values or not!
bOff1 = default( bOff1, quant1/4 ) # So:
aOff2 = default( aOff2, quant1/4 ) # Also try all these 4 values @ 0 (zero),
bOff2 = default( bOff2, quant1/8 ) # and quant1=30, quant2=40~45 instead.
uv = default( uv, 3 ) # u=3 -> use proposed method for chroma deblocking
# u=2 -> no chroma deblocking at all (fastest method)
ox = clp.width() # u=1|-1 -> directly use chroma debl. from the normal|strong deblock()
oy = clp.height() usegrid=default(usegrid,false)
fixmod=default(fixmod,true) # With avisynth scripting, there is no information available about the position of the currently
# processed pixel ... there simply is no such thing like an "actual" processed pixel.
# So first I've to build up a grid covering the transitions between all 8x8 blocks,
# and make some LUTmania with it later. Yes, this is cumbersome. Assert(clp.isyv12(),"Deblock_QED: Requires YV12.") o=clp clp=clp.makemod(8) Assert(clp.width() % 8 == 0 && clp.height() % 8 == 0,"Deblock_QED: Requires mod8 video.") block=clp.grid().trim(1,1).loop(framecount(clp)) # create normal deblocking (for block borders) and strong deblocking (for block interiour)
normal = clp.deblock(quant=quant1,aOffset=aOff1,bOffset=bOff1)
strong = clp.deblock(quant=quant2,aOffset=aOff2,bOffset=bOff2) # build difference maps of both
normalD = mt_makediff(clp,normal,chroma=uv>2?"process":"ignore")
strongD = mt_makediff(clp,strong,chroma=uv>2?"process":"ignore") # separate border values of the difference maps, and set the interiours to '128'
strongD2 = mt_lutxy(StrongD,block,expr="y 255 == x 128 ?",U=uv,V=uv)
normalD2 = mt_lutxy(normalD,block,expr="y 255 == x 128 ?",U=uv,V=uv) # interpolate the border values over the whole block: DCTFilter can do it. (Kiss to Tom Barry!)
# (Note: this is not fully accurate, but a reasonable approximation.)
strongD3 = strongD2.mt_lut(expr="x 128 - 1.01 * 128 +",U=uv,V=uv).dctfilter(1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0)# .yv12lut("x 128 - 2 / 128 +") # apply compensation from "normal" deblocking to the borders of the full-block-compensations calculated
# from "strong" deblocking ...
strongD4 = mt_lutxy(strongD3,normalD2,expr="y 128 == x y ?",U=uv,V=uv) # ... and apply it.
deblocked= mt_makediff(clp,strongD4,chroma=uv>2?"process":"ignore") # simple decisions how to treat chroma
deblocked = (uv<0) ? deblocked.mergechroma(strong) : uv<2 ? deblocked.mergechroma(normal) : deblocked deblocked.crop(0,0,o.width,o.height)
return( last )
} function Grid(clip clp) {
block = blankclip(clp,width=6*4,height=6*4,color=$000000).addborders(4,4,4,4,color=$FFFFFF)
block = stackhorizontal( block,block,block,block)
block = stackvertical( block,block,block,block) .pointresize(32,32) .mt_binarize(upper=false)
block = stackhorizontal( block,block,block,block,block,block,block,block)
block = stackvertical( block,block,block,block,block,block)
block = stackhorizontal( block,block,block)
block = stackvertical( block,block,block)
block = stackhorizontal( block,block,block)
block = stackvertical( block,block)
#return clp.subtitle(string(block.width)+"x"+string(block.height))
block = block .crop(0,0,ox,oy)
block = (uv!=3) ? block
\ : YtoUV(block.crop(0,0,ox/2,oy/2),block.crop(0,0,ox/2,oy/2),block)
return block
} function makemod(clip c,int "xmod",int "ymod",bool "mirror",bool "crop") {
xmod=default(xmod,16)
ymod=default(ymod,xmod)
mirror=default(mirror,false)
crop=default(crop,false)
ox=c.width
oy=c.height
w=c.isrgb32() || c.isrgb24() ? 1 : 2
right=c.crop(ox-w,0,w,0)
right=right.stackhorizontal(right,right,right)
right=xmod>w*4 ? right.stackhorizontal(right,right,right) : right
vx=ox % xmod==0 ? c : stackhorizontal(c,right.crop(0,0,xmod-(ox % xmod),0))
bottom=vx.crop(0,oy-w,0,w)
bottom=bottom.stackvertical(bottom,bottom,bottom)
bottom=ymod>w*4 ? bottom.stackvertical(bottom,bottom,bottom) : bottom
vy=oy % ymod==0 ? vx : stackvertical(vx,bottom.crop(0,0,0,ymod-(oy % ymod)))
cropped = c.crop(0,0,int(c.width/xmod)*xmod,int(c.height/ymod)*ymod)
return crop == true ? cropped : vy
} #loadplugin(avsplugins+"dctfilter.dll")
#loadplugin(avsplugins+"grid.dll")
Файла Deblock_QED.dll нет, но я так понимаю его и не существует (и он не нужен).
Вот как выглядит мой скрипт:
Код:
AVISource("E:\[AKROSS Con 2003] Misato - Neverwhere.avi", audio=false)
Deblock_QED()
Ошибку в AvsP пишет такую:
Script error: there is no function named "Deblock_QED" (Новый файл, line 2)
Кстати может лучше просто использовать dfttest? Или Deblock_QED лучше с блоками справляется?
|
|
Pustovetov
 Стаж: 17 лет 10 месяцев Сообщений: 4247
|
Pustovetov ·
10-Фев-09 13:22
(спустя 26 мин.)
Mike7L писал(а):
Pustovetov
Я тоже склоняюсь к этому варианту (изменить Fps видео). К тому-же раcкладывать, растягивать и пересобирать 4 6-канальных дороги как-то не очень хочеться... Могли бы вы посоветовать Avisynth фильтр для моего случая? Подойдет ли AssumeFPS (не скажеться ли на качестве изображения)?
? Просто при муксе сказать 25 fps и всё.
Цитата:
Дело в том, что в исходнике есть пара глюков - картинка рассыпается на 1с (благо, в коротких сценах (2-4 сек)). Эти сцены хочу заменить полностью апскейлом с DVD(25 fps).
Ну и соответственно заменяем сцены другими кадрами. Какая разница с какой частотой результат будед проигрываться? Главное чтобы дорожки звуковые остались синхронными.
|
|
Pustovetov
 Стаж: 17 лет 10 месяцев Сообщений: 4247
|
Pustovetov ·
10-Фев-09 13:26
(спустя 3 мин.)
javum писал(а):
Не советовал бы использовать "cpu=". Это, как говорится, прошлый век 
Только cpu= использует реальные данные из видео потока о квантах (т.е. где наверняка есть блок, а где быстрее всего нет). Все скрипты (пока я таки не допишу соответствующий плагин) деблочат все что попадется.
|
|
javum
 Стаж: 18 лет 3 месяца Сообщений: 32
|
javum ·
10-Фев-09 13:36
(спустя 10 мин.)
Micleo
его надо импортировать в скрипт
Код:
Import("путь к плагинам\DeBlock_QED.avs")
|
|
javum
 Стаж: 18 лет 3 месяца Сообщений: 32
|
javum ·
10-Фев-09 13:40
(спустя 3 мин.)
Pustovetov писал(а):
Только cpu= использует реальные данные из видео потока о квантах (т.е. где наверняка есть блок, а где быстрее всего нет).
Использует - это хорошо, но деблочит, ИМХО, хуже, чем Deblock_QED.
Цитата:
Все скрипты (пока я таки не допишу соответствующий плагин) деблочат все что попадется.
Будем ждать с нетерпением
|
|
shellgen
  Стаж: 18 лет 11 месяцев Сообщений: 6417
|
shellgen ·
10-Фев-09 13:45
(спустя 5 мин.)
javum писал(а):
Использует - это хорошо, но деблочит, ИМХО, хуже, чем Deblock_QED.
...и мажет тоже хуже.
|
|
9Nickko
 Стаж: 18 лет 5 месяцев Сообщений: 137
|
9Nickko ·
10-Фев-09 13:52
(спустя 6 мин.)
javum писал(а):
Micleo
его надо импортировать в скрипт
Код:
Import("путь к плагинам\DeBlock_QED.avs")
Теперь вот такую ерунду выдаёт:
|
|
Mike7L
 Стаж: 19 лет 4 месяца Сообщений: 393
|
Mike7L ·
10-Фев-09 14:04
(спустя 12 мин., ред. 10-Фев-09 14:04)
Pustovetov
Цитата:
Какая разница с какой частотой результат будед проигрываться?
Если рассматривать видеопоток как последовательность кадров, то дейтсвительно - разницы никакой. Абсолютно. Ну подержим кадр на экране не 1/24 сек а 1/25 - качество не при чем. Спасибо.
|
|
Tempter57
Стаж: 16 лет 11 месяцев Сообщений: 4995
|
Tempter57 ·
10-Фев-09 14:30
(спустя 25 мин., ред. 10-Фев-09 14:30)
Micleo
Ничего, что для подключения DeBlock_QED, надо подключить Dctfilter, MaskTools и deblock.dll
смотри http://avisynth.org/mediawiki/Deblock_QED
и лучше сразу применить Deblock_QED_MT2.avs
|
|
9Nickko
 Стаж: 18 лет 5 месяцев Сообщений: 137
|
9Nickko ·
10-Фев-09 15:45
(спустя 1 час 15 мин., ред. 10-Фев-09 16:12)
DctFilter.dll, mt_masktools.dll, deblock.dll и так лежали в папке plugins
а вот Deblock_QED_MT2 заработал в отличие от просто Deblock_QED
всё бы хорошо, только эффекта от этого фильтра практически ноль. может правда потому что я делаю апскейл аниме клипа. но dfttest гораздо лучше убирает блоки
Пример сравнения:
скрытый текст
- оригинал
- Deblock_QED_MT2
- dfttest
- Deblock_QED_MT2 + dfttest
Делаю апскейл из 320*240 до 640*480
Оригинальное видео:
http://multi-up.com/57206
Видео после ресайза, обработанное dfttest и потом LSFmod:
http://multi-up.com/57213
|
|
javum
 Стаж: 18 лет 3 месяца Сообщений: 32
|
javum ·
10-Фев-09 15:48
(спустя 3 мин.)
Micleo
Опередил меня Tempter57 
Можешь еще порыться в поисках его последней версии архива plugins_filtering. Там много всего хорошего.
|
|
|