저는 N 이미지를 입력으로 사용하여 애니메이션을 가져올 수 있고 M 프레임이 있는 애니메이션을 출력할 수 있는 것(이전에는 FOSS 소프트웨어)을 찾고 있습니다. 여기서 M은 2N에서 5N 정도 범위에 있습니다.
나는 일반적인 기술을 "시간적 업샘플링" 또는 "중간"(또는 줄여서 "트위닝")이라고 부릅니다. 장면에 있는 사물의 모션 추적("광학 흐름")을 수행하려면 약간의 노력이 필요합니다. 키프레임 사이의 페이드("디졸브")만으로는 잘리지 않습니다. "시간적 업샘플링"을 검색해 보면 해당 주제에 관한 많은 논문이 나오지만 아직 해당 기술을 시험해 보는 데 사용할 수 있는 코드/소프트웨어(gstreamer 플러그인이 완벽할 것임)를 찾지 못했습니다.
어떤 제안?
추가 정보:"모션 보간"내가 찾고 있는 것에 대해 TV 세계에서 더 널리 사용되는 이름인 것 같습니다. 보다이것그리고동영상여기도. 흥미롭게도 일부 영화광들은 이러한 기술이 24FPS 영화에 미치는 영향을 싫어하는 것 같습니다. 예를 들어 "바람과 함께 사라지다(Gone With The Wind)를 비디오의 연속극처럼 보이게 만듭니다"라는 코멘트가 있습니다.
답변1
그만큼MV도구플러그인AVISynth수행하다프레임 보간.AviSynth(소스포지)는 스크립트 기반 비디오 편집 도구입니다. 스크립트 텍스트 파일에서 수행할 작업을 정의합니다.
내가 재생해야 했던 스크립트찰리 윌슨의 전쟁120fps에서:
cyia.avs
:
source = DirectShowSource("Cyia Batten - Charlie Wilson's War.avi")
# assume progressive NTSC Film 23.976 source
# Fast Search
#============
# we use explicit idx for more fast processing
#backward_vec = source.MVAnalyse(blksize=16, isb = true, chroma=false, pel=1, searchparam=1, idx=1)
#forward_vec = source.MVAnalyse(blksize=16, isb = false, chroma=false, pel=1, searchparam=1, idx=1)
# Slow Search
# ===========
# Use block overlap, halfpixel accuracy and Exhaustive search
backward_vec = source.MVAnalyse(overlap=4, isb = true, pel=2, search=3, idx=1)
forward_vec = source.MVAnalyse(overlap=4, isb = false, pel=2, search=3, idx=1)
#double framerate
#source.MVFlowFps(backward_vec, forward_vec, num=2*FramerateNumerator(source), den=FramerateDenominator(source), idx=1)
#triple framerate
#source.MVFlowFps(backward_vec, forward_vec, num=3*FramerateNumerator(source), den=FramerateDenominator(source), mask=0, idx=1)
#120fps
source.MVFlowFps(backward_vec, forward_vec, num=120, den=1, mask=0, idx=1)
예, 그것은 파괴합니다영화 품질24fps보다 높은 것으로 변환할 때.
답변2
짧은 답변:
이를 작동시키려면 현재 기술로 많은 수작업이 필요합니다.
더 긴 답변:
"중간" 이미지(소위 광학 흐름)를 얻는 일반적인 방법은 두 그림(소스, 대상)의 지점을 매핑하고 두 그림 간의 변환을 계산하는 것입니다. 물론 다양한 객체(Blob, 커널 기반, 윤곽선 등)를 추적하는 가장자리 찾기 알고리즘이나 예측 알고리즘이 있습니다. 그러나 "실제" 영화 변환의 완전한 자동화는 기껏해야 실험적입니다.
답변3
Slowmo동영상
SlowmoVideo는 영상에서 슬로우 모션 비디오를 생성하는 OpenSource 프로그램입니다.
하지만 단순히 동영상을 0.01배속으로 재생하는 것은 아닙니다. 선택적으로 모션 블러를 사용하여 영상의 속도를 부드럽게 낮추거나 높일 수 있습니다.
슬로우 모션은 어떻게 작동하나요? SlowmoVideo는 비디오에서 픽셀이 이동하는 위치를 알아낸 다음(이 정보를 광학 흐름이라고 함) 이 정보를 사용하여 추가 프레임을 계산합니다.
Gstreamer Slowmo 플러그인
플러그인은 Slowmovideo의 코드를 사용하여 이를 QT 및 ffmpeg 기반 자체 내부 디코딩 "프레임워크"에서 gstreamer로 포팅합니다.