Авторастяжение кадра (Frame auto stretch)

Top  Previous  Next

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

Предусмотрено указание разных максимальных коэффициентов растяжения: по горизонтали и по вертикали.

 

Доступные значения:

Не растягивать

Растягивать на 5%/7%

Растягивать на 10%/15%

Адаптивный алгоритм растяжения

 

Значение по-умолчанию: Не растягивать

 

Значение Растягивать на 5%/7% означает растягивать по горизонтали максимум на 5%, по вертикали максимум на 7%. Такие ограничения позволяют избежать чрезмерных геометрических искажений картинки.

 

Адаптивный алгоритм растяжения позволяет гибко настраивать условия растяжения. Это можно сделать путем редактирования пакетного файла Ini\AlterStretch.cmd. Ниже приведен вариант файла, который подготовил 19w85 (участник конференции iXBT.com):

 

@echo :: %~nx0 ======== начало =====================================================

 

@echo :: Значения по-умолчанию

set asStretch=0

:: = 0    - авторастяжение кадра отключено

:: = H:V  - авторастяжение применяется в горизонтальном направлении на H%, в вертикальном - на V%

 

set asMonWidth=%1

set asMonHeight=%2

set asVideoWidth=%3

set asVideoHeight=%4

 

@echo :: непосредственно логика

::Отключение вытяжения для анаморфного видео и для видео с нарушенным соотношением сторон

if %asVideoWidth%==720 if %asVideoHeight%==576 (set /a asStretch=0 & goto end)

if %asVideoWidth%==720 if %asVideoHeight%==480 (set /a asStretch=0 & goto end)

if %asVideoWidth%==704 if %asVideoHeight%==480 (set /a asStretch=0 & goto end)

 

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

set /a T=%asVideoHeight%*%asMonWidth%/%asMonHeight%

if %asMonWidth% LSS %T% (set /a asStretch=0 & goto end)

 

rem Разделение на 'несколько' групп

::SD (ширина до 500)

if %asVideoWidth% LEQ 500 goto SD_Low

::SD (ширина до 720)

if %asVideoWidth% LEQ 720 goto SD_High

::Меньше 720p и больше SD

if %asVideoWidth% LSS 1280 goto VHQ

::720p (ширина=1280)

if %asVideoWidth%==1280 goto 720p

::1080p или просто лучше 720p (ширина больше 1280)

if %asVideoWidth% GTR 1280 goto 1080p

 

:SD_Low

@echo ---------------SD_Low---------------

set asStretch=0:7

::Дополнительные настройки (в зависимости от условий могут заменить значение указанное выше)

CALL :Aspect

goto end

 

:SD_High

@echo ---------------SD_High--------------

set asStretch=0:7

CALL :Aspect

goto end

 

:VHQ

@echo ---------------VHQ------------------

set asStretch=0:7

CALL :Aspect

goto end

 

:720p

@echo ---------------720p-----------------

set asStretch=0:7

CALL :Aspect

goto end

 

:1080p

@echo --------------1080p-----------------

set asStretch=0

CALL :Aspect

goto end

 

:Aspect

@echo --------------Aspect----------------

set /a WH=%asVideoWidth%*10/%asVideoHeight%

::4:3--W:H--16:9

IF %WH% GTR 14 IF %WH% LEQ 16 (set /a asStretch=0 & GOTO :EOF)

::~16:9

IF %WH% GTR 16 IF %WH% LEQ 19 (set /a asStretch=0 & GOTO :EOF)

::16:9--W:H--2.35:1

IF %WH% GTR 19 IF %WH% LEQ 22 (set /a asStretch=0 & GOTO :EOF)

GOTO :EOF

 

:end

echo %asStretch% >"%APPDATA%\Smooth Video Pack\Logs\%~n0.txt"

@echo :: %~nx0 ======== конец =====================================================

 

Hosted by uCoz