KR20210082232A - 실시간 비디오 특수 효과 시스템 및 방법 - Google Patents

실시간 비디오 특수 효과 시스템 및 방법 Download PDF

Info

Publication number
KR20210082232A
KR20210082232A KR1020217016092A KR20217016092A KR20210082232A KR 20210082232 A KR20210082232 A KR 20210082232A KR 1020217016092 A KR1020217016092 A KR 1020217016092A KR 20217016092 A KR20217016092 A KR 20217016092A KR 20210082232 A KR20210082232 A KR 20210082232A
Authority
KR
South Korea
Prior art keywords
rate
video
video data
subroutine
frame
Prior art date
Application number
KR1020217016092A
Other languages
English (en)
Inventor
헨리 페나
토마스 브라이언트 3세
Original Assignee
헨리 페나
토마스 브라이언트 3세
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 헨리 페나, 토마스 브라이언트 3세 filed Critical 헨리 페나
Publication of KR20210082232A publication Critical patent/KR20210082232A/ko

Links

Images

Classifications

    • H04N5/23232
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/005Reproducing at a different information rate from the information rate of recording
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/02Editing, e.g. varying the order of information signals recorded on, or reproduced from, record carriers
    • G11B27/022Electronic editing of analogue information signals, e.g. audio or video signals
    • G11B27/028Electronic editing of analogue information signals, e.g. audio or video signals with computer assistance
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/02Editing, e.g. varying the order of information signals recorded on, or reproduced from, record carriers
    • G11B27/031Electronic editing of digitised analogue information signals, e.g. audio or video signals
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/34Indicating arrangements 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/667Camera operation mode switching, e.g. between still and video, sport and normal or high- and low-resolution modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/95Computational photography systems, e.g. light-field imaging systems
    • H04N23/951Computational photography systems, e.g. light-field imaging systems by using two or more images to influence resolution, frame rate or aspect ratio
    • H04N5/23245
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/222Studio circuitry; Studio devices; Studio equipment
    • H04N5/262Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/765Interface circuits between an apparatus for recording and another apparatus
    • H04N5/77Interface circuits between an apparatus for recording and another apparatus between a recording apparatus and a television camera
    • H04N5/772Interface circuits between an apparatus for recording and another apparatus between a recording apparatus and a television camera the recording apparatus and the television camera being placed in the same enclosure
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/78Television signal recording using magnetic recording
    • H04N5/782Television signal recording using magnetic recording on tape
    • H04N5/783Adaptations for reproducing at a rate different from the recording rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/91Television signal processing therefor
    • H04N5/92Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N5/9201Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving the multiplexing of an additional signal and the video signal
    • H04N5/9205Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving the multiplexing of an additional signal and the video signal the additional signal being at least another television signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/80Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N9/82Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only
    • H04N9/8205Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only involving the multiplexing of an additional signal and the colour video signal

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Television Signal Processing For Recording (AREA)
  • Studio Devices (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

레코딩에 앞서 및/또는 레코딩 중에 실시간으로 특수 효과를 적용하면서 비디오를 레코딩하는 비디오 레코딩 시스템 및 방법이 개시된다. 프로세서는 카메라(12) 또는 원격 비디오 스트림으로부터의 네이티브 속도 레이트의 미가공 비디오 데이터(22) 및 인터페이스(30)로부터의 입력을 수신한다. 시스템은 미가공 비디오 데이터의 네이티브 레이트 속도가 변경되어야 하는지 여부를 결정하고, 만약 그렇다면 네이티브 레이트 속도와 상이한 수정된 속도 레이트의 수정된 비디오 데이터를 생성하도록 미가공 비디오 데이터 내의 적어도 하나의 프레임을 수정한다. 그 다음 시스템은 출력 비디오 레코딩 데이터를 생성하고 메모리(18)에 기록한다. 이는 카메라(12) 작동 또는 설정을 변경하지 않고도 상이한 속도 레이트들로의 카메라 또는 비디오 피드로부터의 연속적인 비디오 레코딩을 가능하게 한다.

Description

실시간 비디오 특수 효과 시스템 및 방법
본 출원은 미국 특허청에 2018년 10월 29일자로 출원된 미국 특허 출원번호 제16173033호의 우선권을 주장하고 그것의 연속 출원이며, 그것의 전체 내용은 개시내용의 연속성을 위해서 본 명세서에 포함된다.
본 기술은 레코딩이 진행되는 동안 비디오 레코딩에서 특수 효과를 제어 또는 생성하는 것과 관련하여 사용하기 위한 실시간 비디오 특수 효과 시스템 및 방법에 관한 것이다. 보다 구체적으로, 본 기술은 사후 편집 없이 장기 메모리 스토리지에 레코딩 및 기록되기 전에 디바이스로부터 비디오 스트림의 속도 레이트를 라이브 또는 실시간으로 디코딩 및 변경하는 시스템 및 방법에 관한 것이다.
현대의 비디오 포맷들은 다양한 프레임 레이트들을 활용한다. 거의 보편적으로 초당 24 프레임으로 촬영된 필름은, 종종 "저더(judder)"로 이어지는 풀다운 변환이 요구되는 네이티브(native) 프레임 레이트로 디스플레이될 수 없었다. 예를 들어, 초당 24 프레임을 초당 60 프레임으로 변환하기 위해, 모든 홀수 프레임이 더블링되고 짝수 프레임이 트리플링되며, 이는 불균일한 모션을 생성한다. 다른 변환들이 이와 유사한 불균일한 프레임 더블링을 갖는다. 보다 새로운 비디오 표준은 초당 120, 240, 또는 300 프레임을 지원하며, 따라서 초당 24 프레임(fps) 필름 및 30fps 비디오 뿐만 아니라, 300fps 디스플레이의 경우에 25 및 50fps 비디오와 같은 공통 프레임 레이트를 위해 프레임에 균일하게 멀티플라잉될 수 있다. 이들 표준은 또한 본래는 보다 높은 프레임 레이트를 갖는 비디오 및 그의 네이티브 프레임들 사이에 보간된 프레임을 갖는 비디오를 지원한다.
스마트폰과 같은 전자 디바이스 상에서 실행되는 디바이스의 네이티브 카메라 애플리케이션(앱)은 규칙적인 시간에 레코딩할 수 있고 그 후에 슬로우 모션 및 스피드 업 타임 또는 타임 랩스를 생성하기 위해 비디오 데이터 스트림을 프로세싱할 수 있다. 그러나 이들 공지된 시스템 또는 방법은 레코딩 중에 사용자가 실시간으로 비디오 내에서 "시간 특수 효과"를 수동 제어할 수 있는 사용자 인터페이스를 사용하지 않는다. 예를 들어, 삼성 갤럭시 S9+®에서의 네이티브 카메라 앱은 이 경우 화면의 중간에 박스 윤곽으로 표시된 바와 같이 화면의 일부분 내에서 물체가 가로질러 간 것을 앱이 검출할 때, 카메라가 초당 프레임 캡쳐 레이트를 변경하는 특수 효과 특징을 갖는다.
인스타그램(Instgram®), 페이스북(Facebook®) 및 스냅챗(snapchat®)과 같은 제 3 자 앱은 모바일 디바이스의 카메라를 사용하지만, 이러한 앱들은 레코딩이 진행되는 동안 실시간으로 앱의 사용자가 레코딩 속도를 감소 또는 증가시키는 수정을 허용하는 특징을 갖지 않는다.
FILMiC Pro®와 같은 보다 하이 엔드의 다성능 카메라 앱을 이용하여, 사용자는 레코딩 프레임 레이트 속도와 재생 프레임 레이트 속도를 서로 독립적으로 사전 설정할 수 있고, 따라서 최종 제작된 비디오에서 슬로우 모션 및 가속 효과를 생성할 수 있다.
광학 흐름의 타임 리맵핑(Time remapping)은 Premiere Pro CC 2015와 같이 알려져 있으며, 이는 사용자가 누락된 프레임들을 보간함으로써 완만한 속도 및 프레임 레이트 변화를 획득할 수 있게 한다. 광학 흐름 보간은 동작 중인 물체와 크게 대비되는 대부분의 정적인 배경의 앞에서 이동하는 모션 블러 없이 물체를 포함하는 클립의 속도를 수정한다.
모션 보간 또는 모션 보상 프레임 보간(MCFI)은 애니메이션을 보다 부드럽게 만들고 디스플레이 모션 블러를 보상하기 위한 시도로, 보간에 의해서 중간 애니메이션 프레임이 기존의 프레임들 사이에 생성되는 비디오 프로세싱의 형태이다.
모션 보간의 사용은 카메라 팬 및 카메라 흔들림에 의해 생성된 모션 블러를 감소시키며 따라서 이러한 이미지의 보다 나은 선명도를 산출하기 때문이라는 점이 이해될 것이다. 이는 또한 입력 지연이 더해지는 원치 않는 부작용이 있을 수 있음에도 불구하고, 보다 현실적인 느낌을 위해서 비디오 게임 소프트웨어의 분명한 프레임 레이트를 증가시키도록 사용될 수 있다. 이러한 "비디오 룩(video look)"은 필름 텔레레코딩(telerecording)으로서만 살아남은 아카이브 텔레비전 프로그램을 복원하기 위해 비디오 필드 보간 복원 효과(Video Field Interpolation Restoration Effect; VidFIRE) 기술에 의해 의도적으로 생성된다. VidFIRE은 현재 자신의 기반으로서 텔레레코딩을 이용한 포맷으로만 존재하는 텔레비전 카메라로 원래 촬영된 영상의 비디오 유사 모션(video-like motion)을 복원하도록 의도된 복원 기술이다. (보간 대 카메라를 통한) 인위적으로 높은 프레임 레이트와 그리고 본질적으로 높은 프레임 레이트 사이의 주요 차이점은, 후자는 전술한 아티팩트 중 어느 것도 거치지 않고, 더 정확한 (또는 "사실적인") 이미지 데이터를 포함하며, 프레임들이 실시간으로 제작되지 않기 때문에 더 많은 저장 공간 및 대역폭을 필요로 한다는 것이다.
모션 보상은 카메라의 모션 및/또는 비디오 내의 물체들의 모션을 고려함으로써 이전 및/또는 미래 프레임이 주어진 비디오에서 프레임을 예측하기 위해 사용되는 알고리즘 기술이다. 이것은 예를 들어 MPEG-2 파일의 생성에서 비디오 압축을 위한 비디오 데이터의 인코딩에 사용된다. 모션 보상은 현재 픽처로의 기준 픽처의 변환의 측면에서 픽처를 기술한다. 기준 픽처는 시간상 이전일 수 있거나 또는 미래로부터의 것일 수도 있다. 이전에 전송된/저장된 이미지로부터 이미지를 정확하게 합성할 수 있는 경우, 압축 효율이 향상될 수 있다.
모션 보상은, 종종 영화의 많은 프레임들에 있어서 한 프레임과 다른 프레임 간의 차이만이 카메라 이동 또는 프레임 이동에서의 물체 중 어느 하나의 결과라는 사실을 이용한다. 비디오 파일을 참조하면, 이는 한 프레임을 나타내는 정보가 다음 프레임에서 사용된 정보와 동일할 것임을 의미한다.
모션 보상을 이용하여, 비디오 스트림은 일부 전체 (기준) 프레임들을 포함할 것이며; 그 사이의 프레임에 대해 저장된 유일한 정보는 이전 프레임을 다음 프레임으로 변환하기 위해 필요한 정보일 것이다.
프레임 블렌딩(Frame Blending)은 당업자에게 공지된 다른 기술일 수 있다. 일부 영상에서, 보다 완만한 모션을 생성하기 위해 광학 흐름을 이용하는 것은 원하는 결과를 제작하지 않을 수 있다. 이러한 시나리오에서, 다른 시간 보간 옵션들--프레임 샘플링 또는 프레임 블렌딩 중 하나를 사용할 수 있다. 프레임 샘플링은 원하는 속도에 도달하기 위해 필요에 따라 프레임을 반복 또는 제거한다. 프레임 블렌딩은 프레임을 반복하며, 또한 모션을 완만하게 하는 것을 돕도록 필요에 따라 프레임들을 블렌딩한다.
상기 기술된 디바이스들은 그들 각각의 특정한 목적 및 요건을 충족하지만, 전술된 특허들은 레코딩이 진행되는 동안 비디오 레코딩에서 특수 효과를 생성하는 것을 허용하는 실시간 비디오 특수 효과 시스템 및 방법을 개시하지 않는다.
지금 종래 기술에 존재하는 공지된 유형의 비디오 속도 변경 시스템 및 방법에 내재된 전술된 단점을 고려하여, 본 기술은 새로운 실시간 비디오 특수 효과 시스템 및 방법을 제공하며, 종래 기술의 언급된 단점 및 결점 중 하나 이상을 극복한다. 이와 같이, 후속하여 보다 상세하게 설명될 본 기술의 일반적인 목적은 새롭고 신규한 실시간 비디오 특수 효과 시스템 및 방법, 그리고 전술된 종래 기술의 모든 장점 및 종래 기술에 의해 예측되지 않고, 명백하게 제시되거나, 제안되거나, 또는 심지어 암시되지 않는 실시간 비디오 특수 효과 시스템 및 방법을 발생시키는 다수의 신규한 특징을 갖는 방법을 제공하는 것이다.
본 기술의 일 양상에 따르면, 라이브 비디오 레코딩 데이터의 특수 효과 동작을 실시간으로 제어하기 위한 비디오 캡쳐 및 디스플레이 시스템이 제공된다. 이 시스템은 현실 세계 장면의 비디오를 캡쳐하도록 구성된 카메라; 적어도 하나의 메모리; 및 카메라, 그래픽 사용자 인터페이스 및 적어도 하나의 메모리에 동작 가능하게 연결되거나 연결가능한 적어도 하나의 프로세싱 유닛을 포함할 수 있다. 적어도 하나의 프로세싱 유닛은: 캡쳐되는 비디오를 그래픽 사용자 인터페이스 상에서 정상 속도로 재생하고; 그래픽 사용자 인터페이스에 의해 수신된 사용자 입력에 응답하여 캡쳐되는 비디오의 그래픽 인터페이스 상에서 비디오 재생 속도를 정상 재생 속도로부터 수정된 재생 속도로 변경하도록 구성될 수 있다.
다른 양상에 따르면, 라이브 비디오 캡쳐 데이터의 특수 효과 동작을 실시간으로 제어하기 위한 방법이 제공된다. 이 방법은 카메라를 이용하여 현실 세계 장면의 비디오를 캡쳐하는 단계; 캡쳐되는 비디오를 그래픽 사용자 인터페이스 상에서 정상 속도로 재생하는 단계; 레코딩이 진행되는 동안 그래픽 사용자 인터페이스에 의해 수신된 사용자 인터페이스 입력에 응답하여 라이브 레코딩 중에 그래픽 사용자 디바이스 상에서 디스플레이되는 것과 같은 정상 재생 속도로부터 레코딩의 즉각적인 재생 중에 그래픽 사용자 디바이스 상에 디스플레이되는 것과 같은 수정된 재생 속도로, 레코딩되는 비디오의 그래픽 사용자 인터페이스 상의 재생 속도를 변경하는 단계를 포함한다.
본 기술의 다른 양상에 따르면, 본 기술은 본질적으로 라이브 비디오 레코딩 데이터의 특수 효과 동작을 실시간으로 제어하기 위한 비디오 레코딩 시스템일 수 있다. 비디오 레코딩 시스템은 네이티브 속도 레이트의 미가공 비디오 데이터, 적어도 하나의 메모리, 그리고 카메라 및 메모리와 동작상 통신하는 적어도 하나의 프로세싱 유닛을 제공하도록 구성되거나 구성가능한 적어도 하나의 카메라를 포함한다. 여기서 미가공 비디오 데이터는 실시간으로 카메라에 의해 캡쳐되는 이미지들에 적어도 부분적으로 대응할 수 있다. 프로세싱 유닛은 실시간으로 카메라로부터 미가공 비디오 데이터를 수신하도록 구성되거나 구성가능할 수 있다. 그 후, 입력이 미가공 비디오 데이터의 네이티브 속도 레이트를 변경하는 것과 연관되는지를 결정하고, 만약 그렇다면 카메라로부터 미가공 비디오 데이터를 수신하면서 실시간으로 네이티브 속도 레이트와 상이한 하나 이상의 수정된 속도 레이트의 수정된 비디오 데이터를 생성하도록 미가공 비디오 데이터 내의 적어도 하나의 프레임을 수정한다. 그 다음, 적어도 하나의 출력 비디오 레코딩 데이터를 메모리에 기록하며, 여기서 출력 비디오 레코딩 데이터는 네이티브 속도 레이트의 미가공 비디오 데이터, 수정된 속도 레이트의 수정된 비디오 데이터 및 미가공 비디오 데이터와 수정된 비디오 데이터의 조합 중 하나이다.
본 기술의 다른 양상에 따르면, 본 기술은 라이브 비디오 레코딩 데이터의 특수 효과 동작을 실시간으로 제어하기 위한 클라이언트측 전자 시스템일 수 있다. 이 시스템은 소프트웨어 명령들을 저장 및 실행하도록 각각 구성된 메모리 및 프로세서를 포함할 수 있다. 명령들은: 카메라로부터 네이티브 속도 레이트로 미가공 비디오 데이터를 획득하라는 요청을 수신하도록 구성되거나 구성가능한 미가공 데이터 수신 구성요소 -미가공 비디오 데이터는 실시간으로 카메라에 의해 캡쳐되는 이미지들에 적어도 부분적으로 대응할 수 있음-; 카메라로부터의 미가공 비디오 데이터의 네이티브 속도 레이트를 적어도 하나의 수정된 속도 레이트로 변경하라는 적어도 하나의 요청을 수신하도록 구성되거나 구성가능한 속도 레이트 결정 구성요소; 네이티브 속도 레이트를 변경하라는 요청을 수신하면, 수정될 미가공 비디오 데이터 내의 적어도 하나의 프레임 또는 위치를 식별하고, 카메라로부터 미가공 비디오 데이터를 수신하면서 실시간으로 네이티브 속도 레이트와 다른 수정된 속도 레이트의 수정된 비디오 데이터를 생성하도록 프레임 또는 위치를 수정하도록 구성되거나 구성가능한 프레임 수정 구성요소; 및 카메라로부터 미가공 비디오 데이터를 수신하면서 메모리 및 보조 메모리 중 하나에 출력 비디오 레코딩 데이터를 기록하도록 구성되거나 구성가능한 출력 비디오 레코딩 데이터 기록 구성요소로 조직화되며, 여기서 출력 비디오 레코딩 데이터는 네이티느 속도 레이트의 미가공 비디오 데이터, 수정된 속도 레이트의 수정된 비디오 데이터 및 미가공 비디오 데이터와 수정된 비디오 데이터의 조합 중 하나로부터 선택된다.
본 기술의 또 다른 양상에 따르면, 본 기술은 라이브 비디오 레코딩 데이터의 특수 효과 동작을 실시간으로 제어하는 방법일 수 있다. 이 방법은 적어도 하나의 프로세싱 유닛에 의해 미가공 비디오 데이터를 네이티브 속도 레이트로 수신하는 단계 -미가공 비디오 데이터는 실시간으로 카메라에 의해 캡쳐되는 이미지들에 적어도 부분적으로 대응함-, 및 프로세싱 유닛에 의해 프로세싱 유닛과 동작상 연관된 적어도 하나의 인터페이스로부터 적어도 하나의 입력을 수신하는 단계를 포함한다. 이 방법은 프로세싱 유닛에 의해서, 입력이 미가공 비디오 데이터의 네이티브 속도 레이트를 변경하는 것과 연관되는지를 결정하고 만약 그렇다면 카메라로부터 미가공 비디오 데이터를 수신하면서 실시간으로 네이티브 속도 레이트와 상이한 하나 이상의 수정된 속도 레이트로 수정된 비디오 데이터를 생성하도록 미가공 비디오 데이터를 수정하는 단계를 포함할 수 있다. 이 방법은 또한 프로세싱 유닛에 의해 적어도 하나의 메모리에 출력 비디오 레코딩 데이터를 기록하는 단계를 더 포함할 수 있으며, 여기서 출력 비디오 레코딩 데이터는 네이티브 속도 레이트의 미가공 비디오 데이터, 수정된 속도 레이트의 수정된 비디오 데이터 및 미가공 비디오 데이터와 수정된 비디오 데이터의 조합 중 하나이다.
본 기술의 다른 양상에 따르면, 본 기술은 라이브 비디오 레코딩 데이터의 실시간 특수 효과 동작을 제어하기 위한 시스템일 수 있다. 이 시스템은 미가공 비디오 데이터를 네이티브 속도 레이트로 제공하도록 구성되거나 구성가능한 적어도 하나의 카메라 -미가공 비디오 데이터는 카메라에 의해 캡쳐되는 이미지들에 적어도 부분적으로 대응함- , 적어도 하나의 메모리 유닛, 그리고 카메라 및 메모리 유닛과 동작상 통신하는 적어도 하나의 프로세싱 유닛을 포함한다. 프로세싱 유닛은 카메라로부터 미가공 비디오 데이터를 실시간으로 수신하고, 프로세싱 유닛과 동작가능하게 연관된 적어도 하나의 인터페이스로부터 입력을 수신하도록 구성되거나 구성가능하다. 프로세싱 유닛은 또한, 입력이 미가공 비디오 데이터의 네이티브 속도 레이트를 변경하는 것과 연관되는지 여부를 결정하고, 만약 그렇다면 카메라로부터 미가공 비디오 데이터를 수신하면서 실시간으로 네이티브 속도 레이트와 상이한 하나 이상의 수정된 속도 레이트로 수정된 비디오 데이터를 생성하기 위해 미가공 비디오 데이터에서 적어도 하나의 프레임을 수정하도록 구성되거나 구성가능하다. 그 다음 프로세싱 유닛은 적어도 하나의 출력 비디오 레코딩 데이터를 메모리에 기록하도록 구성되거나 구성가능하며, 여기서 출력 비디오 레코딩 데이터는 네이티브 속도 레이트의 미가공 비디오 데이터, 수정된 속도 레이트의 수정된 비디오 데이터 및 미가공 비디오 데이터와 수정된 비디오 데이터의 조합 중 하나이다.
본 기술의 또 다른 양상에 따르면, 본 기술은 미가공 비디오 데이터를 네이티브 속도 레이트로 제공하도록 구성되거나 구성가능한 적어도 하나의 카메라와 동작상 통신하는 프로세싱 유닛과 동작상 통신하는 인터페이스를 포함하는 인터페이스 시스템 -미가공 비디오 데이터는 카메라에 의해 캡쳐되는 이미지에 적어도 부분적으로 대응함- , 적어도 하나의 메모리 유닛 및 적어도 하나의 디스플레이를 포함할 수 있다. 인터페이스는 적어도 하나의 프로세서를 포함하는 프로세싱 유닛 또는 컴퓨터 시스템과 통신하는 적어도 하나의 컴퓨터 판독가능 저장 매체와 연관될 수 있다. 인터페이스는 카메라로부터 수신된 미가공 비디오 데이터의 원하는 속도 레이트와 연관된 입력을 생성하도록 구성되거나 구성가능한 부분을 포함하는 그래픽 사용자 인터페이스일 수 있다. 프로세싱 유닛은 카메라로부터 미가공 비디오 데이터를 수신하면서 실시간으로 미가공 비디오 데이터의 네이티브 속도 레이트와 상이한 속도 레이트를 갖는 수정된 비디오 데이터를 생성하도록 미가공 비디오 데이터가 수정되어야 하는지를 결정하는 데에 입력을 사용하도록 구성되거나 구성가능하다. 인터페이스는 카메라로부터 미가공 비디오 데이터를 수신하면서 실시간으로 출력 비디오 레코딩 데이터를 디스플레이하도록 구성되거나 구성가능할 수 있다. 출력 비디오 레코딩 데이터는 입력에 따라서 미가공 비디오 데이터와 수정된 비디오 사이의 전이를 갖는, 미가공 비디오 데이터와 수정된 비디오 데이터의 조합을 포함하도록 구성되거나 구성가능할 수 있다.
본 기술의 다른 양상에 따르면, 본 기술은 라이브 비디오 레코딩 데이터의 실시간 특수 효과 동작을 제어하기 위한 컴퓨터-구현 방법일 수 있다. 이 방법은 적어도 하나의 프로세싱 유닛에 의해, 프로세싱 유닛과 동작 가능하게 연관된 적어도 하나의 인터페이스로부터의 사용자 입력에 의한 요청에서 카메라로부터의 네이티브 속도 레이트로 미가공 비디오 데이터를 수신하는 단계를 포함할 수 있으며, 여기서 미가공 비디오 데이터는 카메라에 의해 캡쳐되는 이미지들에 적어도 부분적으로 대응한다. 이 방법은 입력이 미가공 비디오 데이터의 네이티브 속도 레이트를 변경하는 것과 연관되는지를 결정하고 만약 그렇다면 카메라로부터 미가공 비디오 데이터를 수신하면서 실시간으로 네이티브 속도 레이트와 상이한 하나 이상의 수정된 속도 레이트를 갖는 수정된 비디오 데이터를 생성하도록 미가공 비디오 데이터를 수정하는 단계를 포함할 수 있다. 이 방법은 메모리에 적어도 하나의 출력 비디오 레코딩 데이터를 기록하는 단계를 더 포함할 수 있고, 여기서 출력 비디오 레코딩 데이터는 네이티브 속도 레이트의 미가공 비디오 데이터, 수정된 속도 레이트의 수정된 비디오 데이터 및 미가공 비디오 데이터와 수정된 비디오 데이터의 조합 중 하나이다.
본 기술의 일부 실시예들에서, 이 방법은 미가공 비디오 데이터가 카메라로부터 메모리에 기록되는 것을 배제하는 단계를 포함할 수 있다.
본 기술의 일부 실시예들에서, 입력은 네이티브 속도 레이트를 변경하고 그 후 미가공 비디오 데이터를 메모리에 기록하는 것과 연관되지 않는다.
일부 실시예들에서, 이 방법은 수정된 속도 레이트가 네이티브 속도 레이트보다 작은지를 결정하는 단계를 포함할 수 있고, 만약 그렇다면 미가공 비디오 데이터의 수정은 수정된 비디오 데이터를 생성하기 위해 미가공 비디오 데이터에 적어도 하나의 새로운 프레임을 추가하는 단계를 포함한다.
일부 실시예들에서, 이 방법은 새로운 프레임을 생성하기 위해 적어도 하나의 미가공 프레임을 복사하는 단계 및 미가공 프레임에 인접한 미가공 비디오 데이터에 새로운 프레임을 추가하는 것을 포함하는, 새로운 프레임 추가 단계를 포함할 수 있다.
일부 실시예들에서, 새로운 프레임은 각각이 미가공 비디오 데이터로부터 적어도 하나의 미가공 프레임의 복사인 복수의 새로운 프레임일 수 있다.
본 기술의 일부 실시예들에서, 새로운 프레임들 각각은 미가공 프레임에 인접한 또는 미가공 비디오 데이터의 제 2 미가공 프레임에 인접한 미가공 비디오 데이터에 추가될 수 있다.
본 기술의 일부 실시예들에서, 이 방법은 수정된 속도 레이트가 네이티브 속도 레이트보다 큰지를 결정하는 단계를 포함할 수 있고, 만약 그렇다면 미가공 비디오 데이터의 수정은 미가공 비디오 데이터로부터 적어도 하나의 제 1 미가공 프레임을 제거하여 수정된 비디오 데이터를 생성하는 단계를 포함할 수 있다.
본 기술의 일부 실시예에서, 이 방법은 제거될 제 1 미가공 프레임을 선택하는 단계, 그 다음 미가공 비디오 데이터로부터 제 1 미가공 프레임을 제거하여 수정된 비디오 데이터를 생성하는 단계를 포함하는, 제 1 미가공 프레임의 제거 단계를 포함할 수 있다.
일부 실시예들에서, 인터페이스는 네이티브 속도 레이트 또는 수정된 속도 레이트와 연관된 입력을 생성하도록 구성되거나 구성가능한 부분을 포함하는 그래픽 사용자 인터페이스일 수 있고, 인터페이스는 출력 비디오 레코딩 데이터를 디스플레이하도록 구성되거나 구성가능하다.
일부 실시예들에서, 출력 비디오 레코딩 데이터는 미가공 비디오 데이터와 수정된 비디오 데이터의 조합일 수 있고, 수정된 비디오 데이터는 입력에 따라서 미가공 비디오 데이터와 서브세트들 중 임의의 하나 또는 임의의 서브세트들 사이의 전이를 가지고 각각이 입력에 의존하는 속도 레이트를 갖는 다수의 서브세트을 포함하도록 구성되거나 구성가능하며, 출력 비디오 레코딩 데이터는 카메라로부터 미가공 비디오 데이터를 수신하면서 실시간으로 그래픽 사용자 인터페이스에 디스플레이된다.
당연히, 아래에서 기술될 본 기술의 추가적인 특징들이 존재하며 이들은 첨부된 청구범위의 주제를 형성할 것이다.
본 기술은 아래의 발명의 상세한 설명을 고려하여 더욱 잘 이해될 것이며 위에 기술된 것들과는 다른 대상이 명백해질 것이다. 이러한 설명은 여기에 첨부된 도면을 참조한다:
도 1은 본 기술의 원리에 따라 구성된 실시간 비디오 특수 효과 시스템의 실시예의 블록도이다.
도 2는 본 기술의 실시간 레코딩 속도 제어 방법의 블록도이다.
도 3a는 본 기술의 교시에 따른 네이티브 프레임 레이트의 예를 나타내는 일련의 비디오 프레임들을 표현한 도면이다.
도 3b는 2x 네이티브 프레임 레이트의 패스트 모션 속도에 따른 프레임 드롭의 예를 나타내는 일련의 비디오 프레임들을 표현한 도면이다.
도 3c는 3x 네이티브 프레임 레이트의 패스트 모션 속도에 따른 프레임 드롭의 예를 나타내는 일련의 비디오 프레임들을 표현한 도면이다.
도 3d는 -2x 네이티브 프레임 레이트의 느린 모션 속도에 따른 프레임 복사를 이용하는 프레임 추가의 예를 나타내는 일련의 비디오 프레임들을 표현한 도면이다.
도 3e는 -3x 네이티브 프레임 레이트의 느린 모션 속도에 따른 프레임 복사를 이용하는 프레임 추가의 예를 나타내는 일련의 비디오 프레임들을 표현한 도면이다.
도 3f는 -2x 네이티브 프레임 레이트의 느린 모션 속도에 따른 프레임 블렌딩을 이용하는 프레임 추가의 예를 나타내는 일련의 비디오 프레임들을 표현한 도면이다.
도 3g는 -3x 네이티브 프레임 레이트의 느린 모션 속도에 따른 프레임 블렌딩을 이용하는 프레임 추가의 예를 나타내는 일련의 비디오 프레임들을 표현한 도면이다.
도 4는 본 기술의 실시예를 구현하는데 사용될 수 있는 전자 컴퓨팅 디바이스에 내장된 예시적인 집적 회로 칩을 도시한다.
도 5는 본 기술의 실시예를 구현하는데 사용될 수 있는 예시적인 전자 컴퓨팅 디바이스를 도시한다.
도 6은 활용될 수 있는 서브루틴을 포함하는 전체 프로세스의 예시의 흐름도이다.
도 7은 가속 및/또는 감속 특수 효과가 실시간으로 활용되어야 하는지를 초기에 결정하는 메인 프로세스의 예의 흐름도이다.
도 8은 본 기술과 연관된 기록 비디오 스트림 서브루틴의 예의 흐름도이다.
도 9는 본 기술과 연관된 특수 효과 서브루틴 적용의 예의 흐름도이다.
도 10은 본 기술과 연관된 가속 서브루틴의 예의 흐름도이다.
도 11은 본 기술과 연관된 패스트 모션 시뮬레이션을 위한 프레임 드롭 서브루틴의 예의 흐름도이다.
도 12는 본 기술과 연관된 고급 슬로우 모션 서브루틴의 예의 흐름도이다.
도 13은 본 기술과 연관된 슬로우 모션 시뮬레이션을 위한 프레임 추가 서브루틴의 예의 흐름도이다.
도 14는 본 기술과 연관된 슬로우 모션 시뮬레이션을 위한 가변적인 높은 레코딩 fps 서브루틴(120fps)의 예의 흐름도이다.
도 15는 본 기술과 연관된 일정한 프레임 레이트 슬로우 모션 서브루틴의 예의 흐름도이다.
도 16은 본 기술과 연관된 슬로우 모션 시뮬레이션을 위한 일정한 높은 레코딩 fps 서브루틴(60fps)의 예의 흐름도이다.
도 17은 본 기술과 연관된 슬로우 모션 시뮬레이션을 위한 일정한 높은 레코딩 fps 서브루틴(120fps)의 예의 흐름도이다.
도 18은 본 기술과 연관된 슬로우 모션 시뮬레이션을 위한 일정한 높은 레코딩 fps 서브루틴(240fps)의 예의 흐름도이다.
도 19는 본 기술과 연관된 극도의 슬로우 모션 서브루틴의 예의 흐름도이다.
도 20은 본 기술과 연관된 슬로우 모션 및 패스트 모션을 시뮬레이션하기 위한 시간 확장 및 압축 서브루틴의 예의 흐름도이다.
도 21은 도 20의 시간 압축의 예를 나타내는 수 초당 일련의 연관된 레코딩 및 재생 비디오 세그먼트를 표현한 도면이다.
도 22는 본 기술과 연관된 슬로우 모션 및 패스트 모션을 시뮬레이션하기 위해 가변적인 재생 레이트를 사용하는 레코딩의 예의 흐름도이다.
도 23은 본 기술과 연관된 슬로우 모션 및 패스트 모션을 시뮬레이션하기 위해 도 22의 알고리즘을 사용하는 애플리케이션에 의해 제작된 비디오 파일을 재생하는 재생 디바이스의 예의 흐름도이다.
도 24는 본 기술과 연관된 사용자 인터페이스를 활용하는 사용자에 의한 가능한 프로세스의 예의 흐름도이다.
도 25는 본 기술의 인터페이스 시스템의 샘플 그래픽 사용자 인터페이스(GUI) 화면샷이다.
동일한 참조번호는 다양한 도면들에 걸쳐서 동일한 부분들을 지칭한다.
아래의 설명에서, 제한이 아닌 설명을 위한 목적으로, 본 기술의 철저한 이해를 제공하기 위해 구체적인 실시예, 절차, 기술 등과 같은 특정 세부사항들이 설명된다. 그러나 본 기술이 이러한 특정 세부사항으로부터 벗어나 다른 실시예에서 실시될 수 있음이 당업자에게 명백할 것이다.
비디오 레코딩은 모션을 생성하기 위해 하나의 속도 레이트로 디스플레이되는 일련의 프레임 또는 픽쳐들의 그룹으로 이루어짐이 알려져 있다. 이들 이미지들의 프레임 또는 비디오는 비디오의 재생시에 버퍼링될 수 있는 디지털 프레임 데이터로서 특징지어질 수 있다. 프레임 레이트(초당 프레임 또는 fps로 표현됨)는 이들 연속적인 프레임들이 디스플레이 상에 나타나는 주파수(레이트)이다. 이것은 필름 및 비디오 카메라, 컴퓨터 그래픽 및 모션 캡쳐 시스템에 동일하게 적용될 수 있다. 프레임 레이트는 또한 프레임 주파수로도 지칭될 수 있으며, 헤르츠(hertz)로 표현될 수 있다.
비디오의 실시간 레코딩 및/또는 재생은 전형적으로 30fps의 레이트로 수행된다. 이는 비디오의 재생을 가속 또는 감속하는 몇몇 상황들에서 바람직하다. 이것은 전형적으로 디스플레이 디바이스 등과 같은 기존의 구성요소와 호환가능성을 유지하기 위해 초당 30fps로 레코딩 및 재생 프레임을 유지하면서 수행된다. 예를 들어, 30fps를 유지하면서 표준 실시간 재생 속도로부터 소정의 백분율만큼 비디오의 재생을 가속시키고자 하는 경우, 30 프레임에 대해 분할된 시간에서 특정 개수의 프레임들의 정보 또는 데이터가 재생되어야 한다. 이것을 생성하기 위한 방안은, 레코딩 비디오에서 프레임의 모든 사전결정된 수 중 하나의 프레임을 스킵하여 비디오의 적절한 수의 프레임이 30fps로 디스플레이되도록 하는 것이다. 이러한 알려진 시스템 및 방법은 30fps 레코딩으로부터 프레임을 스킵하는 사후 레코딩 프로세스로서 제공된다. 레코딩은 특수 효과가 없는 30fps에서 실시간으로 메모리에 기록된다.
본 기술은 특히 아마추어 필름 제조자에게 있어서 시간 및 자원 비용이 들 수 있는, 시간 수정 특수 효과를 삽입하기 위한 "사후 편집" 문제를 해결한다.
또한, 본 기술은 레코딩 프로세스 중에 사용자가 모션 레코딩 속도를 실시간으로 조정할 수 없는, 패스트 모션 또는 슬로우 모션으로 모션 레코딩 속도를 사전설정하는 문제를 해결한다.
또한 추가로, 본 기술은 사용자가 모션 레코딩 속도를 연속적으로 조정하고 레코딩 프로세스 동안 패스트 모션으로부터 슬로우 모션으로 실시간으로 변경할 수 없는, 모션 레코딩 속도를 사전설정하는 문제를 해결한다.
본 기술은 모든 디바이스에 대한 하드웨어 지원을 필요로 하는 문제를 완화 및 해결한다. 슬로우 모션을 시뮬레이션하기 위해 소프트웨어 알고리즘을 사용함으로써, 디바이스가 의존적이지 않으며 결과적인 파일은 하드웨어 지원되는 슬로우 모션 비디오보다 훨씬 더 작다.
전술된 디바이스가 그들 각각의 특정 목적 및 요건을 충족하지만, 전술된 디바이스 또는 시스템은 레코딩이 진행 중인 동안 비디오 레코딩에서 특수 효과를 생성하는 것을 가능하게 하는 실시간 비디오 특수 효과 시스템 및 방법은 기술하지 않는다. 본 기술은 추가로 카메라에 의해 제공되는 프레임 스트립으로부터 프레임을 실시간으로 추가 또는 제거함으로써 종래 기술과 관련한 단점 중 하나 이상을 극복한다.
또한, 레코딩이 진행되는 동안 실시간으로 레코딩의 속도 및 특수 효과를 적용하는 지속 시간을 사용자가 변경하기 위한 알려진 인터페이스가 존재하지 않는다. 또한, 장면은 상대적으로 고정되어야 하며, 이때 카메라는 패닝하지 않거나 또는 동작에 후속한다. 이러한 알려진 시스템과 관련된 알고리즘은 카메라가 장면에 안정적으로 고정되어 있는 동안 모션 센서를 사용하며 장면의 나머지가 고정된 채로 피사체가 장면을 횡단해야 한다.
본 기술은 레코딩 또는 저장 이전에 카메라로부터 프레임을 실시간으로 수정하는 전자 디바이스와 연관된 사용자 인터페이스를 활용할 수 있다.
레코딩이 진행되는 동안 비디오 레코딩에서 특수 효과를 생성하기 위해 사용될 수 있는 새롭고 신규한 실시간 비디오 특수 효과 시스템 및 방법에 대한 필요성이 존재한다. 이와 관련하여, 본 기술은 이러한 필요성을 실질적으로 충족시킨다. 이러한 측면에서, 본 기술에 따른 실시간 비디오 특수 효과 시스템 및 방법은 종래 기술의 통상적인 개념 및 설계로부터 실질적으로 벗어나지 않고, 일차적으로 레코딩이 진행되는 동안 비디오 레코딩에서 특수 효과를 생성하고자 하는 목적을 위해 개발된 디바이스를 제공한다.
본 기술의 사용자는 그들이 가진 지원되는 운영 시스템 및 다른 내장된 디바이스 상에서 실행되는 디바이스의 앱으로 프로그램된 사용자 인터페이스를 사용함으로써 사용자 제어되는 가변적인 시간 수정의 특수 효과, 즉 패스트 모션 또는 슬로우 모션을 포함하는 비디오를 "실시간으로" 제작할 수 있다. 제작된 비디오는 레코딩 중에 실시간으로 입력된 모든 시간 수정 명령으로 한 번에서 취해진다.
예시적인 목적을 위해, 본 기술은 30fps로 설정된 비디오 프레임 레이트를 활용할 수 있으며, 이는 레코딩 중에 초당 30 프레임을 발생시킨다.
본 기술의 일부 실시예에서, 사용자는 본 기술의 고속 순방향 옵션을 이용할 수 있으며, 이는 설정된 고속 순방향 레이트(예로서, lx, 2x, 3x 등)에 따라 프레임을 드롭시킨다. 만약 사용자가 2x 고속 순방향 비디오를 설정하면, 본 기술은 제 1 프레임을 기록기에 첨부하고 제 2 프레임을 스킵하며, 이어서 제 3 프레임을 기록하고, 그 다음 제 4 프레임을 스킵하는 식으로 계속될 수 있다. 레코딩된 결과 비디오는 30fps를 유지하면서 실시간으로 사전정의된 고속 순방향 속도를 갖는다.
일부 실시예들에서, 사용자는 본 기술의 슬로우 모션 옵션을 이용할 수 있고, 이는 동일한 프레임을 두 번 첨부함으로써 이러한 프레임을 반복하여 레코딩된 최종 비디오가 슬로우 모션을 갖도록 한다. 예를 들어, 만약 사용자가 2x 저속 비디오를 설정하면, 본 기술은 제 1 프레임을 기록기에 첨부하고, 동일한 프레임을 다음 시간/프레임 슬롯에 첨부할 수 있다. 레코딩된 결과적인 비디오는 30fps를 유지하면서 실시간으로 사전정의된 슬로우 모션 속도를 갖는다.
본 기술은 사용자가 현재 기술 알고리즘이 커맨드를 처리한 직후에 비디오를 재생할 때 장면들의 재생 속도가 레코딩 중에 커맨드와 대응하도록, 커스텀 사용자 인터페이스의 사용을 통해 레코딩 중에 레코딩 디바이스(및 임의의 다른 비디오 레코딩 디바이스) 레코딩 속도 및 다른 카메라 설정을 제어하는 것을 가능하게 한다. 본 기술은 레코딩 디바이스의 프레임 레이트를 증가시킬 필요 없이 소프트웨어 시뮬레이션과 이를 달성하며, 디바이스 의존적이지 않고 모든 플랫폼을 가로질러 작업한다.
본 기술의 추가 양상은 레코딩이 진행되는 동안 레코딩 디바이스의 프레임 레이트를 증가시킬 수 있다는 것이다. 이것은 제한된 수의 지원 하드웨어에 대한 애플리케이션 프로그래밍 인터페이스(API) 액세스를 필요로 하며, 지원되는 디바이스의 수를 제한하는 산업 표준 API가 존재하지 않는다. 디스플레이는 정상 속도로부터 3x 더 빠른, 또는 -3x 더 느린 (4x, 5x 또는 그 이상일 수 있다) 현재 시간 레코딩 속도를 나타낸다. 사용자는 인터페이스를 활용하여 레코딩 속도를 제어할 수 있다.
커스텀 사용자 인터페이스의 사용이 용이한 것과 같이 본 기술이 갖는 다수의 장점이 존재하며, 사용자는 레코딩이 진행되는 동안 실시간으로 비디오에 시간 수정의 특수 효과들을 추가할 수 있다. 이것은 비디오의 레코딩이 진행되는 동안 사용자가 특수 효과(가변적인 패스트 및 슬로우 모션 레코딩 속도)를 갖는 비디오를 제작할 수 있기 때문에 기존의 기술에 비해 유리하다. 이것은 별도의 비디오 편집 소프트웨어를 필요로 하고/하거나 편집을 위해 비디오 편집자에 비용을 지불하지 않음으로써 이러한 유형의 특수 효과를 갖는 비디오를 제작하는 시간 및 비용을 감소시키고 유사한 비디오를 제작할 수 있다. 사용자는 레코딩이 완료되고 디바이스가 특수 효과를 추가하는 프로세싱을 하기 위한 짧은 처리 시간 및 구현된 특수 효과를 갖는 새로운 비디오가 자동으로 제작되는 즉시 특수 효과를 갖는 직접 만든 비디오 관람을 즐길 수 있다.
실시간으로 특수 효과를 사용자가 수동 제어하는 다른 이점은 사용자가 장면의 이동과 함께 패닝(pan)할 수 있고, 동작의 피크 모멘트를 캡쳐하고 정확한 시간에 그리고 원하는 만큼 오랫동안 계속하여 가변적인 슬로우/패스트 모션을 사용한 다음, 사용자가 레코딩하는 정상 속도로 되돌아갈 수 있다는 점이다.
또 다른 장점은 본 기술이 작업에 대한 슬로우 또는 패스트 모션 특수 효과에 대해 하드웨어 의존적이지 않다는 점이다. 소프트웨어 알고리즘은 슬로우 또는 패스트 모션을 시뮬레이션한다.
또 다른 장점은, 수동 사용자 인터페이스를 이용하여, 카메라가 비디오에 대한 특수 효과를 적용하기 위해 "액션"을 결정하도록 AI 소프트웨어에 대해 고정 장면에서 포인팅하는 동안 중단 상태를 유지할 필요가 없다는 점이다.
다름 장점은 본 기술이 원격 카메라 피드, 조이스틱, 망막 스캐너, 바디 수트 제어기, 온-화면 피사물 제스처 및 촉각 사용자 인터페이스를 포함하지만 이것으로 제한되지 않는 입력을 수용할 수 있다는 것이다.
일부 실시예들에서, 본 기술은 또한 기존의 비디오에 시간 수정 특수 효과를 추가하도록 적용될 수 있다. 사용자는 재생 시간 값에 대한 값을 이 경우에는 -3x 내지 4x로 제어 및 수정하기 위해, 스마트폰 또는 태블릿과 같은 호환가능한 디바이스 상에서 좌-우를 사용하기 용이한 동일한 친숙성으로 재생 시간을 가변적으로 제어할 수 있다. 디지털 프로세싱 기술이 비디오 상에 캡쳐된 프레임들 사이에 데이터 및 이미지들을 보간할 수 있을 만큼 충분히 진전되면, 시간 수정의 팩터에 추가적인 능력이 존재함을 이해할 수 있을 것이다.
사용자가 4x로 슬라이드하면, 레코딩된 속도는 정상 속도보다 최대 4x까지 더 빠르게 재생된다. 사용자가 -3x로 슬라이드하면, 레코딩된 속도는 정상 속도보다 최대 3x 더 느리게 재생된다.
일부 실시예들에서, 미가공 비디오 데이터는 스트리밍 비디오 데이터, 비디오, 오디오, 심도, 오브젝트 식별, 히스토그램 및 이들의 조합을 포함하지만 이에 제한되지 않는 데이터를 포함할 수 있다.
일부 양상들에서, 프로세싱 유닛은 본 기술은 미가공 비디오 데이터를 인터셉트할 수 있도록 미가공 비디오 데이터가 카메라로부터 메모리 유닛에 기록되는 것을 배제하도록 구성되거나 구성가능할 수 있다.
일부 실시예들에서, 입력은 수정된 속도 레이트가 기반하는 하나 이상의 원하는 속도 레이트 값일 수 있다. 여기서, 수정된 속도 레이트는 네이티브 속도 레이트보다 작은 것 또는 네이티브 속도 레이트보다 큰 것 중 하나일 수 있다.
수정된 속도 레이트가 네이티브 속도 레이트보다 작으면, 프로세싱 유닛은 수정된 비디오 데이터를 생성하기 위해 적어도 하나의 프레임을 미가공 비디오 데이터에 추가하도록 구성되거나 구성가능할 수 있다.
수정된 속도 레이트가 네이티브 속도 레이트보다 크면, 프로세싱 유닛은 수정된 비디오 데이터를 생성하기 위해 미가공 비디오 데이터로부터 적어도 하나의 프레임을 제거하도록 구성되거나 구성가능할 수 있다.
입력이 네이티브 속도를 변경하라는 요청이 아닌 경우, 프로세싱 유닛은 미가공 비디오 데이터로부터 모든 프레임들을 유지하고 미가공 비디오 데이터를 메모리에 기록하도록 구성되거나 구성가능할 수 있다.
일부 실시예들에서, 인터페이스는 네이티브 속도 레이트 또는 수정된 속도 레이트와 연관된 입력을 생성하도록 구성되거나 구성가능한 부분을 포함하는 그래픽 사용자 인터페이스일 수 있다. 그래픽 사용자 인터페이스는 카메라로부터 미가공 비디오 데이터를 수신하면서 실시간으로 출력 비디오 레코딩 데이터를 디스플레이하도록 구성되거나 구성가능할 수 있다. 출력 비디오 레코딩 데이터는 미가공 비디오 데이터와 수정된 비디오 데이터의 조합을 포함하도록 구성되거나 구성가능할 수 있으며, 미가공 비디오 데이터와 수정된 비디오 데이터 사이의 전이는 입력에 의존한다. 인터페이스는 조이스틱일 수 있거나 조이스틱을 활용할 수 있음이 이해될 수 있다.
또 다른 양상에서, 인터페이스는 프로세싱 유닛 또는 컴퓨터 시스템의 프로세서에 의해 실행될 때, 수정된 비디오 데이터를 생성하며 프로세싱 유닛으로부터 메모리 유닛으로 수정된 비디오 데이터를 기록하기 위해 프로세싱 유닛으로 하여금 카메라로부터의 미가공 비디오 데이터를 수신하면서 실시간으로 카메라로부터의 미가공 비디오 데이터를 프로세싱 유닛뿐 아니라 메모리 유닛으로 향하게 하고, 프로세싱 유닛으로부터의 미가공 비디오 데이터를 메모리 유닛에 기록하거나 또는 적어도 하나의 알고리즘을 미가공 비디오 데이터에 적용하라는 명령을 저장하는 적어도 하나의 컴퓨터 판독가능 저장 매체와 연관되어 동작가능할 수 있다.
본 기술의 또 다른 양상에 따르면, 본 기술은 카메라로부터 미가공 비디오 데이터를 수신하면서 실시간으로 하나 이상의 속도 레이트에서 비디오를 레코딩하는 방법일 수 있다. 이 방법은 적어도 하나의 프로세싱 유닛에 의해 카메라로부터의 미가공 비디오 데이터에 적어도 부분적으로 대응하는 적어도 부분적으로 이미지들을 캡쳐하면서 실시간으로 카메라로부터의 네이티브 속도 레이트로 미가공 비디오 데이터를 수신하는 단계, 및 프로세싱 유닛과 동작가능하게 연관된 적어도 하나의 인터페이스로부터 입력을 수신하는 단계를 포함한다. 이 방법은, 프로세싱 유닛에 의해 입력이 미가공 비디오 데이터의 네이티브 속도 레이트를 변경하는 것과 연관되는지를 결정하는 단계 및 만약 그렇다면 카메라로부터 미가공 비디오 데이터를 수신하면서 실시간으로 네이티브 속도 레이트와 상이한 하나 이상의 수정된 속도 레이트로 수정된 비디오 데이터를 생성하도록 미가공 비디오 데이터를 수정하는 단계를 포함할 수 있다. 이 방법은, 프로세싱 유닛에 의해 적어도 하나의 메모리에 출력 비디오 레코딩 데이터를 기록하는 단계를 더 포함할 수 있고, 여기서 출력 비디오 레코딩 데이터는 네이티브 속도 레이트의 미가공 비디오 데이터, 수정된 속도 레이트의 수정된 비디오 데이터 및 미가공 비디오 데이터와 수정된 비디오 데이터의 조합 중 하나이다.
본 기술의 일부 실시예들은 수정된 속도 레이트가 네이티브 속도 레이트보다 작은지를 결정하는 단계를 포함할 수 있고, 만약 그렇다면 미가공 비디오 데이터를 수정하는 단계는 수정된 비디오 데이터를 생성하기 위해 적어도 하나의 새로운 프레임을 미가공 비디오 데이터에 추가하는 단계를 포함할 수 있다.
일부 실시예들에서, 이 방법은 새로운 프레임을 생성하기 위해 적어도 하나의 미가공 프레임을 복사함으로써 새로운 프레임을 추가하는 단계 및 미가공 프레임에 인접한 미가공 비디오 데이터에 새로운 프레임을 추가하는 단계를 포함할 수 있다.
일부 실시예들에서, 추가될 새로운 프레임은 각각이 미가공 비디오 데이터로부터 적어도 하나의 미가공 프레임의 복사인 복수의 새로운 프레임일 수 있고, 여기서 새로운 프레임들은 복사된 미가공 프레임에 인접한 미가공 비디오 데이터에 추가된다.
일부 실시예들에서, 이 방법은 새로운 프레임을 생성하기 위해 적어도 2개의 미가공 프레임들을 프레임 블렌딩함으로써 새로운 프레임을 추가하는 단계 및 2개의 미가공 프레임들 사이의 미가공 비디오 데이터에 새로운 프레임을 추가하는 단계를 포함할 수 있다.
일부 실시예들에서, 추가될 새로운 프레임(들)은 각각이 미가공 비디오 데이터로부터 적어도 2개의 미가공 프레임들의 블렌드인 복수의 새로운 프레임일 수 있고, 새로운 프레임들은 블렌딩된 미가공 프레임들 사이의 미가공 비디오 데이터에 추가된다.
일부 실시예들에서, 새로운 프레임들 각각은 미가공 프레임에 인접한 또는 미가공 비디오 데이터의 제 2 미가공 프레임에 인접한 미가공 비디오 데이터에 추가될 수 있다.
일부 실시예들은 수정된 속도 레이트가 네이티브 속도 레이트보다 큰지를 결정하는 단계 및 만약 그렇다면 미가공 비디오 데이터를 수정하는 단계가 미가공 비디오 데이터로부터 적어도 하나의 제 1 미가공 프레임을 제거하여 수정된 비디오 데이터를 생성하는 단계를 포함할 수 있다.
일부 실시예들에서, 제 1 미가공 프레임을 제거하는 단계는 제거될 제 1 미가공 프레임을 선택하는 단계 및 그 후에 수정된 프레임을 생성하기 위해 미가공 비디오 데이터로부터 제 1 미가공 프레임을 제거하는 단계를 포함할 수 있다.
일부 실시예들에서, 인터페이스는 네이티브 속도 레이트 또는 수정된 속도 레이트와 연관된 입력을 생성하도록 구성되거나 구성가능한 부분을 포함하는 그래픽 사용자 인터페이스일 수 있으며, 인터페이스는 출력 비디오 레코딩 데이터를 디스플레이하도록 구성되거나 구성가능하다.
일부 실시예는 미가공 비디오 데이터 및 수정된 비디오 데이터의 조합인 출력 비디오 레코딩 데이터를 포함할 수 있다. 수정된 비디오 데이터는 입력에 따른 속도 레이트를 각각 갖는 다수의 서브세트들을 포함하도록 구성되거나 구성가능하다. 미가공 비디오 데이터와 서브세트들 중 임의의 하나 또는 서브세트들 중 임의의 서브세트 사이의 전이는 입력에 의존하며, 출력 비디오 레코딩 데이터는 카메라로부터 미가공 비디오 데이터를 수신하면서 실시간으로 그래픽 사용자 인터페이스에 디스플레이된다.
일부 실시예에서, 본 기술은 일정한 높은 레코딩 fps에서 극도의 슬로우 모션 서브루틴을 포함할 수 있다. 이 서브루틴은 변경되지 않은 비디오 스트림을 통과하거나 또는 사전결정된 횟수로 각각의 프레임의 복사를 만듬으로써 -8X 보다 크거나 같은 슬로우 모션 속도 범위에 대해 활용될 수 있다.
일부 실시예들에서, 본 기술은 레코딩이 중단된 후에 비디오 프로세싱 동안 재생 시간을 가속 또는 감속함으로써 슬로우 모션 및 패스트 모션을 위한 알고리즘을 제공하는 세그먼트 시간 압축 및 확장 서브루틴을 포함할 수 있다. 이 서브루틴은 디바이스의 레코딩 및/또는 재생 fps를 설정할 수 있고, 세그먼트 재생 fps및 레코드 fps를 부분적으로 활용하는 알고리즘을 이용하여 비디오 세그먼트 재생 fps를 레코딩 fps와 동일하게 설정할 수 있다.
일부 실시예들에서, 본 기술은 비디오 레코딩이 진행되는 동안 재생 프레임 레이트를 가속 또는 감속함으로써 슬로우 모션 및 패스트 모션을 위한 알고리즘을 제공하는 가변 재생 속도 레코드 서브루틴을 포함할 수 있다. 이러한 알고리즘은 비디오의 메타데이터에 내장된 패스트/슬로우 모션 커맨드를 갖는 정상 비디오를 제작할 수 있다.
일부 실시예들에서, 본 기술은 비디오 재생이 진행되는 동안 재생 프레임 레이트를 가속 또는 감속함으로써 슬로우 모션 및 패스트 모션 특수 효과들을 갖는 비디오 파일을 재생하기 위한 알고리즘을 제공하는 가변 재생 속도 재생 서브루틴을 포함할 수 있다.
따라서 본 기술의 상세한 설명이 보다 잘 이해될 수 있고 본 기술 분야에 대한 본 발명의 기여가 보다 잘 이해될 수 있도록 하기 위해 본 기술의 특징들이 광범위하게 개괄되었다.
본 기술의 다수의 목적, 특징 및 장점은 첨부된 도면을 참조하여 본 기술의 아래의 상세한 설명을 읽음에 따라 본 기술의 예시적인 실시예가 기술분야의 당업자에게 용이하게 명백해질 것이다.
이렇게, 본 개시내용이 기반하는 개념이 본 기술의 여러 목적을 수행하기 위한 다른 구조, 방법 및 시스템의 설계에 기초로서 용이하게 활용될 수 있음이 이해될 것이다. 그러므로, 청구범위는 본 기술의 사상 및 범주로부터 벗어나지 않는 한 이러한 등가의 구성을 포함하는 것으로 간주되어야 한다.
본 기술의 또 다른 목적은 레코딩이 진행되는 동안 비디오 레코딩에서 특수 효과를 생성하기 위한 실시간 비디오 특수 효과 시스템 및 방법을 제공하는 것이다. 이것은 사용자가 카메라로부터 비디오를 획득하면서 레코딩이 진행되기에 앞서 그리고 그 동안 비디오의 속도 레이트를 실시간으로 제어할 수 있게 한다.
이는 본 기술의 다른 목적과 함께, 본 기술을 특징짓는 신규성의 다양한 특징들과 더불어, 본 개시내용에 첨부된 청구범위에서 구체적으로 지적되며 본 개시내용의 일부를 형성한다. 본 기술, 그의 동작 이점들 및 그의 사용에 의해 획득되는 특정 목적들에 대한 더 나은 이해를 위해, 본 기술의 예시된 실시예들이 존재하는 첨부된 도면들 및 기술된 사항에 대해 참조가 이루어져야 한다. 본 기술의 다수의 목적이 본 명세서에서 식별되었지만, 청구된 본 기술은 식별된 목적들의 대부분 또는 전부를 충족시키는 것으로 제한되지 않으며 본 기술의 일부 실시예는 단지 하나의 이러한 목적을 만족시키거나 또는 전혀 만족시키지 않을 수 있음이 이해될 것이다.
이제 도면을 참조하면, 특히 도 1 내지 25를 참조하면, 본 기술의 실시간 비디오 특수 효과 시스템 및 방법의 일부 실시예들이 도시되었으며 일반적으로 참조번호(10)로 지정되었다. 전반적인 윤곽으로서, 시스템은 비디오 게임, 그래픽 사용자 인터페이스, 적어도 하나의 메모리를 포함하는 현실 세계 장면 또는 임의의 비디오 원격 비디오 피드의 비디오를 캡쳐하도록 구성된 카메라; 및 카메라, 그래픽 사용자 인터페이스 및 적어도 하나의 메모리에 동작가능하게 연결되거나 연결가능한 적어도 하나의 프로세싱 유닛을 포함한다. 적어도 하나의 프로세싱 유닛은: 캡쳐되는 비디오를 그래픽 사용자 인터페이스 상에서 정상 속도로 재생하며; 그래픽 사용자 인터페이스에 의해 수신된 사용자 입력에 응답하여 캡쳐되는 비디오의 그래픽 사용자 인터페이스 상의 비디오 재생 속도를 정상 재생 속도로부터 수정된 재생 속도로 변경하도록 구성된다.
이제 일부 실시예를 보다 상세하게 참조하면, 레코딩이 진행되는 동안 비디오 레코딩에서 특수 효과를 생성하기 위한 본 기술의 새로운 그리고 신규한 실시간 비디오 특수 효과 시스템 및 방법(10)이 도시되었으며, 도 1을 참조하여 기술될 것이다. 보다 구체적으로, 실시간 비디오 특수 효과 시스템 및 방법(10)은 카메라(12), 이미지 프로세서 또는 프로세싱 유닛(14), 프로세싱 유닛과 연관된 사용자 인터페이스(30), 저장 또는 메모리 유닛(18), 디스플레이 유닛(20)을 포함할 수 있다. 적어도 하나의 RAM 메모리 및/또는 적어도 하나의 비휘발성 장기 메모리가 프로세싱 유닛(14)과 동작가능하게 연결되거나 연결가능할 수 있다. 카메라(12)는 이미지 및/또는 비디오를 캡쳐할 수 있는 임의의 디바이스일 수 있으며, 마이크로폰(16)과 연관되거나 통합될 수 있음이 이해될 수 있다. 이미지 프로세싱 유닛(14)은 카메라(12), 마이크로폰(16), 메모리 유닛(18) 및/또는 디스플레이 유닛(20)과 동작상 통신한다. 이미지 프로세싱 유닛(14)은 카메라(12) 및/또는 마이크로폰(16)으로부터의 미가공 비디오 데이터를 인터셉트(intercept)하고, 적어도 하나의 알고리즘에 따라 미가공 비디오 데이터를 가능한 실시간으로 처리한 후, 메모리 유닛(18)에 출력/최종 비디오 레코딩 데이터를 기록하거/히거나 디스플레이 유닛(20)에 출력/최종 비디오 레코딩 데이터를 디스플레이한다.
시스템(10)은 하나 이상의 비디오 카메라(12), 하나 이상의 디스플레이 디바이스(20) 및 하나 이상의 집적 회로 또는 프로세서를 갖는 전자 디바이스의 완전한 비디오 시스템으로서 구성되거나 구성가능할 수 있다. 대안적으로, 이미징 프로세싱 유닛(14)은 전자 디바이스 또는 전자 디바이스의 구성요소에 내장된 모듈 또는 집적 회로 칩으로서 구성되거나 구성가능할 수 있다. 또한 대안에서, 시스템(10)은 그래픽 처리 디바이스(GPU), 디지털 신호 프로세서(DSP), 액티브 서버 페이지(ASP), 중앙 처리 디바이스(CPU), 가속 처리 디바이스(APU), 애플리케이션 특정 집적 회로(ASIC)와 같은, 그러나 이들로 제한되지는 않는 비디오 데이터 처리 디바이스로서 구성되거나 구성가능할 수 있다. 또한 대안에서, 시스템(10)은 전자 디바이스 또는 카메라를 실행시키거나 제어하는 운영 체제 또는 애플리케이션의 일부로서의 소프트웨어 또는 프로그래밍 코드로 구성되거나 구성가능할 수 있다.
카메라(12), 마이크로폰(16)및 디스플레이 유닛(20)을 포함하는 전자 디바이스는 스마트폰, 스마트워치, 태블릿, 노트북, 데스크탑 컴퓨터, 랩탑, DVD 플레이어, 텔레비전 디지털 카메라(포인트 및 슈트, 단일 렌즈 반사, 비디오 카메라, 하이 엔드 오디오/비주얼 기어), 아이웨어, 드론, 짐벌 및 다른 안정화제, 셀피 스틱, 폐쇄 회로 비디오 모니터링 시스템, 차량용 대시 캠, 내시경, 현미경, 텔레스코프, 카메라 및/또는 디스플레이 내장 회로, 의복, IoT("Internet of Things") 등일 수 있지만, 이에 한정되지 않는다.
도 2를 참조하면, 프로세싱 유닛(14)은 요청된 레코딩 속도의 사용자 선택의 입력을 수신하도록 구성되거나 구성가능할 수 있다. 카메라(12)로부터의 미가공 비디오 데이터는 이미징 프로세싱 유닛(14)으로 전환될 수 있으며, 여기서 프로그램 및/또는 알고리즘은 카메라(12)로부터 미가공 비디오 데이터에 포함된 미가공 프레임들을 수정 또는 유지한다. 데이터 스트림 내의 미가공 프레임들은 이미징 프로세싱 유닛(14)에 의해 실시간으로 수정 또는 유지된 후에, 메모리 유닛(18) 및/또는 디스플레이 유닛(20)으로 전달된다.
프레임 추가, 프레임 블렌딩 및 프레임 드롭(14)을 이용하는 이미징 프로세스 유닛의 동작들의 예가 도 3a 내지 3g에 도시되었다. 작동 시에 또는 동작 중에, 이미징 프로세싱 유닛(14)은 디스플레이 유닛(20)에 의한 적절한 프리젠테이션을 위해 미가공 프레임 레이트로 일련의 프레임 #1­#n을 포함하는 미가공 비디오 데이터(22)를 카메라(12)로부터 인터셉트한다. 예시적인 목적을 위해, 도 3a에 도시된 프레임 레이트는 30fps일 수 있다. 이미징 프로세싱 유닛(14)은 미가공 프레임들(22)을 수신한 다음 이미징 프로세싱 유닛(14)에 의해 수신된 하나 이상의 입력 신호들에 따라 미가공 프레임들을 수정 또는 유지할 수 있다. 만약 이미징 프로세싱 유닛(14)이 프레임 속도 레이트의 조정을 요청하는 입력 신호를 수신하지 않으면 미가공 비디오 데이터(22)에 포함된 모든 미가공 프레임들은 전자 디바이스의 메모리 유닛과 같은 다른 구성요소를 통과하며, 이는 도 3a에 가장 잘 도시되었다.
일부 실시예들에서, 이미징 프로세싱 유닛(14)이 네이티브 프레임 레이트의 2x로의 가속 또는 고속 순방향 디스플레이를 나타내는 패스트 모션 레코딩 동작과 연관된 특수 효과 입력 신호를 수신하면, 이미징 프로세싱 유닛(14)은 미가공 비디오 데이터(22)를 적절하게 수정한다. 그에 따라, 미가공 프레임(22)은 도 3b에 가장 잘 도시된 바와 같이, 모든 제 2 프레임이 드롭되는 알고리즘을 이용하여 프로세싱된다. 미가공 프레임 #1이 기록기(writer)에 첨부될 수 있고, 미가공 프레임 #2가 스킵/드롭될 수 있고, 그 다음 미가공 프레임 #3이 기록될 수 있으며 그 다음 미가공 프레임 #4가 스킵/드롭될 수 있으며, 이는 수정된 또는 출력 비디오 레코딩 데이터(24)가 2x 패스트 모션 속도로 생성될 때까지 계속된다. 이러한 프로세스는 실시간으로 수행되며, 패스트 모션 출력 비디오는 미가공 비디오 데이터(22) 대신에 레코딩되고/되거나 실시간으로 디스플레이된다.
일부 실시예들에서, 이미징 프로세싱 유닛(14)이 네이티브 프레임 레이트의 3x로의 가속 또는 고속 순방향 디스플레이를 나타내는 패스트 모션 레코딩 동작과 연관된 특수 효과 입력 신호를 수신하면, 이미징 프로세싱 유닛(14)은 미가공 비디오 데이터(22)를 적절하게 수정한다. 그에 따라, 미가공 프레임(22)은 도 3c에 가장 잘 도시된 바와 같이, 모든 제 2 및 제 3 프레임이 드롭되는 알고리즘을 이용하여 프로세싱된다. 미가공 프레임 #1이 기록될 수 있고, 미가공 프레임 #2 및 #3이 스킵/드롭될 수 있고, 그 다음 미가공 프레임 #4가 기록될 수 있고 그 후에 미가공 프레임 #5 및 #6이 스킵/드롭될 수 있고, 그 후에 미가공 프레임 #7가 기록될 수 있으며, 이는 수정된 또는 출력 비디오 레코딩 데이터(24)가 3x 패스트 모션 속도로 생성될 때까지 계속된다. 이러한 프로세스는 실시간으로 수행되며, 패스트 모션 출력 비디오는 미가공 비디오 데이터(22) 대신에 레코딩되고/되거나 실시간으로 디스플레이된다.
예를 들어, 이미징 프로세싱 유닛(14)이 네이티브 프레임 레이트의 -2x로의 감속 또는 슬로우 모션 디스플레이를 나타내는 슬로우 모션 레코딩 동작과 연관된 특수 효과 입력 신호를 수신한다. 그에 따라, 미가공 프레임(22)은 도 3d에 가장 잘 도시된 바와 같이, 모든 프레임이 복제/반복되는 알고리즘을 이용하여 프로세싱된다. 미가공 프레임 #1이 기록기에 첨부될 수 있고, 그 다음 미가공 프레임 #1이 복제되어 기록되고, 그 다음 미가공 프레임 #2가 기록되고, 그 다음 미가공 프레임 #2가 복제되어 기록되며, 이는 수정된 또는 출력 비디오 레코딩 데이터(24)가 -2x 슬로우 모션 속도로 생성될 때까지 계속된다. 이러한 프로세스는 실시간으로 수행되며, 슬로우 모션 출력 비디오는 미가공 비디오 데이터(22) 대신에 레코딩되고/되거나, 실시간으로 또는 레코딩이 중단되고 사후 레코딩 알고리즘이 레코딩 중에 들어온 커맨드의 프로세싱을 완료한 직후에 디스플레이된다.
일부 실시예들에서, 이미징 프로세싱 유닛(14)이 네이티브 프레임 레이트의 -3x로의 감속 또는 슬로우 모션 디스플레이를 나타내는 슬로우 모션 레코딩 동작과 연관된 특수 효과 입력 신호를 수신하면, 이미징 프로세싱 유닛(14)은 미가공 비디오 데이터(22)를 적절하게 수정한다. 그에 따라, 미가공 프레임은 도 3e에 가장 잘 도시된 바와 같이, 모든 프레임이 적어도 2번 복제/반복되는 알고리즘을 이용하여 프로세싱된다. 미가공 프레임 #1이 기록기에 첨부될 수 있고, 그 다음 미가공 프레임 #1이 2회 복제되어 각각이 기록되고, 그 다음 미가공 프레임 #2가 기록되고, 그 다음 미가공 프레임 #2가 2회 복제되어 각각이 기록되고, 그 다음 미가공 프레임 #3이 기록되고, 그 다음 미가공 프레임 #3이 2회 복제되어 각각이 기록되며, 이는 수정된 또는 출력 비디오 레코딩 데이터(24)가 -3x 슬로우 모션 속도로 생성될 때까지 계속된다. 이러한 프로세스는 실시간으로 수행되며, 슬로우 모션 출력 비디오가 레코딩된다.
일부 실시예들에서, 이미징 프로세싱 유닛(14)이 네이티브 프레임 레이트의 -2x로의 감속 또는 슬로우 모션 디스플레이를 나타내는 슬로우 모션 레코딩 동작과 연관된 특수 효과 입력 신호를 수신한다. 그에 따라, 미가공 프레임(22)은 도 3f에 가장 잘 도시된 바와 같이, 2개의 인접한 프레임들의 "블렌딩"의 결과로서 새로운 프레임이 생성되는 알고리즘을 이용하여 프로세싱된다. 미가공 프레임 #1이 기록기에 첨부될 수 있고, 그 다음 미가공 프레임 #1이 하나의 새로운 프레임 #1a를 생성하도록 미가공 프레임 #2와 "블렌딩"되고, 그 다음 #1a가 기록되고, 그 다음 미가공 프레임 #2가 기록되고, 그 다음 미가공 프레임 #2가 하나의 새로운 프레임 #2a를 생성하도록 미가공 프레임 #3과 "블렌딩"되고, 그 다음 #2a가 기록되고, 그 다음 미가공 프레임 #3이 기록되고, 그 다음 미가공 프레임 #3이 하나의 새로운 프레임 #3a을 생성하도록 미가공 프레임 #4와 "블렌딩"되며, 그 다음 #3a가 기록되고, 이는 수정된 또는 출력 비디오 레코딩 데이터(24)가 -2x 슬로우 모션 속도로 생성될 때까지 계속된다. 이러한 프로세스는 실시간으로 수행되며, 슬로우 모션 출력 비디오는 미가공 비디오 데이터(22) 대신에 레코딩되고/되거나, 실시간으로 또는 레코딩이 중단되고 사후 레코딩 알고리즘이 레코딩 중에 들어온 커맨드의 프로세싱을 완료한 직후에 디스플레이된다.
일부 실시예들에서, 이미징 프로세싱 유닛(14)이 네이티브 프레임 레이트의 -3x로의 감속 또는 슬로우 모션 디스플레이를 나타내는 슬로우 모션 레코딩 동작과 연관된 특수 효과 입력 신호를 수신한다. 그에 따라, 미가공 프레임(22)은 도 3g에 가장 잘 도시된 바와 같이, 2개의 인접한 프레임들의 "블렌딩"의 결과로서 새로운 프레임이 생성되는 알고리즘을 이용하여 프로세싱된다. 미가공 프레임 #1이 기록기에 첨부될 수 있고, 그 다음 미가공 프레임 #1이 두 개의 새로운 프레임 #1a 및 #1b를 생성하도록 미가공 프레임 #2와 "블렌딩"되고, 그 다음 #1a 및 #1b가 기록되고, 그 다음 미가공 프레임 #2가 기록되고, 그 다음 미가공 프레임 #2가 두 개의 새로운 프레임 #2a 및 #2b를 생성하도록 미가공 프레임 #3과 "블렌딩"되고, 그 다음 #2a 및 #2b가 기록되고, 그 다음 미가공 프레임 #3이 기록되고, 그 다음 미가공 프레임 #3이 두 개의 새로운 프레임 #3a 및 #3b를 생성하도록 미가공 프레임 #4와 "블렌딩"되며, 그 다음 #3a 및 #3b가 기록되고, 이는 수정된 또는 출력 비디오 레코딩 데이터(24)가 -3x 슬로우 모션 속도로 생성될 때까지 계속된다. 이러한 프로세스는 실시간으로 수행되며, 슬로우 모션 출력 비디오는 미가공 비디오 데이터(22) 대신에 레코딩되고/되거나, 실시간으로 또는 레코딩이 중단되고 사후 레코딩 알고리즘이 레코딩 중에 들어온 커맨드의 프로세싱을 완료한 직후에 디스플레이된다.
추가의 패스트 및/또는 슬로우 모션 동작들은 전술된 것보다 더 큰 패스트 모션 또는 슬로우 모션 속도로 수행될 수 있음이 이해될 것이다. 패스트 모션 및 슬로우 모션 속도의 조합은 실시간으로 단일 미가공 비디오 데이터로 구현될 수 있음이 이해될 수 있다. 따라서 출력/최종 비디오 레코딩 데이터를 생성하는 것은 네이티브 속도 레이트, 패스트 모션 속도, 슬로우 모션 속도 또는 이들의 임의의 조합의 부분들을 포함한다.
도 4 및 5를 참조하면, 컴패니언 소프트웨어 애플리케이션은 이미지 프로세싱 유닛(14) 또는 이미지 프로세싱 유닛(14)과 동작가능하게 연관된 전자 컴퓨팅 디바이스, 머신 또는 시스템(2)과 연관되거나 및/또는 그에 의해 실행될 수 있다. 도 4는 구성요소 또는 전자 디바이스가 본 명세서에 논의된 임의의 하나 이상의 방법론을 수행하게 하기 위한 명령의 세트가 실행될 수 있는, 전자 디바이스(2)의 형태로, 카메라(12)와 같은 예시적인 기계 또는 그의 구성요소가 내장될 수 있는 집적 회로 칩(26)이 통합된 이미지 프로세싱 유닛(14)의 도식적인 표현이다. 이미지 프로세싱 유닛(14)을 포함하는 집적 회로 칩(26)은 그것의 동작을 위한 펌웨어를 포함하도록 구성되거나 구성가능할 수 있다. 집적 회로 칩(26)은 카메라(12), 디스플레이 유닛(20), 또는 전자 디바이스의 다른 구성요소들에 내장될 수 있음이 이해될 수 있다. 블루투스(Bluetooth®) 또는 다른 프로토콜을 통해 전자 디바이스 또는 카메라에 연결된 원격 제어가 활용될 수 있음이 이해될 수 있다.
집적 회로 칩(26)은 본 명세서에 기술된 방법론 또는 기능 중 임의의 하나 이상을 구현 또는 활용하는 명령 및 데이터 구조들(예로서, 명령)의 하나 이상의 세트가 저장된 컴퓨터 또는 기계 판독가능 매체를 포함할 수 있다. 명령은 인터페이스 또는 GUI로부터 동작 명령을 수신할 수 있는 이미지 프로세싱 유닛(14)의 동작을 위해 구성되거나 구성가능하다.
디바이스(2)는 (다수의 피드로부터의 동시 입력을 포함하는) 다수의 서로 다른 입력 및/또는 터치화면 및 GUI, 음파 또는 아음속 송신기, 수신기 및/또는 송수신기, 음성 커맨드, 블루투스®, 원격 제어기, 온-화면 제스처 커맨드 또는 적외선과 같은, 그러나 이들로 제한되지 않는 출력(I/O) 시스템을 더 포함할 수 있다. 디바이스(2)는 또한 비디오 레코딩 디바이스로부터 내부 메모리, 외부 메모리, 외부 고체-상태 드라이브(SSD) 또는 클라우드와 같은 메모리/스토리지 시스템으로 비디오 또는 이미지를 레코딩할 수 있다.
도 5는 전자 디바이스가 본 명세서에 논의된 임의의 하나 이상의 방법론을 수행하게 하기 위한 명령의 세트가 실행될 수 있는, 전자 디바이스(2)와 통합된 이미지 프로세싱 유닛(14)의 도식적인 표현이다.
다양한 예시적인 실시예들에서, 전자 디바이스(2)는 독립형 디바이스로서 동작하거나 또는 다른 디바이스에 연결(예로서, 네트워크화)될 수 있다. 네트워크화된 배치에서, 전자 디바이스는 서버-클라이언트 네트워크 환경에서 서버 또는 클라이언트 머신의 용량 내에서, 또는 피어-투-피어(또는 분산) 네트워크 환경에서 피어 기계(peer machine)로서 동작할 수 있다. 전자 디바이스는 개인용 컴퓨터(PC), 태블릿 PC, 셋톱 박스(STB), 개인 디지털 어시스턴트(PDA), 휴대 전화, 휴대용 뮤직 플레이어(예로서, MP3(Moving Picture Experts Group Audio Layer 3) 플레이어와 같은 휴대용 하드 드라이브 오디오 디바이스), 웹 어플라이언스, 네트워크 라우터, 스위치 또는 브리지, 또는 해당 디바이스에 의해 취해질 동작을 명시하는 (순차적 또는 그 외의) 명령들의 세트를 실행할 수 있는 임의의 기계일 수 있다. 또한, 단지 하나의 전자 디바이스만이 예시되었지만, "디바이스"라는 용어는 본 명세서에서 논의된 방법론들 중 임의의 하나 이상을 수행하기 위한 명령들의 세트(또는 다수의 세트들)를 개별적으로 또는 함께 실행하는 디바이스들의 임의의 컬렉션을 포함하도록 취해질 것이다.
예시적인 전자 디바이스(2)는 버스(bus)를 통해 서로 통신하는 프로세서 또는 다수의 프로세서(예로서, CPU, GPU, 또는 둘 모두), 그리고 메인 메모리 및/또는 정적 메모리를 포함한다. 다른 실시예들에서, 전자 디바이스(2)는 비디오 디스플레이(예로서, 액정 디스플레이(LCD))를 더 포함할 수 있다. 전자 디바이스(2)는 알파-숫자 입력 디바이스(들)(예로서, 키보드), 커서 제어 디바이스(예로서, 마우스), 음성 인식 또는 생체 인식 검증 유닛(도시되지 않음), 드라이브 유닛(디스크 드라이브 유닛으로도 지칭됨), 신호 생성 디바이스(예로서, 스피커), 범용 직렬 버스(USB) 및/또는 다른 주변 접속 및 네트워크 인터페이스 디바이스를 또한 포함할 수 있다. 다른 실시예들에서, 전자 디바이스(2)는 데이터를 암호화하기 위한 데이터 암호화 모듈(도시되지 않음)을 더 포함할 수 있다.
이미지 프로세싱 유닛(14)은 본 명세서에 기술된 방법론 또는 기능 중 임의의 하나 이상을 구현 또는 활용하는 하나 이상의 명령 및 데이터 구조(예로서, 명령)의 하나 이상의 세트가 저장되는 컴퓨터 또는 기계 판독가능 매체를 포함하는 드라이브 유닛과 동작 가능하게 연관되는 모듈일 수 있다. 명령은 또한, 전자 디바이스(2)에 의한 실행 동안 메모리 및/또는 프로세서 내에 완전히 또는 적어도 부분적으로 상주할 수 있다. 메모리 및 프로세서는 또한 기계 판독가능 매체를 구성할 수 있다.
명령은 또한 다수의 잘 알려진 전송 프로토콜(예로서, XML(Extensible Markup Language))중 임의의 하나를 이용하여 네트워크 인터페이스 디바이스를 통해 네트워크를 통해 전송 또는 수신될 수 있다. 기계 판독가능 매체가 예시적인 실시예에서 단일 매체로서 도시되었지만, "컴퓨터 판독가능 매체"라는 용어는 하나 이상의 세트의 명령어를 저장하는 단일 매체 또는 다수의 매체(예로서, 중심화 또는 분산 데이터베이스 및/또는 연관된 캐시 및 서버)를 포함하도록 취해져야 한다. 또한 "컴퓨터 판독가능 매체"라는 용어는 디바이스에 의한 실행을 위한 명령들의 세트를 저장, 인코딩, 또는 운반할 수 있고, 디바이스로 하여금 본 출원의 방법론들 중 임의의 하나 이상을 수행하게 하거나, 또는 이러한 명령들의 세트에 의해 활용되거나 이러한 명령들의 세트와 연관된 데이터 구조를 저장, 인코딩, 또는 운반할 수 있는 임의의 매체를 포함하도록 취해질 것이다. 따라서, "컴퓨터 판독가능 매체"라는 용어는 고체 상태 메모리, 광학 및 자기 매체, 그리고 반송파 신호를 포함하지만 이에 제한되지 않는 것으로 취해질 것이다. 이러한 매체는 또한 하드 디스크, 플로피 디스크, 플래시 메모리 카드, 디지털 비디오 디스크, 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM) 등을 포함할 수 있다. 본 명세서에 기술된 예시적인 실시예들은 컴퓨터 상에, 하드웨어 내에, 또는 소프트웨어 및 하드웨어의 조합 내에 설치된 소프트웨어를 포함하는 운영 환경 상에서 구현될 수 있다.
소프트웨어 애플리케이션은 전자 디바이스(2)의 임의의 메모리 내에 또는 전자 디바이스(2)와 통신하는 원격 컴퓨터 상에 저장되도록 구성되거나 구성가능하다. 소프트웨어 애플리케이션은 사용자가 카메라(12)에 의한 디폴트 프레임 속도 레이트를 변경하지 않고 레코딩될 비디오의 커스텀 프레임 속도 레이트를 정의할 수 있게 할 수 있는 인터페이스를 포함하도록 구성되거나 구성가능하다.
이제, 라이브 비디오 캡쳐 데이터의 특수 효과 동작을 실시간으로 제어하기 위한 방법을 참조한다. 윤곽으로서, 일부 실시예들에서 이 방법은 카메라를 이용하여 현실 세계 장면의 비디오를 캡쳐하는 단계; 캡쳐되는 비디오를 그래픽 사용자 인터페이스 상에서 정상 속도로 재생하는 단계; 그래픽 사용자 인터페이스에 의해 수신된 사용자 인터페이스 입력에 응답하여 레코딩되는 비디오의 그래픽 사용자 인터페이스 상의 재생 속도를 정상 재생 속도로부터 수정된 재생 속도로 변경하는 단계를 포함한다. 이제, 라이브 비디오 캡쳐 데이터의 특수 효과 동작을 실시간으로 제어하기 위한 일부 실시예에 따른 특정 프로세스에 대한 참조가 보다 상세하게 이루어질 것이다.
소프트웨어 애플리케이션 또는 인터페이스의 가능한 프로세스가 도 6, 7 및 24에 도시되었다. 인터페이스 및/또는 소프트웨어 애플리케이션은 카메라에 의해 제공되는 네이티브 속도 레이트를 변경하지 않고, 사용자가 사전정의된 비디오 레코딩 속도 레이트를 실시간으로 선택할 수 있게 한다. 이는 본 기술이 카메라 또는 디바이스 의존적이지 않게 한다. 도 6은 사용자 인터페이스, 디바이스 및 전체 프로세스와 연관된 서브루틴을 포함하는 본 기술의 전체 프로세스를 도시한다.
도 7을 참조하면, 카메라로부터 미가공 비디오 데이터 스트림에 대해 임의의 특수 효과 옵션이 요청되었는지를 결정하는 본 기술의 프로세스가 설명된다. 예시적인 목적을 위해, 특수 효과는 미가공 비디오 데이터 내의 프레임을 수정함으로써 비디오 속도 레이트를 변경하는 것일 수 있다. 프로세스는 전체 프로세스를 보조하기 위해 서브루틴 및/또는 서브프로세스들을 개시하도록 구성되거나 구성가능할 수 있다.
본 기술 소프트웨어 애플리케이션이 개시되고 사용자 인터페이스가 사용자에게 제공된다. 처음 단계는 사용자가 앱을 여는 단계(50)일 수 있다. 그 후에, 단계(51)는 사용자가 카메라 설정으로 가서 전자 디바이스의 카메라 또는 원격 비디오 피드 중 어느 것을 사용할지 선택할 수 있게 한다. 그 다음, 프로세스는 사용자가 레코딩 프로세스를 시작하는 단계(52)로 진행한다. 카메라 또는 전자 디바이스는 오디오/비디오 레코딩을 개시하기 위한 "시작" 커맨드을 수신(53)한다. 카메라 "시작" 커맨드는 본 기술 소프트웨어 애플리케이션, 카메라 애플리케이션, 전자 디바이스와 연관된 임의의 다른 애플리케이션 또는 전자 디바이스 또는 카메라와 통신하는 원격 디바이스에 의해 개시될 수 있음이 이해될 수 있다.
프로세스 내의 단계(54)는 사용자가 프로세스를 진행하도록 적절한 허가를 갖는지를 결정하는 것일 수 있다. 단계(56)에서, 허가 속성은 개별적인 사용자 설정, 프로파일, 데이터베이스, 키, 계정 등에 의해 획득될 수 있다. 허가 속성들은 사용자 데이터베이스(58)로부터 획득될 수 있다.
단계(60)는 사용자가 적절한 허가를 갖고 있는지를 결정하고, 만약 사용자가 적절한 허가를 갖지 않으면 프로세스는 중단되거나 종료된다(단계(94)). 사용자가 적절한 허가를 갖지 않으면, 프로세스는 단계(62)로 진행하여, 초당 최대 레코딩 프레임 레이트를 포함하는 디바이스의 지원되는 설정을 얻을 것이다. 그 다음 프로세스는 단계(64)에서 사용자 허가 및 디바이스 지원에 기초하여 로컬 또는 원격 디바이스의 레코딩 fps를 설정한 다음, 단계(66)에서 디바이스로부터 입력 스트림을 개방한다.
카메라로부터의 미가공 데이터 입력 스트림이 이미지 프로세싱 유닛에 전달되면, 프로세스는 단계(62)로부터 정보를 수신하는 동안 단계(68)에서 카메라로부터의 비디오 데이터 스트림이 개방되었는지를 결정할 것이다. 이러한 요청은 이미지 프로세싱 유닛이 카메라로부터 미가공 비디오 데이터를 수신하는지를 확인하기 위해 활용될 수 있다. 미가공 비디오 데이터 스트림은 일체형 또는 주변 마이크로폰을 포함할 수 있으며, 이미지 프로세싱 유닛으로 전달될 수 있고 메모리 유닛 또는 비디오 레코딩 디바이스로는 전달되지 않을 수 있다. 프로세스가 입력 스트림이 개방되지 않았다고 결정하면, 프로세스는 중단되거나 종료된다(단계(94)).
입력 스트림이 개방되면, 프로세스는 단계(70)로 진행하여 미가공 비디오 데이터가 저장/레코딩되어야 하는지를 결정한다. 미가공 비디오 데이터가 저장되어야 한다면, 프로세스는 단계(72)로 진행하여 도 8에 예시로서 도시된 바와 같이 기록 비디오 스트림 서브루틴을 이용하여 새로운 병렬 프로세스를 개시한다. 레코딩 디바이스로부터의 추가적인 데이터 입력(단계(74))은 미가공 비디오 데이터와 함께 저장될 수 있다.
단계(70)에서 미가공 비디오 데이터가 저장되지 않는다고 결정되면, 프로세스는 단계(76)로 진행하여 비디오 입력 스트림이 개방되었는지를 결정하며, 만약 개방되었다면 프로세스는 단계(76)로 진행하여 특수 효과 커맨드가 사용자에 의해 입력되었는지를 결정한다(단계(82)). 특수 효과 커맨드는 인터페이스에 의해 이러한 프로세스에서 입력될 수 있다. 만약 사용자가 특수 효과 커맨드를 입력하였으면, 도 9에 가장 잘 도시된 바와 같이 단계(84)가 개시되어 특수 효과 서브루틴을 적용한다. 레코딩 디바이스로부터의 추가적인 데이터 입력(단계(86))이 단계(84)에서의 특수 효과 적용에 포함될 수 있다.
만약 사용자가 비디오 속도 레이트의 변경과 같은 단계(82)에서의 특수 효과에 대한 요청을 입력하지 않았다면, 단계(88)가 초기화되어 레코딩 디바이스로부터의 데이터 입력(단계(90)) 및/또는 특수 효과를 갖는 처리된 비디오 및 오디오 데이터 입력(단계(92))과 같은 다른 커맨드를 적용한다. 단계(88)는 단계(84)로부터의 다른 정보를 포함할 수 있다.
만약 비디오 입력 스트림이 단계(76)에서 폐쇄되도록 결정되면, 프로세스가 중단되거나 종료된다(단계(94)).
필요하다면, 단계(78)는 도 8에서 예시 2에 도시된 바와 같이 기록 비디오 스트림 서브루틴을 이용하여 새로운 병렬 프로세스를 개시할 수 있다. 추가 처리된 비디오 및 오디오 데이터(단계(80))는 단계(78)로부터의 비디오 데이터와 저장될 수 있다. 단계(78)의 새로운 병렬 프로세스는 단계(84) 및/또는 단계(88)로부터 개별적으로 그리고 독립적으로 개시될 수 있다. 단계(78) 후에, 프로세스는 단계(76)로 다시 진행한다.
이러한 프로세스는 미가공 비디오 데이터 스트림이 특수 효과 서브루틴을 적용하여 처리되거나 미가공 비디오 데이터 스트림을 보유한 후에 기록 비디오 스트림 서브루틴을 이용하여 미가공 비디오 스트림을 기록할 수 있다.
도 8을 참조하면, 하나 이상의 내부 메모리, 전자 디바이스와 통신하는 하나 이상의 제거 가능한 메모리, 하나 이상의 외부 디바이스에 비디오 데이터 스트림을 기록/저장/레코딩하고/하거나 하나 이상의 클라우드 디바이스 또는 계정에 업로드하기 위한 프로세스를 제공하는 기록 비디오 스트림 서브루틴이 기술된다.
본 기술 프로세스는 어느 디바이스 또는 디바이스들에 비디오 데이터 스트림이 기록될 것이며, 사용자가 기록 비디오 스트림 서브루틴과 연관된 각각의 단계들에 대해 적절한 허가를 갖는지를 순차적으로 결정한다. 사용자가 특정 디바이스 또는 디바이스들에 기록하기 위한 적절한 허가를 갖지 않는 경우, 프로세스는 임의의 사용자 선호도에 따라 그러한 특정 디바이스 또는 디바이스들에 비디오 데이터 스트림을 기록한다.
이러한 서브루틴은 도 7의 프로세스로부터의 커맨드에 의한 개시에 따라 시작한다(단계(104)). 그 다음 이러한 서브루틴은 도 7의 프로세스로부터 사용자의 선호도 및 허가(단계(102)) 또는 데이터베이스(단계(104, 106))를 획득하도록 진행한다. 단계(102) 후에, 이러한 서브루틴은 카메라로부터의 미가공 비디오 데이터 스트림을 입력으로서 획득한다(단계(108)). 미가공 비디오 데이터 스트림은 단계(110)에 있어서는 전자 디바이스, 카메라 및/또는 마이크로폰으로부터의 오디오/비디오 스트림일 수 있고, 단계(112)에 있어서는 디바이스의 RAM 메모리 및/또는 비휘발성 장기 메모리로부터의 오디오/비디오 스트림일 수 있다.
미가공 비디오 데이터 스트림의 획득 후에, 사용자가 내부 메모리에 기록하기 위한 허가를 갖는지를 결정하는 이러한 서브루틴의 단계(114)가 개시된다. 만약 사용자가 적절한 허가를 갖고 사용자 선호도가 내부 메모리에 대한 기록/복사 동작을 허용한다면(단계(116)), 새로운 프로세스는 비디오 데이터 스트림을 내부 메모리에 기록하는 단계(118)에서 시작된다.
만약 사용자가 단계(114)로부터 내부 메모리에 기록할 허가를 갖지 않거나, 단계(116)에서의 사용자 선호도가 단계(116)에서 기록/복사 동작을 허용하지 않거나, 또는 단계(118)에서 프로세스를 시작한 후라면, 이러한 서브루틴은 계속해서 사용자가 제거 가능한 메모리에 기록하기 위한 허가를 갖는지를 결정한다(단계(120)). 만약 사용자가 적절한 허가를 가지며 사용자 선호도가 제거 가능한 메모리로의 기록/복사 동작을 허용한다면(단계(122)), 단계(124)에서 제거 가능한 메모리에 비디오 데이터 스트림을 기록하는 새로운 프로세스가 시작된다.
사용자가 단계(120)로부터 제거 가능한 메모리에 기록할 허가를 갖지 않거나, 또는 단계(122)에서의 사용자 선호도가 이러한 동작을 허용하지 않거나, 또는 단계(124)에서 프로세스를 시작한 후라면, 이러한 서브루틴은 사용자가 외부 디바이스에 대한 기록을 허가했는지를 계속해서 결정한다(단계(126)). 만약 사용자가 적절한 허가를 갖고 사용자 선호도가 외부 디바이스에 대한 기록/복사 동작을 허용(단계(128))할 것이 요구된다면, 새로운 프로세스가 단계(130)에서 시작되어, 비디오 데이터 스트림을 외부 디바이스에 기록한다.
만약 사용자가 단계(126)로부터 외부 디바이스에 기록할 허가를 갖지 않는 경우, 또는 단계(128)에서의 사용자 선호도가 단계(128)에서 기록/복사 동작을 허용하지 않거나, 단계(130)에서 프로세스가 시작된 후라면, 이러한 서브루틴은 사용자가 클라우드로의 기록을 허가했는지에 대한 결정을 계속한다(단계(132)). 만약 사용자가 적절한 허가를 가지며 사용자 선호도가 클라우드에 대한 기록/복사 동작을 허용한다면(단계(134)), 새로운 프로세스는 비디오 데이터 스트림을 클라우드에 기록하는 단계(136)에서 시작된다.
사용자가 단계(132)로부터 클라우드에 기록할 허가를 갖지 않거나, 단계(134)로부터의 사용자 선호도가 이러한 동작을 허용하지 않거나, 또는 단계(136)에서 프로세스를 시작한 후라면, 이러한 서브루틴은 중단 또한 종료된다(단계(138)).
도 9를 참조하면, 특수 효과 옵션이 요청되었는지 및 특수 효과 요청의 특정 동작을 결정하는 적용 특수 효과 서브루틴이 기술된다. 이러한 도 7의 프로세스로부터의 커맨드에 의한 개시에 따라 시작된다(단계(140)). 시작 후에, 이 서브루틴은 카메라로부터의 미가공 비디오 데이터 스트림을 입력으로서 획득한다(단계(142)). 미가공 비디오 데이터 스트림은 단계(146)에 따라 전자 디바이스, 카메라 및/또는 마이크로폰으로부터의 오디오/비디오 스트림일 수 있다.
미가공 비디오 데이터 스트림의 획득 후에, 현재 속도가 정상 또는 네이티브 속도와 동일한지, 예컨대 Recording_fps가 Playback_fps보다 더 큰지를 결정하는 단계(148)가 개시된다. 만약 사용자가 속도 변경 요청을 한 경우, 단계(150)는 도 12에 가장 잘 도시된 바와 같이 진전된 슬로우 모션 서브루틴을 개시한다. 단계(150)의 완료 후에, 이 서브루틴은 중단되거나 종료된다(단계(168)).
만약 새로운 속도가 정상 속도로 설정되지 않는 요청, 예컨대 Recording_fps가 Playback_fps보다 크지 않거나 또는 Recording_fps가 Playback_fps와 동일하도록 하는 속도 변경 요청을 하지 않았다면, 이러한 서브루틴은 단계(152)로 진행하여 현재 속도가 정상 또는 네이티브 속도와 같은지를 결정한다. 사용자가 속도 변경 요청을 하였거나 또는 사용자가 이전에 수정된 속도 설정으로부터 정상 속도로 속도를 다시 설정했다면, 이 서브루틴은 단계(154)로 진행하여, 도 3a에 도시된 바와 같이 비디오 스트림을 RAM 메모리 및/또는 비휘발성 장기 메모리 버퍼에 기록한다. 단계(154)가 완료된 후, 서브루틴은 단계(164)로 진행하여 비디오 버퍼(RAM 메모리 및/또는 비휘발성 장기 메모리)를 호출 함수로 반환하고, 이는 비디오 스트림이 개방되거나 이 서브루틴이 중단 또는 종료되는지를 결정하기 위한 단계일 수 있다(단계(168)).
만약 새로운 속도가 정상 속도로 설정되지 않도록 사용자가 속도 변경 요청을 하지 않았다면, 이 서브루틴은 단계(156)로 진행하여, 속도 변경 요청이 미가공 비디오 데이터 스트림의 정상 속도보다 빠르거나 더 느린지를 결정한다. 이것은 현재 속도가 정상 속도보다 더 큰지를 결정함으로써 달성될 수 있다. 현재 속도가 정상 스피드보다 크다면, 이 서브루틴은 도 10에 가장 잘 도시된 바와 같이 이 서브루틴은 가속 서브루틴을 개시할 것이다(단계(158)). 가속 서브루틴이 완료된 후, 이 서브루틴은 비디오 버퍼(RAM 메모리 및/또는 비휘발성 장기 메모리)를 호출 함수로 반환하도록 단계(164)를 개시할 것이다.
요청된 현재 속도가 정상 속도보다 크지 않다면, 이 서브루틴은 단계(160)로 진행하여 현재 속도가 정상 속도보다 작은지를 결정한다. 만약 현재 속도가 정상 속도보다 작다면, 이 서브루틴은 도 13에 가장 잘 도시된 바와 같이 감속 서브루틴을 개시할 것이다(단계(162)). 감속 서브루틴이 완료된 후 또는 현재 속도가 정상보다 작지 않으면, 이 서브루틴은 비디오 버퍼(RAM 메모리 및/또는 비휘발성 장기 메모리)를 호출 함수로 반환하도록 단계(164)를 개시할 것이다.
도 10을 참조하면, 프레임 드롭 옵션 및/또는 다른 플러그인들이 요구되는지를 결정하는 가속 서브루틴이 설명된다. 이 서브루틴은 적용 특수 효과 서브루틴(도 9, 단계(158))으로부터의 커맨드에 의한 개시에 따라 시작한다(단계(170)). 시작 후에, 이 서브루틴은 카메라로부터의 미가공 비디오 데이터 스트림 및/또는 원격 비디오 피드로부터 스트리밍된 입력을 입력으로서 획득한다(단계(172)). 단계(174)에 따르면, 미가공 비디오 데이터 스트림은 카메라 및/또는 마이크로폰을 포함하는 로컬 전자 디바이스로부터의, 또는 카메라 및/또는 마이크로폰을 포함하는 원격 디바이스로부터의 오디오/비디오 스트림, 또는 다른 오디오/비디오 피드로부터 오디오/비디오 스트림일 수 있다.
미가공 비디오 데이터 스트림의 획득 후에, 카메라로부터의 비디오 데이터 입력 스트림이 개방되었는지를 결정하는 이 서브루틴의 단계(176)가 개시된다. 만약 개방되지 않았다면 이 서브루틴은 서브루틴을 중단 또는 종료시키는 단계(189)로 진행한다.
만일 입력 스트림이 개방되면, 이 서브루틴은 프레임 드롭이 요구되는지를 결정하며(단계(178), 만약 필요하다면 도 11에 가장 잘 도시된 바와 같이 프레임 드롭 서브루틴을 개시하는 단계(180)로 계속된다.
단계(178)로부터 프레임 드롭이 요구되지 않거나 단계(180)의 프레임 드롭 서브루틴이 완료되면, 이 서브루틴은 단계(181)로 진행하여 시간 압축 또는 확장의 이용이 요청되는지를 결정하고, 만약 필요하다면 도 20에 가장 잘 도시된 바와 같이 시간 압축 및 확장 서브프로세스를 개시하는 단계(182)로 계속된다.
만약 단계(181)로부터 프레임 시간 압축 및/또는 확장이 요구되지 않거나 단계(182)의 시간 압축 및/또는 확장 서브프로세스가 완료되면, 이 서브루틴은 단계(183)로 진행하여 가변 fps 재생의 사용이 요청되는지를 결정하고, 만약 필요하다면 도 21에 가장 잘 도시된 바와 같이 가변 fps 재생 서브프로세스를 개시하는 단계(184)로 계속된다.
단계(183)로부터 프레임 가변 fps 재생이 요구되지 않거나 단계(184)의 가변 fps 재생 서브프로세스가 완료되면, 이 서브루틴은 단계(185)로 진행하여 다른 플러그인들 또는 애플리케이션이 요청되는지를 결정한다.
다른 플러그인들 또는 애플리케이션이 요청될 경우, 이 서브루틴은 단계(186)로 진행하여 다른 플러그인 또는 애플리케이션을 실행하며 자신의 기능을 단계(178)로부터의 미가공 비디오 스트림 또는 단계(180, 182 및/또는 184) 중 임의의 단계로부터의 수정된 비디오 스트림에 적용한다. 예를 들어, 다른 플러그인 또는 애플리케이션은 평활화(smoothing) 기술 등을 포함할 수 있지만, 이에 제한되지 않는다. 이들 다른 플러그인 또는 애플리케이션은 본 기술 소프트웨어 애플리케이션과 통합될 수 있거나, 또는 본 기술로부터 멀리 떨어져 있을 수 있지만, 본 기술 소프트웨어 애플리케이션과 액세스 가능하고 동작가능하다.
사용자가 단계(185)로부터 다른 플러그인 또는 애플리케이션의 사용을 요청하지 않거나 또는 단계(186)의 다른 플러그인 프로세스가 완료된 후에, 이 서브루틴은 단계(188)로 진행하여 비디오 입력 스트림이 개방되었는지를 결정하기 위해 단계(176)로 되돌아가는 호출 함수에 데이터를 반환한다. 단계(188)는 RAM 메모리 및/또는 비휘발성 장기 메모리로부터 비디오/오디오 스트림들을 수신할 수 있다(단계(187)).
이러한 적용 특수 효과 서브루틴은 입력 스트림이 단계(176)에서 개방되지 않도록 결정될 때까지 단계(178, 180, 185, 186 및 188)를 포함하는 루프된 서브프로세스를 포함한다는 것을 이해할 수 있을 것이다
도 11을 참조하면, 요청된 패스트 모션 비디오를 시뮬레이트하기 위해 프레임이 드롭되었는지, 어느 프레임이 드롭되었는지를 결정하는 프레임 드롭 서브루틴이 기술된다. 이러한 서브루틴에 대한 예시적인 케이스는 Record_fps가 Playback_fps와 동일한지 경우에 있을 수 있다. 이 서브루틴은 가속 서브루틴으로부터의 커맨드에 의한 개시에 따라 시작한다(단계(190)). 시작 후에, 이 서브루틴은 카메라로부터의 미가공 비디오 데이터 스트림을 입력으로서 획득한다(단계(192)). 단계(194)에 따르면, 미가공 비디오 데이터 스트림은 카메라 및/또는 마이크로폰을 포함하는 로컬 전자 디바이스로부터의, 카메라 및/또는 마이크로폰을 포함하는 원격 디바이스로부터의, 또는 다른 오디오/비디오 피드로부터의 오디오/비디오 스트림일 수 있다.
미가공 비디오 데이터 스트림의 획득 후에, 카메라로부터의 비디오 데이터 입력 스트림이 개방되었는지를 결정하는 서브루틴의 단계(196)가 개시된다. 단계(196)가 입력 스트림이 개방되지 않았다고 결정하면, 이 서브루틴은 단계(198)로 진행하여 호출 기능에 데이터를 반환하며, 이는 도 10의 단계(180)이다. 단계(198)는 RAM 메모리 및/또는 비휘발성 장기 메모리로부터 비디오/오디오 프레임의 데이터를 수신할 수 있다(단계(200)). 단계(198)가 완료된 후, 이 서브루틴은 중단 또는 종료된다(단계(202)).
입력 스트림이 단계(196)로부터 개방되어 있는 동안, 이 서브루틴은 속도가 정상보다 2배 더 빠른 속도와 같은지를 결정한다(단계(204)). 만일 그렇다면, 단계(206)는 초기화되어 도 3b에 도시된 바와 같이 다음 프레임을 드롭할 것이다. 그 후에, 이 서브루틴은 단계(220)로 진행하여 버퍼(RAM 메모리 및/또는 비휘발성 장기 메모리)에 프레임(들)을 기록한다. 단계(220) 후에, 이 서브루틴은 단계(196)로 복귀한다.
속도가 정상 속도보다 2배 더 빠르지 않으면(단계(204)), 이 서브루틴은 속도가 정상보다 3배 더 빠른 속도와 같은지를 결정한다(단계(208)). 만약 그렇다면, 단계(210)는 초기화되어 도 3c에서와 같이 다음 2개의 프레임을 드롭할 것이다. 그 후에, 이 서브루틴은 단계(220)로 진행한 다음 단계(196)로 복귀한다.
만약 속도가 정상보다 3배 더 빠르지 않으면(단계(208)), 이 서브루틴은 속도가 정상보다 4배 더 빠른 속도와 같은지를 결정한다(단계(212)). 만일 그렇다면, 단계(214)는 초기화되어 다음 3개의 프레임을 드롭할 것이다. 그 후에, 이 서브루틴은 단계(220)로 진행한 다음 단계(196)로 복귀한다.
만약 속도가 정상보다 4배 더 빠르지 않으면(단계(212)), 이 서브루틴은 속도가 정상보다 "n"배 더 빠른 속도와 같은지의 결정을 순차적으로 계속할 것이다(단계(216)). 만약 그렇다면, 각각의 "n번째" 단계를 초기화하여 다음 (n-l)개의 프레임 액션을 드롭할 것이다(단계(218)). 그 후에, 이 서브루틴은 단계(220)로 진행한 다음 단계(196)로 복귀한다.
이 프레임 드롭 서브루틴은 프레임이 프레임 단위로 드롭되어야 하는지 그렇지 않은지를 결정한다는 것을 알 수 있다. 그 결과는 사전결정된 속도의 패스트 모션 비디오를 시뮬레이션하기 위해 제거된 특정 프레임을 갖는 수정된 비디오 스트림이다. 그 다음, 이러한 수정된 비디오 스트림은 실시간으로 메모리에 기록/저장된다.
이 프레임 드롭 서브루틴은 단계(196)에서 입력 스트림이 개방되지 않도록 결정될 때까지 단계(204-220)를 포함하는 루프된 서브프로세스를 포함한다는 것을 알 수 있다.
도 12를 참조하면, 프레임 추가 옵션 또는 다른 플러그인이 요구되는지를 결정하는 진전된 슬로우 모션 서브루틴이 기술된다. 이 서브루틴은 적용 특수 효과 서브루틴으로부터의 커맨드에 의한 개시에 따라 시작한다(단계(222)). 시작 후에, 이 서브루틴은 카메라로부터의 미가공 비디오 데이터 스트림을 입력으로서 획득한다(단계(224)). 단계(246)에 따르면, 미가공 비디오 데이터 스트림은 카메라 및/또는 마이크로폰을 포함하는 로컬 전자 디바이스로부터의, 카메라 및/또는 마이크로폰을 포함하는 원격 디바이스로부터의, 또는 다른 오디오/비디오 피드들로부터의 오디오/비디오 스트림일 수 있다.
미가공 비디오 데이터 스트림의 획득 후에, 카메라로부터의 비디오 데이터 입력 스트림이 개방되었는지를 결정하는 서브루틴의 단계(248)가 개시된다. 단계(248)가 입력 스트림이 개방되지 않았다고 결정하면, 이 서브루틴은 단계(270)로 진행하여 이 서브루틴을 정지시킨다.
입력 스트림이 단계(248)로부터 개방되어 있는 동안, 이러한 서브루틴은 프레임 추가가 요구되는지를 결정하며(단계(250)), 만약 필요하다면 도 13에 가장 잘 도시된 바와 같이 프레임 추가 서브루틴을 개시하는 단계(252)로 계속된다.
단계(250)로부터 프레임 추가가 요구되지 않거나 단계(252)로부터의 프레임 추가 서브루틴이 완료되면, 이 서브루틴은 단계(254)로 진행하여 프레임 레이트 레코딩 속도의 증가가 요구되는지를 결정한다. 만약 그렇다면, 이 서브루틴은 도 14에 가장 잘 도시된 바와 같이, 가변 프레임 레이트 서브루틴 또는 증가 프레임 레이트 서브루틴을 개시하는 단계(256)로 계속된다.
만약 프레임 레이트 레코딩 속도의 증가가 단계(254)로부터 요구되지 않거나 단계(256)로부터의 가변 프레임 레이트 서브루틴이 완료되면, 이 서브루틴은 단계(258)로 진행하여 일정한 높은 프레임 레이트 레코딩 속도가 사용되어야 하는지를 결정한다. 만약 그렇다면, 이 서브루틴은 단계(260)로 진행하여, 도 15에 가장 잘 도시된 바와 같이 일정한 높은 프레임 레이트 서브루틴을 개시한다.
만약 단계(258)로부터 일정한 높은 프레임 레이트 레코딩 속도가 요구되지 않거나 단계(260)의 일정한 높은 프레임 레이트 레코딩 속도 서브루틴이 완료되면, 이 서브루틴은 단계(261)로 진행하여 시간 압축 또는 확장의 사용이 요구되는지를 결정하고, 만약 필요하다면 도 20에 가장 잘 도시된 바와 같이 시간 압축 및 확장 서브프로세스를 개시하는 단계(262)로 계속된다.
단계(261)로부터 프레임 시간 압축 및/또는 확장이 요구되지 않거나 단계(262)의 시간 압축 및/또는 확장 서브프로세스가 완료되면, 이 서브루틴은 단계(263)로 진행하여 가변 fps 재생의 사용이 요구되는지를 결정하고, 만약 필요하다면 도 22에 가장 잘 도시된 바와 같이 가변 fps 재생 서브프로세스를 개시하는 단계(264)로 계속된다.
만약 단계(263)로부터 프레임 가변 fps 재생이 요구되지 않거나 단계(264)의 가변 fps 재생 서브프로세스가 완료되면, 이 서브루틴은 단계(265)로 진행하여 다른 특수 효과 강화가 요구되는지를 결정한다. 다른 특수 효과 강화가 요구되는 경우에, 이 서브루틴은 다른 특수 효과 서브루틴을 실행하고 그 기능을 미가공 또는 수정된 비디오 스트림에 적용할 수 있는 단계(267)로 진행한다. 이러한 다른 특수 효과 서브루틴은 본 기술 소프트웨어 애플리케이션과 통합될 수 있거나, 또는 본 기술로부터 멀리 떨어져 본 기술 소프트웨어 애플리케이션과 액세스 가능하고 동작가능할 수 있다.
사용자가 단계(265)로부터 다른 특수 효과 강화의 사용을 요청하지 않거나 단계(267)로부터의 다른 특수 효과 서브루틴이 완료되면, 이 서브루틴은 비디오 입력 스트림이 개방되어 있는지를 결정하도록 단계(248)로 되돌아가는 호출 함수에 데이터를 반환하기 위해 단계(266)으로 계속될 것이다. 다른 처리된 오디오/비디오 데이터는 단계(268)에 따라 호출 함수로 반환된 데이터의 일부일 수 있다는 것을 알 수 있다.
이러한 진전된 슬로우 모션 서브루틴은 입력 스트림이 단계(248)에서 개방되지 않은 것으로 결정될 때까지 단계(250-266)를 포함하는 루프된 서브프로세스를 포함한다는 것을 알 수 있다.
도 13을 참조하면, 도 12의 감속 서브루틴과 관련된 프레임 추가 서브루틴이 설명되어 있으며, 이것은 요청된 슬로우 모션 비디오를 시뮬레이트하기 위해 프레임이 추가되었는지, 어느 프레임이 추가되었는지를 결정한다. 이러한 서브루틴은 Recording fps = Playback fps 임을 가정한다. 이 서브루틴은 감속 서브루틴으로부터의 커맨드에 의한 개시에 따라 시작한다(단계(272)). 시작 후에, 이 서브루틴은 카메라로부터의 미가공 비디오 데이터 스트림을 입력으로서 획득한다(단계(274)). 단계(276)에 따르면, 미가공 비디오 데이터 스트림은 카메라 및/또는 마이크로폰을 포함하는 로컬 전자 디바이스로부터의, 카메라 및/또는 마이크로폰을 포함하는 원격 디바이스로부터의, 또는 다른 오디오/비디오 피드로부터의 오디오/비디오 스트림일 수 있다.
미가공 비디오 데이터 스트림의 획득 후에, 카메라로부터의 비디오 데이터 입력 스트림이 개방되었는지를 결정하는 이러한 서브루틴의 단계(274)가 개시된다. 만약 단계(278)가 입력 스트림이 개방되지 않았다고 결정하면, 이 서브루틴은 단계(298)로 진행하여 호출 기능에 데이터를 반환하며, 이는 도 12의 단계(252)이다. 단계(298)는 RAM 메모리 및/또는 비휘발성 장기 메모리로부터 비디오/오디오 프레임의 데이터를 수신할 수 있다(단계(300)). 단계(298)가 완료된 후, 이 서브루틴은 중단 또는 종료된다(단계(302)).
입력 스트림이 단계(278)로부터 개방되어 있는 동안, 이 서브루틴은 단계(280)에서 활용하기 위한 프레임 추가의 유형을 단순 프레임 복사(단계(281)) 또는 더 많은 CPU 집약적인 프레임 블렌딩(단계(282)) 중에 결정한다. 만약 사용자가 프레임 복사를 선택하면, 프로세스는 단계(281)로 진행하고 알고리즘 및 그의 설명은 변경되지 않는다. 그러나 사용자가 "프레임 블렌딩"를 선택하고 그들의 하드웨어가 이를 지지하면, 프로세스는 단계(282)로 진행하고 알고리즘은 새로운 또는 추가적인 단계들을 포함할 수 있다.
단계(280) 중에 프레임 복사가 선택되었다면, 각각의 속도 "확인(checks)"을 위해, 논리적으로, 프로세스는 왼쪽 알고리즘 경로를 따라서 진행할 것이다. 단계(280) 중에 프레임 블렌딩이 선택되었다면, 각각의 속도 "확인"을 위해, 논리적으로, 프로세스는 오른쪽 알고리즘 경로를 따라서 진행할 것이다.
서브루틴은 속도가 정상보다 2배 더 느린 속도와 같은지를 결정하도록 계속된다(단계(283)). 만일 그렇다면, 프레임 복사 경로에 대해, 단계(284)가 초기화되어 도 3d에서와 같이 프레임을 1회 복사하여 총 2개의 동일한 프레임으로 만들 것이다. 그 후, 이러한 서브루틴은 단계(296)로 진행하여 프레임(들)을 버퍼(RAM 메모리 및/또는 비휘발성 장기 메모리)에 기록한다. 단계(296) 후에, 이 서브루틴은 단계(278)로 복귀한다. 프레임 블렌딩 경로에 대해, 단계(285)가 초기화되어 도 3f에 도시된 바와 같이 현재의 프레임과 다음 프레임을 총 1개의 새로운 "블렌딩된" 프레임으로 블렌딩할 것이다. 그 후, 이러한 서브루틴은 단계(296)로 진행한다.
만약 속도가 정상보다 2배 더 느린 것과 같지 않으면(단계(283)), 이 서브루틴은 속도가 정상보다 3배 더 느린 속도와 같은지를 결정하도록 계속된다(단계(286)). 만일 그렇다면, 프레임 복사 경로에 대해, 단계(287)가 초기화되어 도 3e에서와 같이 프레임을 2회 복사하여 총 3개의 동일한 프레임으로 만들 것이다. 그 후, 이러한 서브루틴은 단계(296)로 진행하여 단계(278)로 복귀한다. 프레임 블렌딩 경로에 대해, 단계(288)가 초기화되어 도 3g에 도시된 바와 같이 현재의 프레임과 다음 프레임을 총 2개의 새로운 "블렌딩된" 프레임으로 블렌딩할 것이다. 그 후, 이러한 서브루틴은 단계(296)로 진행한다.
만약 속도가 정상보다 3배 더 느린 것과 같지 않으면(단계(286)), 이 서브루틴은 속도가 정상보다 4배 더 느린 속도와 같은지를 결정하도록 계속된다(단계(289)). 만일 그렇다면, 프레임 복사 경로에 대해, 단계(290)가 초기화되어 프레임을 3회 복사하여 총 4개의 동일한 프레임으로 만들 것이다. 그 후, 이러한 서브루틴은 단계(296)로 진행하여 단계(278)로 복귀한다. 프레임 블렌딩 경로에 대해, 단계(291)가 초기화되어 현재의 프레임과 다음 프레임을 총 3개의 새로운 "블렌딩된" 프레임으로 블렌딩할 것이다. 그 후, 이러한 서브루틴은 단계(296)로 진행한다.
만약 속도가 정상보다 4배 더 느린 것과 같지 않으면(단계(289)), 이 서브루틴은 속도가 정상보다 "n"배 더 느린 속도와 같은지를 결정하도록 계속된다(단계(292)). 만일 그렇다면, 프레임 복사 경로에 대해, 각각의 "n번째" 단계가 프레임을 (n-1)회 복사하여 총 "n"개의 동일한 프레임을 만들 것이다. 그 후, 이러한 서브루틴은 단계(296)로 진행하여 단계(278)로 복귀한다. 프레임 블렌딩 경로에 대해, 단계(295)가 초기화되어 현재의 프레임과 다음 프레임을 총 (n-1)개의 새로운 "블렌딩된" 프레임으로 블렌딩할 것이다. 그 후, 이러한 서브루틴은 단계(296)로 진행한다.
이러한 프레임 추가 서브루틴은 입력 스트림이 단계(278)에서 개방되지 않는 것으로 결정될 때까지 단계(280-296)를 포함하는 루프된 서브프로세스를 포함한다는 것을 알 수 있다.
도 14를 참조하면, 도 12의 가변 프레임 레이트 서브루틴과 연관된 가변적인 높은 레코딩 fps 서브루틴(120fps)의 예가 설명된다. 이러한 가변적인 프레임 레이트 서브루틴은 슬로우 모션을 시뮬레이션하기 위해 활용될 수 있으며, 예컨대 슬로우 모션 범위 = 레코딩 속도/재생 fps = 120fps/30fps = 4와 같지만 이것으로 제한되지는 않는다.
이러한 서브루틴은 감속 서브루틴으로부터의 커맨드에 의한 개시에 따라 시작한다(단계(304)). 시작 후, 이 서브루틴은 카메라로부터의 미가공 비디오 데이터 스트림을 입력으로서 획득한다(단계(306)). 미가공 비디오 데이터 스트림은 카메라 및/또는 마이크로폰을 포함하는 로컬 전자 디바이스로부터의, 카메라 및/또는 마이크로폰을 포함하는 원격 디바이스로부터의, 또는 다른 오디오/비디오 피드로부터의 오디오/비디오 스트림일 수 있다.
미가공 비디오 데이터 스트림의 획득 후에, 디바이스의 레코딩 프레임 레이트를 예를 들어 Recording_Frame_Rate = 120fps로 설정하도록 이러한 서브루틴의 단계(310)가 개시된다. 그 후, 단계(312)는 디바이스의 재생 프레임 레이트를, 예를 들어 Playback_Frame_Rate = 30fps로 설정한다.
카메라로부터의 비디오 데이터 입력 스트림이 개방되었는지를 결정하는 이 서브루틴의 단계(314)가 개시된다. 만약 단계(314)가 입력 스트림이 개방되지 않았다고 결정하면, 이 서브루틴은 단계(332)로 진행하여, 데이터를 호출 함수로 반환하는 단계(332)로 진행하며, 이것은 도 12의 단계(256)이다. 단계(332)는 RAM 메모리 및/또는 비휘발성 장기 메모리로부터 비디오/오디오 프레임의 데이터를 수신할 수 있다(단계(334)). 단계(332)가 완료된 후, 이 서브루틴은 중단되거나 종료된다(단계(336)).
입력 스트림이 단계(314)로부터 개방되어 있는 동안, 이 서브루틴은 레코딩 속도가 4의 슬로우 모션 범위일 수 있는 "-4X"와 동일한지를 결정한다(단계(316)). 만약 그렇다면 레코딩 프레임 레이트를 120fps로 설정하는 단계(318)가 초기화된다. 그 후, 이러한 서브루틴은 단계(330)로 진행하여 프레임(들)을 버퍼(RAM 메모리 및/또는 비휘발성 장기 메모리)에 기록한다. 단계(330) 후에, 이 서브루틴은 단계(314)로 복귀한다.
만약 레코딩 속도가 "-4X"와 동일하지 않으면(단계(316)), 이 서브루틴은 레코딩 속도가 "-3X"와 동일한지를 결정한다(단계(320)). 만약 그렇다면 레코딩 프레임 레이트를 90fps로 설정하는 단계(322)가 초기화된다. 그 후, 이러한 서브루틴은 단계(330)로 진행하여 프레임(들)을 버퍼(RAM 메모리 및/또는 비휘발성 장기 메모리)에 기록한다. 단계(330) 후에, 이 서브루틴은 단계(314)로 복귀한다.
만약 레코딩 속도가 "-3X"와 동일하지 않으면(단계(320)), 이 서브루틴은 레코딩 속도가 "-2X"와 동일한지를 결정한다(단계(324)). 만약 그렇다면 레코딩 프레임 레이트를 60fps로 설정하는 단계(326)가 초기화된다. 그 후, 이러한 서브루틴은 단계(330)로 진행하여 프레임(들)을 버퍼(RAM 메모리 및/또는 비휘발성 장기 메모리)에 기록한다. 단계(330) 후에, 이 서브루틴은 단계(314)로 복귀한다.
만약 레코딩 속도가 "-2X"와 동일하지 않으면(단계(324)), 이 서브루틴은 레코딩 속도를 30fps로 설정할 것이며(단계(328)), 이는 "정상"과 동일하거나 그보다 작은 레코딩 속도일 수 있다. 그 후에, 이러한 서브루틴은 단계(330)로 진행하여 프레임(들)을 버퍼(RAM 메모리 및/또는 비휘발성 장기 메모리)에 기록한다. 단계(330) 후에, 이 서브루틴은 단계(314)로 복귀한다.
이러한 가변적인 높은 레코딩 fps 서브루틴은 입력 스트림이 단계(314)에서 개방되지 않은 것으로 결정될 때까지 단계(316-330)를 포함하는 루프된 서브프로세스를 포함한다는 것을 알 수 있다.
도 15를 참조하면, 도 12의 일정한 높은 프레임 레이트 서브루틴과 연관된 일정한 프레임 레이트 슬로우 모션 서브루틴의 예가 설명된다. 이러한 일정한 프레임 레이트 슬로우 모션 서브루틴은 슬로우 모션을 시뮬레이션하기 위해서 활용될 수 있다.
이 서브루틴은 감속 서브루틴으로부터의 커맨드에 의한 개시에 따라 시작한다(단계(340)). 시작 후에, 이 서브루틴은 카메라로부터의 미가공 비디오 데이터 스트림을 입력으로서 획득한다(단계(342)). 단계(346)에 따르면, 미가공 비디오 데이터 스트림은 카메라 및/또는 마이크로폰을 포함하는 로컬 전자 디바이스로부터의, 카메라 및/또는 마이크로폰을 포함하는 원격 디바이스로부터의, 또는 다른 오디오/비디오 피드들로부터의 오디오/비디오 스트림일 수 있다.
미가공 비디오 데이터 스트림의 획득 후에, 이 서브루틴의 단계(348)는 비디오 스트림의 레코딩 프레임 레이트(레코딩 fps)를 얻은 다음, 비디오 스트림의 재생 프레임 레이트(재생 fps)를 얻는 단계(350)로 계속된다.
기록 및 재생 프레임 속도가 획득되면, 이 서브루틴은 recording_fps = playback_fps * 2인지를 결정한다(단계(352)). 만일 그렇다면, 이것은 단계(354)로 진행하여, 도 16에 가장 잘 도시된 바와 같이 60fps에서 일정한 높은 프레임 레이트 서브루틴을 개시한다. 그 후에, 이 서브루틴은 중단 또는 종료된다(단계(368)).
만약 recording_fps = playback_fps * 2임이 발견되지 않은 경우, 이 서브루틴은 단계(356)로 진행하여 recording_fps = playback_fps * 4인지를 결정한다. 만약 그렇다면, 이것은 단계(358)로 진행하여, 도 17에 가장 잘 도시된 바와 같이 120fps에서 일정한 높은 프레임 레이트 서브루틴을 개시한다. 그 후에, 이 서브루틴은 중단 또는 종료된다(단계(368)).
만약 recording_fps = playback_fps * 4임이 발견되지 않은 경우, 이 서브루틴은 단계(360)로 진행하여 recording_fps = playback_fps * 8인지를 결정한다. 만약 그렇다면, 이것은 단계(362)로 진행하여, 도 18에 가장 잘 도시된 바와 같이 240fps에서 일정한 높은 프레임 레이트 서브루틴을 개시한다. 그 후에, 이 서브루틴은 중단 또는 종료된다(단계(368)).
만약 recording_fps = playback_fps * 8임이 발견되지 않으면, 이 서브루틴은 단계(364)로 진행하고, 이는 모든 다른 경우들에 대해 일반적이며 더 높은 fps에서 일정한 높은 프레임 레이트 서브루틴을 개시한다. 그 후에, 이 서브루틴은 중단되거나 종료된다(단계(368)).
도 16을 참조하면, 도 15의 일정한 높은 프레임 레이트 서브루틴과 연관된 일정한 높은 레코딩 fps 서브루틴(60fps)의 예가 기술된다. 이러한 일정한 높은 프레임 레이트 서브루틴은 슬로우 모션 범위를 시뮬레이션하기 위해 활용될 수 있으며, 예컨대 슬로우 모션 범위 = 레코딩 속도/재생 fps = 60fps/30fps = 2와 같지만 이것으로 제한되지 않는다. "슬로우 모션 범위"는 슬로우 모션 효과가 기록 및 재생 fps 설정으로 생성될 수 있으며 그에 따라 알고리즘이 임의의 유형의 "프레임 추가"를 이용할 필요가 없는 다중 인자로서 정의된다.
이 서브루틴은 감속 서브루틴으로부터의 커맨드에 의한 개시에 따라 시작한다(단계(370)). 시작 후에, 이 서브루틴은 카메라로부터의 미가공 비디오 데이터 스트림을 입력으로서 획득한다(단계(372)). 단계(374)에 따르면, 미가공 비디오 데이터 스트림은 카메라 및/또는 마이크로폰을 포함하는 로컬 전자 디바이스로부터의, 카메라 및/또는 마이크로폰을 포함하는 원격 디바이스로부터의, 또는 다른 오디오/비디오 피드로부터 오디오/비디오 스트림일 수 있다.
미가공 비디오 데이터 스트림의 획득 후에, 예를 들어 Recording_Frame_Rate = 60fps로 디바이스의 레코딩 프레임 레이트를 설정하는 이 서브루틴의 단계(376)가 개시된다. 그 후, 단계(378)는 디바이스의 재생 프레임 레이트를 예를 들어 Playback_Frame_Rate = 30fps로 설정한다.
카메라로부터의 비디오 데이터 입력 스트림이 개방되었는지를 결정하는 서브루틴의 단계(380)가 개시된다. 만약 단계(380)가 입력 스트림이 개방되지 않았다고 결정하면, 이 서브루틴은 단계(398)로 진행하여 호출 함수에 데이터를 반환하며, 이것은 도 15의 단계(354)이다. 단계(398)는 RAM 메모리 및/또는 비휘발성 장기 메모리로부터 비디오/오디오 프레임의 데이터를 수신할 수 있다(단계(400)). 단계(398)가 완료된 후, 이 서브루틴은 중단되거나 종료된다(단계(402)).
입력 스트림이 단계(380)로부터 개방되어 있는 동안, 이 서브루틴은 레코딩 속도가 "-4X"와 동일한지를 결정한다(단계(382)). 만약 그렇다면 단계(384)가 초기화되어, 도 3e에 도시된 바와 같이 스트림 내의 각 프레임을 2회 복사하여 총 3개의 동일한 프레임을 만들거나 또는 도 3g에 도시된 바와 같이 블렌딩된 프레임을 만든다. 그 후, 이러한 서브루틴은 단계(396)로 진행하여 프레임(들)을 버퍼(RAM 메모리 및/또는 비휘발성 장기 메모리)에 기록한다. 단계(396) 후에, 이 서브루틴은 단계(380)로 복귀한다.
만약 레코딩 속도가 "-4X"와 동일하지 않으면(단계(382)), 이 서브루틴은 레코딩 속도가 "-3X"와 동일한지를 결정한다(단계(386)). 만약 그렇다면 단계(388)가 초기화되어, 도 3d에 도시된 바와 같이 스트림 내의 각 프레임을 1회 복사하여 총 2개의 동일한 프레임을 만들거나 또는 도 3f에 도시된 바와 같이 블렌딩된 프레임을 만든다. 그 후, 이러한 서브루틴은 단계(396)로 진행하여 프레임(들)을 버퍼(RAM 메모리 및/또는 비휘발성 장기 메모리)에 기록한다. 단계(396) 후에, 이 서브루틴은 단계(380)로 복귀한다.
만약 레코딩 속도가 "-3X"와 동일하지 않으면(단계(386)), 이 서브루틴은 레코딩 속도가 "-2X"와 동일한지를 결정한다(단계(390)). 만약 그렇다면 단계(392)가 초기화되어, 변경되지 않은 비디오 스트림을 통과시킨다. 그 후, 이러한 서브루틴은 단계(396)로 진행하여 프레임(들)을 버퍼(RAM 메모리 및/또는 비휘발성 장기 메모리)에 기록한다. 단계(396) 후에, 이 서브루틴은 단계(380)로 복귀한다.
만약 레코딩 속도가 "-2X"와 동일하지 않으면(단계(390)), 이 서브루틴은 "정상"과 동일한 레코딩 속도를 위해서 2개의 프레임 중 1개의 프레임(1/2)을 드롭시킬 것이다(단계(394)). 그 후, 이러한 서브루틴은 단계(396)로 진행하여 프레임(들)을 버퍼(RAM 메모리 및/또는 비휘발성 장기 메모리)에 기록한다. 단계(396) 후에, 이 서브루틴은 단계(380)로 복귀한다.
이러한 일정한 높은 레코딩 fps 서브루틴(60FPS)은 입력 스트림이 단계(380)에서 개방되지 않는 것으로 결정될 때까지 단계(382-396)를 포함하는 루프된 서브프로세스를 포함한다는 것을 알 수 있다.
도 17을 참조하면, 도 15의 일정한 높은 프레임 레이트 서브루틴과 연관된 일정한 높은 레코딩 fps 서브루틴(120fps)의 예가 설명된다. 이러한 일정한 높은 프레임 속도 서브루틴은 슬로우 모션을 시뮬레이션하기 위해 활용될 수 있으며, 예컨대 슬로우 모션 범위 = 레코딩 속도/재생 fps = 120fps/30fps = 4와 같지만 이것으로 제한되지는 않는다.
이러한 서브루틴은 감속 서브루틴으로부터의 커맨드에 의한 개시에 따라 시작한다(단계(404)). 시작 후, 이 서브루틴은 카메라로부터의 미가공 비디오 데이터 스트림을 입력으로서 획득한다(단계(406)). 단계(408)에 따라, 미가공 비디오 데이터 스트림은 카메라 및/또는 마이크로폰을 포함하는 로컬 전자 디바이스로부터의, 카메라 및/또는 마이크로폰을 포함하는 원격 디바이스로부터의, 또는 다른 오디오/비디오 피드로부터의 오디오/비디오 스트림일 수 있다.
미가공 비디오 데이터 스트림의 획득 후에, 디바이스의 레코딩 프레임 레이트를 예를 들어 Recording_Frame_Rate = 120fps로 설정하도록 이러한 서브루틴의 단계(410)가 개시된다. 그 후, 단계(412)는 디바이스의 재생 프레임 레이트를, 예를 들어 Playback_Frame_Rate = 30fps로 설정한다.
카메라로부터의 비디오 데이터 입력 스트림이 개방되었는지를 결정하는 이 서브루틴의 단계(414)가 개시된다. 만약 단계(414)가 입력 스트림이 개방되지 않았다고 결정하면, 이 서브루틴은 단계(448)로 진행하며, 이것은 도 15의 단계(358)이다. 단계(448)는 RAM 메모리 및/또는 비휘발성 장기 메모리로부터 비디오/오디오 프레임의 데이터를 수신할 수 있다(단계(450)). 단계(448)가 완료된 후, 이 서브루틴은 중단되거나 종료된다(단계(452)).
입력 스트림이 단계(414)로부터 개방되어 있는 동안, 이 서브루틴은 레코딩 속도가 "-8X"와 동일한지를 결정한다(단계(416)). 만약 그렇다면 단계(418)가 초기화되어 프레임을 4회 복사하여 총 5개의 동일한 프레임 또는 블렌딩된 프레임을 만든다. 그 후에, 이러한 서브루틴은 단계(446)로 진행하여 프레임(들)을 버퍼(RAM 메모리 및/또는 비휘발성 장기 메모리)에 기록한다. 단계(446) 후에, 이 서브루틴은 단계(414)로 복귀한다.
만약 레코딩 속도가 "-8X"와 동일하지 않으면(단계(416)), 이 서브루틴은 레코딩 속도가 "-7X"와 동일한지를 결정한다(단계(420)). 만약 그렇다면 단계(422)가 초기화되어 프레임을 3회 복사하여 총 4개의 동일한 프레임 또는 블렌딩된 프레임을 만든다. 그 후에, 이러한 서브루틴은 단계(446)로 진행하여 프레임(들)을 버퍼(RAM 메모리 및/또는 비휘발성 장기 메모리)에 기록한다. 단계(446) 후에, 이 서브루틴은 단계(414)로 복귀한다.
만약 레코딩 속도가 "-7X"와 동일하지 않으면(단계(420)), 이 서브루틴은 레코딩 속도가 "-6X"와 동일한지를 결정한다(단계(424)). 만약 그렇다면 단계(426)가 초기화되어 도 3e에 도시된 바와 같이 프레임을 2회 복사하여 총 3개의 동일한 프레임을 만들거나 또는 도 3g에 도시된 바와 같이 블렌딩된 프레임을 만든다. 그 후에, 이러한 서브루틴은 단계(446)로 진행하여 프레임(들)을 버퍼(RAM 메모리 및/또는 비휘발성 장기 메모리)에 기록한다. 단계(446) 후에, 이 서브루틴은 단계(414)로 복귀한다.
만약 레코딩 속도가 "-6X"와 동일하지 않으면(단계(424)), 이 서브루틴은 레코딩 속도가 "-5X"와 동일한지를 결정한다(단계(428)). 만약 그렇다면 단계(430)가 초기화되어 도 3d에 도시된 바와 같이 프레임을 1회 복사하여 총 2개의 동일한 프레임을 만들거나 또는 도 3f에 도시된 바와 같이 블렌딩된 프레임을 만든다. 그 후에, 이러한 서브루틴은 단계(446)로 진행하여 프레임(들)을 버퍼(RAM 메모리 및/또는 비휘발성 장기 메모리)에 기록한다. 단계(446) 후에, 이 서브루틴은 단계(414)로 복귀한다.
만약 레코딩 속도가 "-5X"와 동일하지 않으면(단계(428)), 이 서브루틴은 레코딩 속도가 "-4X"와 동일한지를 결정한다(단계(432)). 만약 그렇다면 단계(434)가 초기화되어 변경되지 않은 비디오 프레임을 통과시킨다. 그 후에, 이러한 서브루틴은 단계(446)로 진행하여 프레임(들)을 버퍼(RAM 메모리 및/또는 비휘발성 장기 메모리)에 기록한다. 단계(446) 후에, 이 서브루틴은 단계(414)로 복귀한다.
만약 레코딩 속도가 "-4X"와 동일하지 않으면(단계(432)), 이 서브루틴은 레코딩 속도가 "-3X"와 동일한지를 결정한다(단계(436)). 만약 그렇다면 단계(438)가 초기화되어 4개의 프레임 중 1개의 프레임(1/4)을 드롭시킨다(단계(438)). 그 후에, 이러한 서브루틴은 단계(446)로 진행하여 프레임(들)을 버퍼(RAM 메모리 및/또는 비휘발성 장기 메모리)에 기록한다. 단계(446) 후에, 이 서브루틴은 단계(414)로 복귀한다.
만약 레코딩 속도가 "-3X"와 동일하지 않으면(단계(436)), 이 서브루틴은 레코딩 속도가 "-2X"와 동일한지를 결정한다(단계(440)). 만약 그렇다면 단계(442)가 초기화되어 4개의 프레임 중 2개의 프레임(2/4)을 드롭시킨다(단계(442)). 그 후에, 이러한 서브루틴은 단계(446)로 진행하여 프레임(들)을 버퍼(RAM 메모리 및/또는 비휘발성 장기 메모리)에 기록한다. 단계(446) 후에, 이 서브루틴은 단계(414)로 복귀한다.
만약 레코딩 속도가 "-2X"와 동일하지 않으면(단계(440)), 이 서브루틴은 "정상"과 동일한 레코딩 속도를 위해서 4개의 프레임 중 3개의 프레임(3/4)을 드롭시킬 것이다(단계(444)). 그 후에, 이러한 서브루틴은 단계(446)로 진행하여 프레임(들)을 버퍼(RAM 메모리 및/또는 비휘발성 장기 메모리)에 기록한다. 단계(446) 후에, 이 서브루틴은 단계(414)로 복귀한다.
이러한 일정한 높은 레코딩 fps 서브루틴(120FPS)은 입력 스트림이 단계(414)에서 개방되지 않는 것으로 결정될 때까지 단계(416-446)를 포함하는 루프된 서브프로세스를 포함한다는 것을 알 수 있다.
도 18을 참조하면, 도 15의 일정한 높은 프레임 레이트 서브루틴과 연관된 일정한 높은 레코딩 fps 서브루틴(240fps)의 예가 기술된다. 이러한 일정한 높은 프레임 레이트 서브루틴은 슬로우 모션 범위를 시뮬레이션하기 위해 활용될 수 있으며, 예컨대 슬로우 모션 범위 = 레코딩 속도/재생 fps = 240fps/30fps = 8과 같지만 이것으로 제한되지 않는다.
이 서브루틴은 감속 서브루틴으로부터의 커맨드에 의한 개시에 따라 시작한다(단계(454)). 시작 후에, 이 서브루틴은 카메라로부터의 미가공 비디오 데이터 스트림을 입력으로서 획득한다(단계(456)). 단계(458)에 따르면, 미가공 비디오 데이터 스트림은 카메라 및/또는 마이크로폰을 포함하는 로컬 전자 디바이스로부터의, 카메라 및/또는 마이크로폰을 포함하는 원격 디바이스로부터의, 또는 다른 오디오/비디오 피드로부터 오디오/비디오 스트림일 수 있다.
미가공 비디오 데이터 스트림의 획득 후에, 예를 들어 Recording_Frame_Rate = 240fps로 디바이스의 레코딩 프레임 레이트를 설정하는 이 서브루틴의 단계(460)가 개시된다. 그 후에, 단계(462)는 디바이스의 재생 프레임 레이트를 예를 들어 Playback_Frame_Rate = 30fps로 설정한다.
카메라로부터의 비디오 데이터 입력 스트림이 개방되었는지를 결정하는 서브루틴의 단계(464)가 개시된다. 만약 단계(464)가 입력 스트림이 개방되지 않았다고 결정하면, 이 서브루틴은 단계(498)로 진행하여 호출 함수에 데이터를 반환하며, 이것은 도 15의 단계(362)이다. 단계(498)는 RAM 메모리 및/또는 비휘발성 장기 메모리로부터 비디오/오디오 프레임의 데이터를 수신할 수 있다(단계(500)). 단계(498)가 완료된 후, 이 서브루틴은 중단되거나 종료된다(단계(502)).
입력 스트림이 단계(464)로부터 개방되어 있는 동안, 이 서브루틴은 레코딩 속도가 "-8X"와 동일한지를 결정한다(단계(466)). 만약 그렇다면 단계(468)가 초기화되어 변경되지 않은 비디오 스트림을 통과시킨다. 그 후, 이러한 서브루틴은 단계(496)로 진행하여 프레임(들)을 버퍼(RAM 메모리 및/또는 비휘발성 장기 메모리)에 기록한다. 단계(496) 후에, 이 서브루틴은 단계(464)로 복귀한다.
만약 레코딩 속도가 "-8X"와 동일하지 않으면(단계(466)), 이 서브루틴은 레코딩 속도가 "-7X"와 동일한지를 결정한다(단계(470)). 만약 그렇다면 단계(472)가 초기화되어, 매 8개의 프레임 중 1개의 프레임을 드롭시킨다(1/8). 그 후, 이러한 서브루틴은 단계(496)로 진행하여 프레임(들)을 버퍼(RAM 메모리 및/또는 비휘발성 장기 메모리)에 기록한다. 단계(496) 후에, 이 서브루틴은 단계(464)로 복귀한다.
만약 레코딩 속도가 "-7X"와 동일하지 않으면(단계(470)), 이 서브루틴은 레코딩 속도가 "-6X"와 동일한지를 결정한다(단계(474)). 만약 그렇다면 단계(476)가 초기화되어, 매 4개의 프레임 중 1개의 프레임을 드롭시킨다(2/8). 그 후, 이러한 서브루틴은 단계(496)로 진행하여 프레임(들)을 버퍼(RAM 메모리 및/또는 비휘발성 장기 메모리)에 기록한다. 단계(496) 후에, 이 서브루틴은 단계(464)로 복귀한다.
만약 레코딩 속도가 "-6X"와 동일하지 않으면(단계(474)), 이 서브루틴은 레코딩 속도가 "-5X"와 동일한지를 결정한다(단계(478)). 만약 그렇다면 단계(480)가 초기화되어, 매 8개의 프레임 중 3개의 프레임을 드롭시킨다(3/8). 그 후, 이러한 서브루틴은 단계(496)로 진행하여 프레임(들)을 버퍼(RAM 메모리 및/또는 비휘발성 장기 메모리)에 기록한다. 단계(496) 후에, 이 서브루틴은 단계(464)로 복귀한다.
만약 레코딩 속도가 "-5X"와 동일하지 않으면(단계(478)), 이 서브루틴은 레코딩 속도가 "-4X"와 동일한지를 결정한다(단계(482)). 만약 그렇다면 단계(484)가 초기화되어, 매 2개의 프레임 중 1개의 프레임을 드롭시킨다(4/8). 그 후, 이러한 서브루틴은 단계(496)로 진행하여 프레임(들)을 버퍼(RAM 메모리 및/또는 비휘발성 장기 메모리)에 기록한다. 단계(496) 후에, 이 서브루틴은 단계(464)로 복귀한다.
만약 레코딩 속도가 "-4X"와 동일하지 않으면(단계(482)), 이 서브루틴은 레코딩 속도가 "-3X"와 동일한지를 결정한다(단계(486)). 만약 그렇다면 단계(488)가 초기화되어, 매 8개의 프레임 중 5개의 프레임을 드롭시킨다(5/8). 그 후, 이러한 서브루틴은 단계(496)로 진행하여 프레임(들)을 버퍼(RAM 메모리 및/또는 비휘발성 장기 메모리)에 기록한다. 단계(496) 후에, 이 서브루틴은 단계(464)로 복귀한다.
만약 레코딩 속도가 "-3X"와 동일하지 않으면(단계(486)), 이 서브루틴은 레코딩 속도가 "-2X"와 동일한지를 결정한다(단계(490)). 만약 그렇다면 단계(492)가 초기화되어, 매 4개의 프레임 중 3개의 프레임을 드롭시킨다(6/8). 그 후, 이러한 서브루틴은 단계(496)로 진행하여 프레임(들)을 버퍼(RAM 메모리 및/또는 비휘발성 장기 메모리)에 기록한다. 단계(496) 후에, 이 서브루틴은 단계(464)로 복귀한다.
만약 레코딩 속도가 "-2X"와 동일하지 않으면(단계(490)), 이 서브루틴은 매 8개의 프레임 중 7개의 프레임을 드롭시킬 것이다(7/8)(단계(949)). 그 후, 이러한 서브루틴은 단계(496)로 진행하여 프레임(들)을 버퍼(RAM 메모리 및/또는 비휘발성 장기 메모리)에 기록한다. 단계(496) 후에, 이 서브루틴은 단계(464)로 복귀한다.
이러한 일정한 높은 레코딩 fps 서브루틴(240FPS)은 입력 스트림이 단계(464)에서 개방되지 않는 것으로 결정될 때까지 단계(466-496)를 포함하는 루프된 서브프로세스를 포함한다는 것을 알 수 있다.
도 19를 참조하면, 도 15의 일정한 고 프레임 레이트 서브루틴과 연관된 일정한 고 레코딩 fps 서브루틴(240fps)에서의 극도의 슬로우 모션의 예가 설명된다. 이러한 일정한 높은 프레임 레이트 서브루틴이 -8X 내지 -128X 속도의 슬로우 모션 범위와 같은, 그러나 이것으로 제한되지 않는 극도의 슬로우 모션을 시뮬레이션하기 위해 활용될 수 있다. 도 19의 프레임 추가 서브루틴을 갖는 일정한 높은 레코딩 fps는 높은 초당 프레임, 초당 정상 재생 프레임 및 슬로우 모션 특수 효과를 부스트하기 위한 프레임 추가(frame addition)의 조합을 위한 예시적인 순서도 알고리즘를 도시한다. 이 서브루틴은 도 18에 가장 잘 도시된 -8X보다 작은 속도와 함께, 2의 완벽한 배수이며 -8X보다 크거나 같은 속도를 추가로 도시한다.
이러한 서브루틴은 감속 서브루틴으로부터의 커맨드에 의한 개시에 따라 시작한다(단계(510)). 시작 후에, 이러한 서브루틴은 카메라로부터의 미가공 비디오 데이터 스트림을 입력으로서 획득한다(단계(512)). 단계(514)에 따르면, 미가공 비디오 데이터 스트림은 전자 디바이스, 카메라 및/또는 마이크로폰으부터의 오디오/비디오 스트림일 수 있다.
미가공 비디오 데이터 스트림의 획득 후에, 디바이스의 레코딩 프레임 레이트를 예를 들어 Recording_Frame_Rate = 240fps로 설정하도록 이러한 서브루틴의 단계(516)가 개시된다. 그 후, 단계(518)는 디바이스의 재생 프레임 레이트를, 예를 들어 Playback_Frame_Rate = 30fps로 설정한다.
카메라로부터의 비디오 데이터 입력 스트림이 개방되었는지를 결정하는 이 서브루틴의 단계(520)가 개시된다. 만약 단계(520)가 입력 스트림이 개방되지 않았다고 결정하면, 이 서브루틴은 단계(544)로 진행하여 데이터를 호출 함수로 반환하며, 이것은 도 15의 단계(358)이다. 단계(544)는 RAM 메모리 및/또는 비휘발성 장기 메모리로부터 비디오/오디오 프레임의 데이터를 수신할 수 있다(단계(546)). 단계(544)가 완료된 후, 이 서브루틴은 중단되거나 종료된다(단계(548)).
입력 스트림이 단계(520)로부터 개방되어 있는 동안, 이 서브루틴은 레코딩 속도가 "-8X"와 동일한지를 결정한다(단계(522)). 만약 그렇다면 단계(524)가 초기화되어 변경/변화되지 않은 비디오 스트림을 통과시킨다. 그 후, 이러한 서브루틴은 단계(542)로 진행하여 프레임(들)을 버퍼(RAM 메모리 및/또는 비휘발성 장기 메모리)에 기록한다. 단계(542) 후에, 이 서브루틴은 단계(520)로 복귀한다.
만약 레코딩 속도가 "-8X"와 동일하지 않으면(단계(522)), 이 서브루틴은 레코딩 속도가 "-16X"와 동일한지를 결정한다(단계(526)). 만약 그렇다면 단계(528)가 초기화되어 도 3d에 도시된 바와 같이 각각의 프레임을 1회 복사하여 총 2개의 동일한 프레임 또는 도 3f에 도시된 바와 같이 블렌딩된 프레임을 만든다. 그 후, 이러한 서브루틴은 단계(542)로 진행하여 프레임(들)을 버퍼(RAM 메모리 및/또는 비휘발성 장기 메모리)에 기록한다. 단계(542) 후에, 이 서브루틴은 단계(520)로 복귀한다.
만약 레코딩 속도가 "-16X"와 동일하지 않으면(단계(526)), 이 서브루틴은 레코딩 속도가 "-32X"와 동일한지를 결정한다(단계(530)). 만약 그렇다면 단계(532)가 초기화되어 도 3e에 도시된 바와 같이 각각의 프레임을 2회 복사하여 총 3개의 동일한 프레임 또는 도 3g에 도시된 바와 같이 블렌딩된 프레임을 만든다. 그 후, 이러한 서브루틴은 단계(542)로 진행하여 프레임(들)을 버퍼(RAM 메모리 및/또는 비휘발성 장기 메모리)에 기록한다. 단계(542) 후에, 이 서브루틴은 단계(520)로 복귀한다.
만약 레코딩 속도가 "-32X"와 동일하지 않으면(단계(530)), 이 서브루틴은 레코딩 속도가 "-64X"와 동일한지를 결정한다(단계(534)). 만약 그렇다면 단계(536)가 초기화되어 각각의 프레임을 4회 복사하여 총 5개의 동일한 프레임 또는 블렌딩된 프레임을 만든다. 그 후, 이러한 서브루틴은 단계(542)로 진행하여 프레임(들)을 버퍼(RAM 메모리 및/또는 비휘발성 장기 메모리)에 기록한다. 단계(542) 후에, 이 서브루틴은 단계(520)로 복귀한다.
만약 레코딩 속도가 "-64X"와 동일하지 않으면(단계(534)), 이 서브루틴은 레코딩 속도가 "-128X"와 동일한지를 결정한다(단계(538)). 만약 그렇다면 단계(540)가 초기화되어 각각의 프레임을 8회 복사하여 총 9개의 동일한 프레임 또는 블렌딩된 프레임을 만든다. 그 후, 이러한 서브루틴은 단계(542)로 진행하여 프레임(들)을 버퍼(RAM 메모리 및/또는 비휘발성 장기 메모리)에 기록한다. 단계(542) 후에, 이 서브루틴은 단계(520)로 복귀한다.
이러한 일정한 높은 레코딩 fps 서브루틴(240fps)은 입력 스트림이 단계(520)에서 개방되지 않는 것으로= 결정될 때까지 단계(520-542)를 포함하는 루프된 서브프로세스를 포함한다는 것을 알 수 있다.
도 20을 참조하면, 세그먼트 시간 압축 및 확장 서브루틴의 예가 도시되고 설명되는데, 이는 레코딩이 중단된 후에 비디오 프로세싱 동안 재생 시간을 가속 또는 감속함으로써 슬로우 모션 및 패스트 모션을 위한 흐름도 알고리즘을 제공한다. 프레임 추가/드롭은 슬로우 모션 특수 효과를 시뮬레이션하기 위해 시간 압축/확장 알고리즘에서 수행될 수 있다.
이러한 알고리즘/서브루틴으로 제작된 비디오 파일은 모든 비디오 플레이어에서 정상적으로 재생될 수 있고 메타데이터를 필요로 하지 않는다. 이것은 본 기술에서 생성된 다른 비디오 파일들에 대한 대안이다.
이 서브루틴은 감속 서브루틴으로부터의 커맨드에 의한 개시에 따라 시작한다(단계(550)). 시작 후에, 이 서브루틴은 카메라로부터의 미가공 비디오 데이터 스트림을 입력으로서 획득한다(단계(552)). 단계(554)에 따라, 미가공 비디오 데이터 스트림은 카메라 및/또는 마이크로폰을 포함하는 로컬 전자 디바이스로부터의 오디오/비디오 스트림일 수 있거나, 카메라 및/또는 마이크로폰을 포함하는 원격 디바이스로부터, 또는 다른 오디오/비디오 피드로부터의 오디오/비디오 스트림일 수 있다.
미가공 비디오 데이터 스트림의 획득 후에, 디바이스의 레코딩 fps를 설정하는 서브루틴의 단계(556)가 개시된다. 그 후, 단계(558)는 재생 fps를 레코딩 fps보다 작거나 같게(<=) 설정한다.
카메라로부터의 비디오 데이터 입력 스트림이 개방되었는지를 결정하는 서브루틴의 단계(560)가 개시된다. 만약 단계(560)가 입력 스트림이 개방되지 않았다고 결정하면, 이 서브루틴은 단계(576)로 진행한다. 단계(576)는 RAM 메모리 및/또는 비휘발성 장기 메모리로부터 비디오/오디오 프레임의 데이터를 수신할 수 있다(단계(578)). 단계(576)가 완료된 후, 이러한 서브루틴은 중단되거나 종료된다(단계(580)).
입력 스트림이 단계(560)로부터 개방되어 있는 동안, 이 서브루틴은 속도가 "정상"보다 작은지를 결정한다(단계(562)). 만약 그렇다면 단계(564)가 개시되어 비디오 세그먼트 fps를 속도로 나누어진 레코딩 fps와 동일하게 설정한다(세그먼트 fps = Record_FPS/속도). 그 후에, 이 서브루틴은 단계(574)로 진행하여 버퍼(RAM 메모리 및/또는 비휘발성 장기 메모리)에 프레임(들)을 기록한다. 단계(574) 후에, 이 서브루틴은 단계(560)로 복귀한다.
만약 속도가 "정상"보다 작지 않으면(단계(562)), 이 서브루틴은 속도가 "정상"과 동일한지를 결정한다(단계(566)). 만약 그렇다면 단계(568)가 초기화되어 비디오 세그먼트 fps를 레코딩 fps와 동일하게 설정한다(세그먼트 fps = Record_FPS). 그 후에, 이 서브루틴은 단계(574)로 진행하여 버퍼(RAM 메모리 및/또는 비휘발성 장기 메모리)에 프레임(들)을 기록한다. 단계(574) 후에, 이 서브루틴은 단계(560)로 복귀한다.
만약 레코딩 속도가 "정상"과 동일하지 않으면(단계(566)), 이 서브루틴은 속도가 "정상"보다 큰지를 결정한다(단계(570)). 만약 그렇다면 단계(572)가 초기화되어 비디오 세그먼트 fps를 레코딩 fps와 속도의 곱과 동일하게 설정한다(세그먼트 fps = Record_FPS * 속도). 그 후에, 이 서브루틴은 단계(574)로 진행하여 버퍼(RAM 메모리 및/또는 비휘발성 장기 메모리)에 프레임(들)을 기록한다. 단계(574) 후에, 이 서브루틴은 단계(560)로 복귀한다.
이 세그먼트 시간 압축 및 확장 서브루틴은 입력 스트림이 단계(560)에서 개방되지 않는 것으로 결정될 때까지 단계(560-574)를 포함하는 루프된 서브프로세스를 포함한다는 것을 알 수 있다.
세그먼트 시간 압축 및 확장 서브루틴의 예는 도 21에 가장 잘 도시되어 있으며, 이는 도 20의 알고리즘의 결과를 도시한다. 상부 바는 연속적인 레코딩에서 비디오 세그먼트당 초 단위의 비디오 세그먼트(582)를 나타낸다. 초 단위의 레코딩 비디오 세그먼트(582)는 세그먼트 시간 압축 및 확장 서브루틴에 의한 프로세스이다. 세그먼트(582)는 사용자/AI가 속도 변수를 변경할 때 생성된다. 시간 특수 효과가 미가공 비디오 세그먼트에 적용되고, 프로세싱된 비디오 스트림 RAM에 기록되며, 여기서 각각의 세그먼트는 압축, 확장 또는 변경되지 않는다. 그 다음 결과적인 재생 비디오 세그먼트(584)가 초 단위의 레코딩 세그먼트 시간에 대응하여 비디오 세그먼트당 초 단위로 제공된다. 도 22를 참조하면, 가변 재생 속도 레코드 서브루틴의 예가 설명되고 기술될 것이며, 이는 비디오 레코딩이 진행되는 동안 재생 프레임 레이트를 가속 또는 감속함으로써 슬로우 모션 및 패스트 모션을 위한 순서도 알고리즘을 제공한다. 이 알고리즘은 비디오 메타데이터에 내장된 패스트/슬로우 모션 커맨드를 갖는 정상 비디오를 제작할 수 있다. 메타데이터는 비디오 레코딩에서 보여지지 않는 비디오 파일에 내장된 데이터이다.
이 서브루틴이 시작되면(단계(590)), 도 12의 감속 서브루틴으로부터의 커맨드에 의한 개시에 따라 시작한다(단계(264)). 시작 후에, 이 서브루틴은 카메라로부터의 미가공 비디오 데이터 스트림을 입력으로서 획득한다(단계(592)). 단계(594)에 따르면, 미가공 비디오 데이터 스트림은 카메라 및/또는 마이크로폰을 포함하는 로컬 전자 디바이스로부터의, 카메라 및/또는 마이크로폰을 포함하는 원격 디바이스로부터의, 또는 다른 오디오/비디오 피드로부터의 오디오/비디오 스트림일 수 있다.
미가공 비디오 데이터 스트림의 획득 후에, 디바이스의 레코딩 fps를 설정하는 서브루틴의 단계(596)가 개시된다. 그 후, 단계(598)는 재생 fps를 레코딩 fps보다 작거나 같게 설정한다.
카메라로부터의 비디오 데이터 입력 스트림이 개방되었는지를 결정하는 서브루틴의 단계(600)가 개시된다. 단계(600)가 입력 스트림이 개방되지 않았다고 결정하면, 이 서브루틴은 단계(616)로 진행한다. 단계(616)는 RAM 메모리 및/또는 비휘발성 장기 메모리로부터 비디오/오디오 프레임의 데이터를 수신할 수 있다(단계(618)). 단계(616)가 완료된 후에, 이 서브루틴은 중단되거나 종료된다(단계(620)).
입력 스트림이 단계(600)로부터 개방되어 있는 동안, 이 서브루틴은 속도가 "정상"보다 작은지를 결정한다(단계(602)). 만약 그렇다면 단계(604)가 초기화되어 세그먼트 재생 fps를 해당 비디오 섹션에 대한 속도로 나누어진 레코딩 fps와 동일하게 설정한다(세그먼트 fps = Record_fps/속도). 그 후에, 이 서브루틴은 단계(614)로 진행하여 버퍼(RAM 메모리 및/또는 비휘발성 장기 메모리)에 프레임(들)을 기록한다. 단계(614) 후에, 이 서브루틴은 단계(600)로 복귀한다.
만약 속도가 "정상"보다 작지 않으면(단계(602)), 이 서브루틴은 속도가 "정상"과 동일한지를 결정한다(단계(606)). 만약 그렇다면, 단계(608)가 초기화되어 세그먼트 재생 fps를 해당 비디오 섹션에 대한 레코딩 fps와 동일하게 설정한다(세그먼트 fps = Record_fps). 그 후에, 이 서브루틴은 단계(614)로 진행하여 버퍼(RAM 메모리 및/또는 비휘발성 장기 메모리)에 프레임(들)을 기록한다. 단계(614) 후에, 이 서브루틴은 단계(600)로 복귀한다.
레코딩 속도가 "정상"과 같지 않다면(단계(606)), 이 서브루틴은 속도가 "정상"보다 큰지를 결정한다(단계(610)). 만약 그렇다면, 단계(612)는 초기화되어 세그먼트 재생 fps를 해당 비디오 섹션에 대한 속도로 레코딩 fps을 곱한 것과 동일하게 설정한다(세그먼트 fps = Record_fps * 속도). 그 후에, 이 서브루틴은 단계(614)로 진행하여 버퍼(RAM 메모리 및/또는 비휘발성 장기 메모리)에 프레임(들)을 기록한다. 단계(614) 후에, 이 서브루틴은 단계(600)로 복귀한다.
이러한 세그먼트 시간 압축 및 확장 서브루틴은 입력 스트림이 단계(600)에서 개방되지 않는 것으로 결정될 때까지 단계(600-614)를 포함하는 루프된 서브프로세스를 포함한다는 것을 알 수 있다.
도 23을 참조하면, 가변 재생 속도 재생 서브루틴의 예가 도시 및 기술될 것이며, 이는 비디오 재생이 진행되는 동안 재생 프레임 레이트를 가속 또는 감소함으로써 슬로우 모션 및 패스트 모션 특수 효과를 갖는 비디오 파일을 재생하기 위한 순서도 알고리즘을 제공한다. 도 23의 알고리즘을 사용하는 애플리케이션은 도 20 및 21의 알고리즘에 의해 제작된 비디오를 재생하는데 필요하다. 이 애플리케이션은 메타데이터 및/또는 동반된 "비디오 프로젝트 파일" 내의 정보를 디코딩할 수 있어야만 하며, 비디오가 재생되는 동안 가속 및 감속 커맨드를 재생 프레임 레이트에 적용할 수 있어야 한다. 비디오 프로젝트는 실행되어야 할 특수 효과 커맨드를 가지며 커스텀 플레이어가 실시간 재생에서 디코딩 및 적용할 수 있는 첨부 파일 및 비디오 파일을 포함한다.
비디오가 호환 불가능한 플레이어로 재생되면, 메타데이터 내의 가속 및 감속 특수 효과 커맨드는 무시되고 비디오는 동일한 속도로 계속해서 재생된다.
이러한 서브루틴은 감속 서브루틴으로부터의 커맨드에 의한 개시에 따라 시작한다(단계(622)). 시작 후에, 이 서브루틴은 디바이스의 메모리에 상주하는 비디오 프로젝트 파일로부터 미가공 비디오 데이터 스트림을 입력으로서 획득한다(단계(624)). 단계(626)에 따라, 미가공 비디오 데이터 스트림은 전자 디바이스, 또는 원격 비디오 프로젝트 파일로부터의 비디오 프로젝트 파일 내의 오디오/비디오 스트림일 수 있다.
미가공 비디오 데이터 스트림의 획득 후에, 비디오 메타데이터, 레코드 fps, 재생 fps 및 가변 재생 로그를 얻는 서브루틴의 단계(628)가 개시된다. 그 후, 단계(630)는 도 20의 섹션에 적용된 시간 특수 효과를 갖는 비디오의 각 섹션에 대한 재생 속도(속도)를 추출한다.
카메라로부터의 비디오 데이터 입력 스트림이 개방되었는지를 결정하는 서브루틴의 단계(632)가 개시된다. 만약 단계(632)가 입력 스트림이 개방되지 않았다고 결정하면, 이 서브루틴은 단계(648)로 진행한다. 단계(648)는 RAM 메모리 및/또는 비휘발성 장기 메모리로부터 비디오/오디오 프레임의 데이터를 수신할 수 있다(단계(950)). 단계(648)가 완료된 후, 이 서브루틴은 중단 또는 종료된다(단계(652)).
입력 스트림이 단계(632)로부터 개방되어 있는 동안, 이 서브루틴은 속도가 "정상"보다 작은지를 결정한다(단계(634)). 만약 그렇다면 단계(636)가 초기화되어 세그먼트 재생 fps를 해당 비디오 섹션에 대한 속도로 나누어진 레코딩 fps와 동일하게 설정한다(세그먼트 fps = Record_fps/속도). 그 후에, 이 서브루틴은 단계(646)로 진행하여 버퍼(RAM 메모리 및/또는 비휘발성 장기 메모리)에 프레임(들)을 기록한다. 그 다음 서브루틴은 RAM 버퍼로부터의 오디오/비디오 피드를 디스플레이하는 단계(647)로 진행하며, 그 후에 단계(632)로 계속된다.
만약 속도가 "정상"보다 작지 않으면(단계(634)), 이 서브루틴은 속도가 "정상"과 동일한지를 결정한다(단계(638)). 만약 그렇다면, 단계(640)가 초기화되어 세그먼트 재생 fps를 해당 비디오 섹션에 대한 레코딩 fps와 동일하게 설정한다(세그먼트 fps = Record_fps). 그 후에, 이 서브루틴은 단계(646)로 진행하여 버퍼(RAM 메모리 및/또는 비휘발성 장기 메모리)에 프레임(들)을 기록한다. 단계(646) 후에, 이 서브루틴은 단계(632)로 복귀한다.
레코딩 속도가 "정상"과 같지 않다면(단계(638)), 이 서브루틴은 속도가 "정상"보다 큰지를 결정한다(단계(642)). 만약 그렇다면, 단계(644)는 초기화되어 세그먼트 재생 fps를 해당 비디오 섹션에 대한 속도로 레코딩 fps을 곱한 것과 동일하게 설정한다(세그먼트 fps = Record_fps * 속도). 그 후에, 이 서브루틴은 단계(646)로 진행하여 버퍼(RAM 메모리 및/또는 비휘발성 장기 메모리)에 프레임(들)을 기록한다. 단계(646) 후에, 이 서브루틴은 RAM 버퍼로부터의 오디오/비디오 피드를 디스플레이하도록 단계(647)로 계속되며, 그 다음 단계(632)로 복귀한다.
이러한 세그먼트 시간 압축 및 확장 서브루틴은 입력 스트림이 단계(632)에서 개방되지 않는 것으로 결정될 때까지 단계(632-647)를 포함하는 루프된 서브프로세스를 포함한다는 것을 알 수 있다.
본 기술을 이용하는 가능한 방법이 도 24에 도시되었다. 사용자는 본 기술의 사용자 인터페이스를 활용하여 애플리케이션 소프트웨어(앱)를 실행할 수 있는 디바이스 상에서 앱을 론칭할 수 있다. 앱은 디폴트 설정일 수 있는 이미지 조성 화면에서 열 수 있다. 즐겨찾기 또는 사전결정된 설정들이 선택적으로 사용자에 의해 선택될 수 있다. 선택적으로 여전히 이미지 조성 화면 내에 있는 중에, 디바이스 설정이 적용되고 디바이스가 준비 상태에 있다.
사용자는 앱 또는 사용자 인터페이스와 연관된 "레코드" 아이콘을 터치 또는 활성화함으로써, 디바이스의 카메라, 원격 카메라 또는 원격 비디오 스트림을 활용하여 기록을 시작할 수 있다. 선택적으로, 사용자는 계속해서 기록을 하기 위해 레코드 아이콘 또는 버튼을 터치 및 홀드할 수 있다. 일 양상은 아이콘 또는 아이콘과 연관된 버튼이 라이브 레코딩이 활성 상태임을 나타내도록 애니메이션화될 수 있는 것일 수 있다.
레코딩이 진행되는 동안, 사용자는 줌-인 또는 줌-아웃 하는 특수 효과 커맨드를 입력할 수 있다. 디바이스에 의해 디스플레이되는 비디오는 비디오와 연관된 특수 효과의 줌-인 또는 아웃을 나타내도록 구성되거나 구성가능하다.
레코딩이 진행되는 동안, 사용자는 슬로우 모션 및/또는 패스트 모션을 생성하기 위한 특수 효과 커맨드들을 입력할 수 있다. 일 양상은 디바이스 상의 라이브 비디오의 디스플레이의 속도에 차이가 없다는 것이다.
사용자는 레코드 아이콘 또는 버튼의 터치를 해제 또는 제거함으로써 레코딩을 종료할 수 있다. 그 후에, 앱은 레코딩을 중단하고, "리뷰" 화면을 디스플레이하고, 특수 효과의 프로세싱을 완료하며, 프로세싱된 비디오를 저장 또는 자동 저장하기 위한 옵션을 제공한다.
저장 후에, 새롭게 제작된 비디오는 프로세싱이 완료된 후 디바이스 또는 원격 디바이스에 의해 보여질 수 있다. 비디오는 계속해서 재생되고 종료 후에 재시작할 수 있다. 앱은 미가공 또는 프로세싱된 비디오를 추가로 편집 또는 수정하기 위해 활용될 수 있는 편집 툴들의 세트를 제공할 수 있다. 선택적으로, 비디오는 다른 커스텀 디자인 요소들과 함께 슬로우 모션 및 패스트 모션 효과들을 미세 튜닝하도록 편집될 수 있으며, 비디오를 포스팅할 수 있다. 이러한 프로세스는 원하는 비디오 결과가 생성될 때까지 반복될 수 있다.
앱은 비디오 내의 임의의 새로운 요소들을 프로세싱하고 각각의 편집이 완료된 후 사용자에게 다시 재생한다. 이 프로세스는 원하는 비디오 결과가 생성될 때까지 반복될 수 있다.
비디오를 프로세싱한 후 및/또는 비디오에 대한 임의의 추가적인 편집이 완료된 후에, 앱은 최종 비디오 또는 편집을 저장할 수 있다. 앱은 최종 비디오를 디바이스의 내부 메모리, 외부 메모리 및/또는 클라우드에 저장할 수 있다.
앱은 사용자가 최종 비디오를 소셜 미디어 플랫폼에 게시할 수 있게 하는 옵션을 더 제공할 수 있다. 앱은 최종 비디오를 추가적인 플랫폼 및/또는 클라우드에 업로드할 수 있으며, 사용자가 새로운 비디오를 레코딩하도록 하는 구성 화면을 디스플레이한다. 일부 실시예들에서, 앱은 디바이스의 사용자가 앱 내의 사용자의 스토리 또는 소셜 미디어 페이지에 비디오를 게시할 수 있게 하거나, 인스타그램(Instgram®), 페이스북(Facebook®), 트위터(Twitter®) 등과 같은 다른 소셜 미디어 앱에 외부적으로 공유될 수 있게 한다.
도 25를 참조하면, 인터페이스(30)의 적어도 일부가 기술된다. 인터페이스(30)는 디바이스 최적화된 파라미터 또는 변수를 위해 화면을 제공할 수 있는 GUI 인터페이스일 수 있지만, 이에 한정되는 것은 아니다. GUI(30)는 화면 상의 어느 곳에든 제공되는 기록 개시/중단 제어(32) 및 카메라(12)로부터의 미가공 비디오 데이터에서 프레임을 조작하기 위해 사용되는 디폴트 또는 사전정의된 프레임 레이트 속도를 제공할 수 있는 화면 상의 어느 곳에든 제공되는 속도 선택 영역(34)을 포함하도록 구성되거나 구성가능할 수 있다. 속도 선택 영역(34)은 현재 또는 선택가능한 속도를 나타내기 위해 사용자에 의한 제어를 통해 속도 선택 영역(34)을 따라 이동할 수 있는 속도 제어 표시기(35)를 포함할 수 있다. GUI 인터페이스(30)는 또한 줌(36), 줌 및 패스트 모션 속도 레이트(38), 및/또는 줌 및 슬로우 모션 속도 레이트(40)를 제어하기 위해 화면 상의 어디에나 영역을 포함할 수 있다. 다른 예에서, GUI 인터페이스(30)는 빠르게 줌-인 및 줌-아웃하기 위해 멀티-터치 제스처를 사용하며 동시에 "줌 팩터"가 그에 따라 업다운을 조정하는 "핀치-투-줌(pinch-to-zoom)" 동작을 사용하는 능력을 사용자에 제공할 수 있다.
일부 실시예에서, 사용자는 카메라의 기록 기능을 개시, 중단 또는 일시정지하는 시작/중단 제어(32)를 터치 및/또는 유지할 수 있다. 또한, 사용자는 손가락 또는 스타일러스-유사 디바이스로 영역을 터치하며 임의의 방향으로 영역을 따라 슬라이딩 모션을 만듬으로써 속도 선택 영역(34)과 상호작용할 수 있다. 프로세싱 유닛은 이러한 슬라이딩 이동을 특수 효과 입력 커맨드로서 해석하도록 구성되거나 구성가능할 수 있다. 예를 들어, 속도 선택 영역(34)의 중앙 영역으로부터 오른쪽으로 슬라이딩하는 것은, 슬라이딩 모션이 속도 선택 영역(34) 상에서 얼마나 멀리 오른쪽으로 이동하는지에 따라 네이티브 속도 레이트로부터 2x, 3x, 4x, 또는 "n"x로 속도 레이트를 변경할 수 있다. 속도 선택 영역(34)의 중앙 영역으로부터 왼쪽으로 슬라이딩하는 것은, 슬라이딩 모션이 속도 선택 영역(34) 상에서 얼마나 멀리 왼쪽으로 이동하는지에 따라 네이티브 속도 레이트로부터 -2x, -3x, -4x, -"n"x로 속도 레이트를 변경할 수 있다.
일부 실시예에서, 사용자는 GUI의 하부 영역으로부터 상부 영역으로 수직 슬라이딩 운동을 함으로써 카메라의 줌 기능을 제어할 수 있다. 사용자는 줌 및 패스트 모션 또는 슬로우 모션 효과가 요구되는지에 따라, GUI의 하부 영역으로부터 상부 오른쪽 또는 왼쪽 영역을 향해 곡선의 수직 슬라이딩 모션을 만듬으로써 줌 및 속도 레이트의 조합을 추가로 제어할 수 있다.
대안적으로, GUI 인터페이스(30)는 카메라 및/또는 디스플레이의 기능, 속성, 동작, 설정 및/또는 특성이 제어될 수 있는 영역, 아이콘 또는 윈도우를 포함하도록 구성되거나 구성가능할 수 있다. 이러한 기능, 속성, 동작, 설정 및/또는 특성의 예는 플래시, 핸즈 프리, 타이머, 뮤트, 셀피, 브로드캐스트, 공유, 필터, 미디어, 중단/시작 레코딩 등을 포함할 수 있지만, 이에 제한되지 않는다. GUI 인터페이스(30)는 미가공 비디오의 속도 레이트의 최소, 최대 또는 범위를 사전설정하는데 사용되도록 구성되거나 구성가능할 수 있다.
또한 선택적으로, GUI 인터페이스(30)는 비디오 데이터 스트림에 편집 옵션들을 제공하는 영역, 아이콘 또는 윈도우를 포함하도록 구성되거나 구성가능할 수 있다. 편집 옵션은 텍스트 추가, 도면 추가, 사운드 추가, 얼굴 필터, 장식 추가, 비디오 루프 생성, 커버 추가 등을 포함할 수 있지만, 이에 제한되지 않는다.
GUI 인터페이스(30)는 미가공 비디오 데이터 및/또는 수정된 비디오 데이터일 수 있거나, 편집된 비디오 데이터 스트림이 디스플레이될 수 있는 출력 비디오 레코딩 데이터의 디스플레이를 포함하도록 구성되거나 구성가능할 수 있다. GUI 인터페이스(30)에 의해 디스플레이되는 출력 비디오 레코딩 데이터는 입력의 변경으로 인해 실시간으로 동적 변경될 수 있다는 것을 알 수 있다. 따라서, 본 기술은 카메라가 비디오를 획득하고 레코딩이 진행되는 중에 미가공 비디오 데이터, 임의의 수의 수정된 비디오 데이터 또는 그 서브세트들 사이에서의 매끄러운 전이를 실시간으로 디스플레이할 수 있다. 수정된 비디오 데이터는 임의의 수의 패스트에서 슬로우로의 모션 서브세트들을 포함할 수 있고, 이들 서브세트들은 미가공 비디오 데이터의 서브세트와의 조합일 수 있다. 미가공 비디오 데이터 및/또는 임의의 수의 수정된 비디오 데이터를 디스플레이하는 것은 카메라가 미가공 비디오 데이터와 연관된 이미지들을 캡쳐할 때 라이브로 또는 실시간으로 달성된다. 본 기술은 카메라가 이미지를 캡쳐하고 출력 비디오가 메모리에 기록되는 동안 디스플레이된 출력 비디오 데이터를 렌더링한다는 것을 알 수 있다. 결과적으로, 여전히 비디오 데이터를 캡쳐하는 동안 사용자가 카메라를 이동, 패닝, 줌 등을 할 수 있게 하며 동시에 미가공 비디오 데이터에 임의의 수의 특수 효과들을 적용 및 디스플레이할 수 있도록 한다.
사용 시에, 사용자가 본 기술 소프트웨어 애플리케이션을 포함하거나 그와 동작가능하게 연관된 전자 디바이스를 이용하여 카메라 동작을 개시할 수 있거나, 또는 사용자가 카메라와 동작가능하게 연관된 본 기술 소프트웨어 애플리케이션을 이용하여 카메라 동작을 개시할 수 있음을 이제 이해할 수 있을 것이다.
본 기술 소프트웨어 애플리케이션의 동작 시에, 사용자 인터페이스는 본 기술 소프트웨어 애플리케이션 및/또는 카메라의 기능을 제어하도록 사용자에게 제공된다.
사용자는 인터페이스를 사용하여 카메라의 레코딩 기능을 개시할 수 있으며, 이때 본 기술 소프트웨어 애플리케이션은 마이크로폰 또는 주변 마이크로폰(들)과 연관될 수 있는 카메라 또는 원격 비디오 피드로부터 임의의 미가공 비디오 데이터를 수신할 것이다. 이러한 동작 동안, 카메라 및/또는 마이크로폰으로부터의 미가공 비디오 데이터는 메모리 유닛 대신 본 기술 소프트웨어 애플리케이션으로 우회되며, 이는 카메라로부터 미가공 데이터를 정상적으로 수신할 것이다.
인터페이스는 카메라로부터 수신된 미가공 비디오 데이터의 레코딩 속도 비율을 제어하기 위한 사용자로부터의 간단한 입력을 제공한다. 예시적인 목적을 위해, 인터페이스 상의 사용자에 의한 이러한 입력은 터치화면의 일부를 가로지르는 이동 또는 터치화면의 일부에 가해지는 압력일 수 있다. 이러한 입력은 커서, 음성 커맨드, 아이콘의 활성화, 스위치 또는 버튼의 동작, 온-화면 제스처, 초저주파 디바이스 등과 같은 다양한 형태로 올 수 있지만, 이것으로 제한되지 않음을 이해할 수 있을 것이다.
사용자가 속도 레이트를 변경하기 위한 입력을 제공하지 않으면, 카메라로부터의 미가공 비디오 데이터는 디스플레이되고 메모리에 기록된다.
일부 실시예들에서, 사용자는 비디오의 시간을 조작하기 위해 "원터치" 모드를 활용할 수 있다. 이러한 모드에서, 기록 동작은 화면을 터치함으로써 개시될 수 있고, 화면에서 손가락을 떼는 것은 기록 동작을 중단시킬 것이다. 대안적으로, 레코딩은 화면을 터치하는 동안 동작한다. 예시적인 동작은 다음을 포함할 수 있다: 터치 핑거를 화면 중간의 왼쪽으로 이동시키는 것은 비디오의 시간을 감속시킬 것이다; 터치 핑거를 화면의 중간으로 이동시키는 것은 비디오의 시간을 정상 시간으로 복귀시킨다; 터치 핑거를 화면 중간의 오른쪽으로 이동시키는 것은 비디오의 시간을 가속시킬 것이다; 터치 핑거를 맨끝 왼쪽에서 맨끝 오른쪽으로 (그리고 그 반대로) 빠르게 이동할 수 있다; 터치 핑거를 위로 이동시키는 것은 줌-인 (망원) 동작을 개시할 것이다; 터치 핑거를 아래로 이동시키는 것은 줌-아웃 (광각) 동작을 개시할 것이다; 그리고 레코딩이 진행 중이고 터치 핑거가 화면 상에 있는 동안 다른 손가락으로 플래시, 뮤트 등과 같은, 그러나 이것으로 제한되지 않는 다른 설정들을 개별적으로 라이브로 조정한다.
또한, 일부 실시예들은 레코딩되는 비디오가 사용자 인터페이스에 나타내어지는 동안 사용자가 사용자 인터페이스를 통해 기능을 개별적으로 선택할 수 있게 하는 "다중 터치" 모드를 포함할 수 있다.
일부 실시예들에서, 예를 들어 "핸즈 프리" 모드가 활용될 수 있으며, 사용자는 속도 마커 또는 표시자(35)를 탭하거나 또는 표시자(35)를 속도 선택 영역(34) 상의 원하는 속도 위치로 슬라이드할 수 있다.
또한, 예를 들어 "핸즈 온" 모드가 활용될 수 있으며, 사용자는 "레코드" 버튼(32)을 누른 채로 유지하고 그의 손가락을 왼쪽으로 슬라이드하면서 버튼이 사용자의 손가락 아래에 따라오도록 할 수 있으며, 이 예에서는 그에 따라 버튼이 "-2X" 어포던스 라벨(affordance label)의 수직 위에 놓이도록 할 수 있다. 속도 표시자(35)는 "레코드" 버튼(32)의 이동을 따르기 위해서 속도 선택 영역(34)을 따라 자동으로 이동할 수 있음을 알 수 있다. 따라서, "핸즈-온" 모드에서, 속도 선택 영역(34) 상에 위치된 속도 표시자(35)는 그에 따라 "레코드" 버튼(32)의 이동과 함께 이동함을 알 수 있다.
대안적으로, 만약 사용자가 속도 레이트를 변경하기 위한 입력을 제공하지 않으면, 미가공 비디오 데이터는 본 기술 소프트웨어 애플리케이션 및 그의 연관된 알고리즘을 이용하여 실시간으로 프로세싱된다. 미가공 비디오 데이터는 하나 이상의 프레임을 포함하고, 이들 프레임은 사용자에 의해 입력된 속도 레이트에 대응하는 최종 비디오 데이터 스트림으로 생성하도록 프로세싱된다.
이것은 수정된 비디오 데이터 스트림을 생성하기 위해 본 기술 소프트웨어 애플리케이션을 이용하여 달성된다. 이러한 수정된 비디오 데이터 스트림은 미가공 비디오 데이터로부터 특별히 식별된 프레임들을 드롭함으로써 또는 특별히 식별된 프레임을 복사하고 이들의 원래 프레임에 인접하게 이러한 복사된 프레임을 추가하여 미가공 비디오 데이터에 프레임을 추가함으로써 또는 두 개의 기준 프레임 사이에 하나 이상의 프레임을 보간하는 "프레임 블렌딩"을 함으로써 셍성될 수 있다. 드롭된 프레임 또는 추가된 프레임의 개수는 원하는 속도 레이트가 획득될 때까지 본 기술 소프트웨어 애플리케이션에 의해 결정 및 반복될 수 있다.
현재 기술 소프트웨어 애플리케이션은 미가공 비디오 데이터 또는 수정된 비디오 데이터 스트림을 메모리에 기록할 수 있으며, 이에 의해서 정상 속도 레이트, 패스트 모션 속도 레이트 또는 슬로우 모션 속도 레이트로 비디오가 디스플레이도록 제공한다.
비디오의 속도 레이트는 비디오를 메모리에 기록한 후에 수정되지 않으며, 이에 의해 특수 효과를 갖거나 갖지 않는 비디오를 실시간으로 레코딩하며 비디오 레이트 속도를 변경하기 위한 사후 편집을 필요로 하지 않다는 것을 알 수 있다.
본 기술은 알고리즘이 비디오 데이터 스트림의 보다 완만한 시간 수정을 생성하도록 구성되거나 구성가능할 수 있다. 예를 들어, 알고리즘은 사용자가 하나의 속도에서 다른 속도로 점프할 때 비디오 갭에서 채울 수 있다. 알고리즘은 2개 이상의 데이터 포인트 사이에서 데이터를 보간할 수 있고, 따라서 예를 들어 -3x 슬로우 모션로부터 4x 패스트 모션으로 갈 때 보다 더 완만함을 나타낸다.
재생 중에, 비디오는 매우 돌발적일 수 있다. 이것은 각 특수 효과의 시작으로의 전이 동안, 각각의 특수 효과 동안 그리고 특수 효과로부터 정상 시간으로의 전이 동안 사용자 경험을 더 높은 해상도 인지로 개선시키도록 비디오를 평활화하기 위해 알고리즘적으로 정정될 수 있으며, 이 동안에 활동적인 스포츠 이벤트에서 사용자가 필요시에 주변을 이동하고 카메라를 패닝하는 동시에 특별한 순간(피크 모먼트)를 캡처한다.
피크 모먼트의 예는, 대상이 비디오에서 점프하는 경우로, 더 이상의 상향 모멘텀이 존재하지 않지만 사람이 아직 떨어지기 시작하지 않은 순간이다. 레코딩되는 장면에서 액션의 피크 모멘트를 계산하고 피크 모멘트의 직전 및 직후의 슬로우 모션을 이용하는 것과 같이 사전결정된 원하는 동작을 취하는 데에 인공 지능(AI)이 활용될 수 있다.
본 기술은 고프로(GoPro®), DSLR, 미러리스 카메라, 프로 레벨 비디오 기어, 짐벌, 트리포드, 카메라 및 원격 트리거되는 플래시 조명, 아이 글래스 카메라, 드론, 웹캠 등의 액션 카메라와 같은 임의의 카메라 디바이스에 내장될 수 있다. 본 기술은 원격 제어에 내장될 수 있으며 본 기술이 내장되지 않은 기존의 전자 기어에 블루투스(Bluetooth®)또는 다른 프로토콜을 통해서 접속될 수 있다.
본 기술의 사용자 인터페이스는 3-D 또는 2-D 로 표현될 수 있다. 사용자는 하나의 동작 평면에서 전자 디바이스의 터치화면 상에서 손가락 또는 스타일러스를 옆에서 옆으로 슬라이드할 수 있다. 3-D 사용자 인터페이스를 이용하여, 전자 디바이스는 사용자의 제어기의 깊이의 변화를 감지할 수 있고, 사용자의 압력의 크기가 적용되며, 특수 효과를 적절하게 조정할 수 있다. 조이스틱은 본 기술과 함께 이용되고 활용될 수 있다.
사용자 인터페이스는 사용자가 디바이스 상에서 더 강하게 또는 더 약하게 누를 수 있도록 압력에 민감할 수 있고, 디바이스는 고속 순방향 및 슬로우 모션 특수 효과로 재생 속도를 수정하기 위한 제어로서 이들을 해석할 것이다.
본 기술은 초당 충분히 높은 프레임으로 레코딩을 가능하게 할 수 있고 그 결과 "미가공"의 편집되지 않은 비디오(특수 효과가 적용되지 않고 레코딩됨)가 레코딩 후에 편집될 수 있으며, 슬로우 모션은 높은 레코딩 프레임 레이트가 더 느린 재생 fps에 비해 그것을 지원하므로 완만하게 유지될 것이다.
뇌파 감지 디바이스, 이식 또는 표면 부착 또는 무선 원격 감지가 본 기술과 함께 활용되어 생각하는대로 시간 속도 특수 효과를 바로 제어하는 것이 이해될 수 있다.
장면 내의 보다 세밀한 세부사항을 기록하고 파일 크기를 감소시키도록 보다 높은 프레임 레이트로의 레코딩을 개선시키기 위해 압축 기술이 본 기술에서 활용될 수 있다. 디바이스 성능이 향상될 수 있고 따라서 사용자는 파일 크기를 감소시키는 동시에 장면에서의 보다 세밀한 세부사항을 기록하도록 보다 더 높은 프레임 레이트로 레코딩할 수 있다.
장면 속도가 가속 및 감속되는 세그먼트 중에 비디오에 명확하고 가장 이해하기 쉬운 오디오를 제공하기 위해서 본 기술에 오디오 프로세싱 알고리즘이 활용될 수 있다. Dolby Labs, DTS, Inc, Fraunhofer Institute, Philips, Technicolor, IMAX, Sony 등과 같은 기업으로부터의 제 3 자 API가 오디오 프로세싱을 수행하기 위해 활용될 수 있다.
비디오들의 안전한 전송 및 저장을 제공하기 위해 데이터 암호화 알고리즘이 본 기술과 함께 활용될 수 있다.
암호화 및 블록체인 기술 알고리즘은 본 기술을 이용하여 제작된 비디오의 원본 콘텐츠 생성자를 기록하도록 분산 원장(distributed ledger)을 생성하기 위해 본 기술과 함께 활용될 수 있다. 비디오는 액세스 허가를 위해 암호화 토큰이 "상환(redeemed)"될 것을 요청함으로써 액세스될 수 있다.
실시간 비디오 특수 효과 시스템 및 방법의 실시예가 상세하게 기술되었지만, 본 기술의 진정한 사상 및 범주 내에 있는 모든 변경이 가능하다는 것은 명백하다. 위의 설명과 관련하여, 크기, 재료, 형상, 형태, 기능 및 동작의 방식, 조립 및 이용의 변화를 포함하는 본 기술의 부분들에 대한 최적의 치수 관계는, 당업자에게 용이하게 명백하고 분명한 것으로 간주되며, 도면에 도시되고 명세서에 기술된 것들의 모든 등가의 관계들은 본 기술에 포함되는 것으로 의도된다. 예를 들어, 임의의 적합한 견고한 재료가 전술된 것 대신에 사용될 수 있다. 또한 레코딩이 진행되는 동안 비디오 레코딩에서 특수 효과를 생성하는 것이 기술되었지만, 본 명세서에 기술된 실시간 비디오 특수 효과 시스템 및 방법은 또한 프레임 속성의 변경, 레코드 프레임 레이트의 변경, 재생 프레임 레이트의 변경, 그리고 시간 압축 및 확장과 임의의 데이터 스트림과 연관된 다른 실시간 특수 효과를 실시간으로 변경하는 데에도 적합하다는 점이 이해되어야 한다.
따라서, 전술된 내용은 본 기술의 원칙의 예시로서만 간주된다. 또한, 많은 수정 및 변경이 당업자에게 용이하게 일어날 수 있기 때문에, 본 기술을 도시되고 설명된 정확한 구성 및 동작으로 제한하는 것이 요구되지 않으며, 따라서, 모든 적합한 수정 및 등가물이 본 기술의 범주 내에 포함될 수 있다.

Claims (22)

  1. 라이브 비디오 레코딩 데이터의 특수 효과 동작을 실시간으로 제어하기 위한 비디오 캡쳐 및 디스플레이 시스템으로서,
    현실 세계 장면의 비디오를 캡쳐하도록 구성된 카메라;
    그래픽 사용자 인터페이스; 및
    상기 카메라 및 상기 그래픽 사용자 인터페이스에 동작가능하게 연결되거나 연결가능한 적어도 하나의 프로세싱 유닛을 포함하고;
    상기 적어도 하나의 프로세싱 유닛은:
    캡쳐되는 비디오를 상기 그래픽 사용자 인터페이스 상에서 정상 속도로 재생하며;
    상기 그래픽 사용자 인터페이스에 의해 수신된 사용자 입력에 응답하여 캡쳐되는 비디오의 그래픽 인터페이스 상에서의 비디오 재생 속도를 정상 재생 속도로부터 수정된 재생 속도로 변경하도록 구성되는,
    시스템.
  2. 제 1 항에 있어서,
    상기 적어도 하나의 프로세싱 유닛은, 캡쳐되는 비디오를 상기 그래픽 사용자 인터페이스 상에서 상기 수정된 재생 속도로 재생하는 것으로부터 캡쳐되는 비디오를 정상 속도로 재생하는 것으로 복귀시키도록 구성되는, 비디오 캡쳐 및 디스플레이 시스템.
  3. 제 2 항에 있어서,
    상기 적어도 하나의 프로세싱 유닛은 상기 그래픽 사용자 인터페이스에 의해 수신된 사용자 입력에 응답하여, 캡쳐되는 비디오를 상기 그래픽 사용자 인터페이스 상에서 상기 수정된 속도로 재생하는 것으로부터 캡쳐되는 비디오를 정상 재생 속도로 재생하는 것으로 복귀시키도록 구성되는, 비디오 캡쳐 및 디스플레이 시스템.
  4. 제 1 항에 있어서,
    상기 적어도 하나의 프로세싱 유닛은 레코딩되는 비디오의 상기 그래픽 인터페이스 상에서의 재생 속도를 정상 재생 속도로부터 수정된 재생 속도로 매끄럽게 변경하도록 구성되는, 비디오 캡쳐 및 디스플레이 시스템.
  5. 제 1 항에 있어서,
    카메라 및 그래픽 사용자 인터페이스가 동일한 전자 디바이스에 포함되거나 또는 카메라가 전자 디바이스로부터 원거리에 있는, 비디오 캡쳐 및 디스플레이 시스템.
  6. 제 5 항에 있어서,
    상기 전자 디바이스는 스마트폰, 컴퓨터, PDA(Personal Digital Assistant) 또는 태블릿 디바이스를 포함하는, 비디오 캡쳐 및 디스플레이 시스템.
  7. 제 1 항에 있어서,
    적어도 하나의 RAM 메모리 및 적어도 하나의 비휘발성 장기 메모리를 더 포함하고, 둘 모두가 상기 프로세싱 유닛과 동작가능하게 연결되거나 연결가능한, 비디오 캡쳐 및 디스플레이 시스템.
  8. 라이브 비디오 레코딩 데이터의 특수 효과 동작을 실시간으로 제어하기 위한 비디오 레코딩 시스템으로서,
    미가공 비디오 데이터를 네이티브 속도 레이트로 제공하도록 구성되거나 구성가능한 적어도 하나의 카메라 -상기 미가공 비디오 데이터는 적어도 부분적으로 상기 카메라에 의해 실시간으로 캡쳐되는 이미지들에 대응함- ;
    적어도 하나의 메모리; 및
    상기 카메라 및 상기 메모리와 동작상 통신하는 적어도 하나의 프로세싱 유닛을 포함하며, 상기 프로세싱 유닛은:
    카메라로부터 미가공 비디오 데이터를 실시간으로 수신하고;
    적어도 하나의 입력을 수신하고;
    상기 입력이 미가공 비디오 데이터의 네이티브 속도 레이트를 변경하는 것과 연관되는지를 결정하고, 만약 그렇다면 카메라로부터 미가공 비디오 데이터를 수신하면서 실시간으로 네이티브 속도 레이트와 상이한 하나 이상의 수정된 속도 레이트의 수정된 비디오 데이터를 생성하도록 미가공 비디오 데이터 내의 적어도 하나의 프레임을 수정하고;
    메모리에 적어도 하나의 출력 비디오 레코딩 데이터를 기록하며, 여기서 상기 출력 비디오 레코딩 데이터는 네이티브 속도 레이트의 미가공 비디오 데이터, 수정된 속도 레이트의 수정된 비디오 데이터 및 상기 미가공 비디오 데이터와 상기 수정된 비디오 데이터의 조합 중 하나인 것으로 구성되거나 구성가능한, 비디오 레코딩 시스템.
  9. 라이브 비디오 레코딩 데이터의 특수 효과 동작을 실시간으로 제어하기 위한 클라이언트측 전자 시스템으로서,
    소프트웨어 명령을 저장 및 실행하도록 각각 구성된 메모리 및 프로세서를 포함하고, 상기 소프트웨어 명령은:
    카메라로부터 네이티브 속도 레이트의 미가공 비디오 데이터 -상기 미가공 비디오 데이터는 상기 카메라에 의해 캡쳐되는 이미지들에 적어도 대응함- 를 실시간으로 획득하라는 요청을 수신하도록 구성되거나 구성가능한 미가공 데이터 수신 구성요소;
    상기 카메라로부터의 상기 미가공 비디오 데이터의 네이티브 속도 레이트를 하나 이상의 수정된 속도 레이트로 변경하라는 적어도 하나의 요청을 수신하도록 구성되거나 구성가능한 속도 레이트 결정 구성요소;
    상기 네이티브 속도 레이트를 변경하라는 요청을 수신함에 따라, 수정될 미가공 비디오 데이터 내의 적어도 하나의 프레임 또는 위치를 식별하고, 상기 카메라로부터 미가공 비디오 데이터를 수신하면서 실시간으로 상기 네이티브 속도 레이트와 상이한 수정된 속도 레이트를 갖는 수정된 비디오 데이터를 생성하기 위해서 상기 프레임 또는 위치를 수정하도록 구성되거나 구성가능한 프레임 수정 구성요소; 및
    상기 카메라로부터 미가공 비디오 데이터를 수신하면서 실시간으로 출력 비디오 레코딩 데이터 -상기 출력 비디오 레코딩 데이터는 네이티브 속도 레이트의 미가공 비디오 데이터, 수정된 속도 레이트의 수정된 비디오 데이터 및 미가공 비디오 데이터와 수정된 비디오 데이터의 조합 중 하나로부터 선택됨- 를 메모리 및 보조 메모리 중 하나에 기록하도록 구성되거나 구성가능한 출력 비디오 레코딩 데이터 기록 구성요소
    로 조직화된 명령들을 포함하는, 클라이언트측 전자 시스템.
  10. 제 9 항에 있어서,
    상기 프로세서는 상기 미가공 비디오 데이터가 카메라로부터 메모리에 기록되는 것을 배제하도록 추가로 구성되거나 구성가능한, 클라이언트측 전자 시스템.
  11. 제 9 항에 있어서,
    상기 수정된 속도 레이트는 네이티브 속도 레이트보다 작은 것 및 네이티브 속도 레이트보다 큰 것 중 하나로부터 선택되는, 클라이언트측 전자 시스템.
  12. 제 11 항에 있어서,
    상기 수정된 속도 레이트가 상기 네이티브 속도 레이트보다 작으면, 상기 프로세서는 수정된 비디오 데이터를 생성하기 위해 미가공 비디오 데이터에 적어도 하나의 새로운 프레임을 추가하도록 구성되거나 구성가능한, 클라이언트측 전자 시스템.
  13. 제 11 항에 있어서,
    상기 수정된 속도 레이트가 상기 네이티브 속도 레이트보다 크면, 상기 프로세서는 수정된 비디오 데이터를 생성하기 위해 미가공 비디오 데이터로부터 프레임을 제거하도록 구성되거나 구성가능한, 클라이언트측 전자 시스템.
  14. 제 9 항에 있어서,
    상기 속도 레이트 결정 구성요소는, 인터페이스로부터 적어도 하나의 입력을 수신하고, 상기 입력이 네이티브 속도 레이트를 수정된 속도 레이트로 변경하는 것과 연관된 것인지를 결정하도록 추가로 구성되거나 구성가능한, 클라이언트측 전자 시스템.
  15. 제 14 항에 있어서,
    상기 인터페이스는 네이티브 속도 레이트 및 수정된 속도 레이트 중 하나와 연관된 입력을 생성하도록 구성되거나 구성가능한 부분을 포함하는 그래픽 사용자 인터페이스이고, 상기 그래픽 사용자 인터페이스는 카메라로부터 미가공 비디오 데이터를 수신하면서 실시간으로 출력 비디오 레코딩 데이터를 디스플레이하도록 구성되거나 구성가능하며, 상기 출력 비디오 레코딩 데이터는 입력에 따라 미가공 비디오 데이터와 수정된 비디오 데이터 사이의 전이를 갖는 미가공 비디오 데이터 및 수정된 비디오 데이터의 조합을 포함하도록 구성되거나 구성가능한, 클라이언트측 전자 시스템.
  16. 제 14 항에 있어서,
    상기 인터페이스는 메모리 또는 명령을 저장하는 적어도 하나의 컴퓨터 판독가능 저장 매체와 동작상 연관되며, 상기 명령은 프로세서에 의해 실행될 때 상기 프로세서로 하여금:
    상기 카메라로부터 미가공 비디오 데이터를 수신하면서 상기 카메라로부터의 미가공 비디오 데이터를 실시간으로 프로세서로 향하게 하고 메모리로는 보내지 않으며;
    상기 미가공 비디오 데이터를 프로세서로부터 메모리에 기록하거나, 상기 미가공 비디오 데이터에 적어도 하나의 알고리즘을 적용하여 수정된 비디오 데이터를 생성하고 상기 수정된 비디오 데이터를 프로세서로부터 메모리에 기록하게 하는, 클라이언트측 전자 시스템.
  17. 라이브 비디오 캡쳐 데이터의 특수 효과 동작을 실시간으로 제어하기 위한 방법으로서,
    카메라를 이용하여 현실 세계 장면의 비디오를 캡쳐하는 단계;
    상기 캡쳐되는 비디오를 그래픽 사용자 인터페이스 상에서 정상 속도로 재생하는 단계;
    상기 그래픽 사용자 인터페이스에 의해 수신된 사용자 인터페이스 입력에 응답하여, 레코딩되는 비디오의 그래픽 사용자 인터페이스 상의 재생 속도를 정상 재생 속도로부터 수정된 재생 속도로 변경하는 단계를 포함하는, 방법.
  18. 제 17 항에 있어서,
    캡쳐되는 비디오를 그래픽 인터페이스 상에서 수정된 속도로 재생하는 것으로부터 캡쳐되는 비디오를 그래픽 인터페이스 상에서 정상 재생 속도로 재생하는 것으로 복귀하는 단계를 더 포함하는, 방법.
  19. 제 18 항에 있어서,
    상기 그래픽 사용자 인터페이스에서 수신된 사용자 입력에 응답하여, 캡쳐되는 비디오를 그래픽 인터페이스 상에서 수정된 속도로 재생하는 것으로부터 캡쳐되는 비디오를 그래픽 인터페이스 상에서 정상 속도로 재생하는 것으로 복귀하는 단계가 수행되는, 방법.
  20. 제 17 항에 있어서,
    상기 레코딩되는 비디오의 그래픽 인터페이스 상의 재생 속도를 정상 재생 속도로부터 수정된 재생 속도로 변경하는 단계가 매끄럽게 수행되는, 방법.
  21. 제 17 항에 있어서,
    상기 카메라 및 상기 그래픽 사용자 인터페이스는 동일한 전자 디바이스에 통합되는, 방법.
  22. 제 21 항에 있어서,
    상기 전자 디바이스는 스마트폰, 컴퓨터 또는 태블릿 디바이스를 포함하는, 방법.
KR1020217016092A 2018-10-29 2019-10-29 실시간 비디오 특수 효과 시스템 및 방법 KR20210082232A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/173,033 US10388322B1 (en) 2018-10-29 2018-10-29 Real time video special effects system and method
US16/173,033 2018-10-29
PCT/US2019/058458 WO2020092301A2 (en) 2018-10-29 2019-10-29 Real time video special effects system and method

Publications (1)

Publication Number Publication Date
KR20210082232A true KR20210082232A (ko) 2021-07-02

Family

ID=67620953

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217016092A KR20210082232A (ko) 2018-10-29 2019-10-29 실시간 비디오 특수 효과 시스템 및 방법

Country Status (6)

Country Link
US (5) US10388322B1 (ko)
EP (1) EP3874762A4 (ko)
JP (1) JP2022509502A (ko)
KR (1) KR20210082232A (ko)
CN (1) CN113767640A (ko)
WO (1) WO2020092301A2 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10404923B1 (en) 2018-10-29 2019-09-03 Henry M. Pena Real time video special effects system and method
US11641439B2 (en) 2018-10-29 2023-05-02 Henry M. Pena Real time video special effects system and method
US10388322B1 (en) 2018-10-29 2019-08-20 Henry M. Pena Real time video special effects system and method
US10956747B2 (en) * 2018-12-31 2021-03-23 International Business Machines Corporation Creating sparsely labeled video annotations
CN112532865B (zh) * 2019-09-19 2022-07-19 华为技术有限公司 慢动作视频拍摄方法及电子设备
CN114257775B (zh) * 2020-09-25 2023-04-07 荣耀终端有限公司 视频特效添加方法、装置及终端设备
CN112637518B (zh) * 2020-12-21 2023-03-24 北京字跳网络技术有限公司 模拟拍照特效的生成方法、装置、设备及介质
CN114697749A (zh) * 2020-12-28 2022-07-01 北京小米移动软件有限公司 视频剪辑方法、装置,存储介质及电子设备
CN113852755A (zh) * 2021-08-24 2021-12-28 荣耀终端有限公司 拍摄方法、设备、计算机可读存储介质及程序产品
CN113873319A (zh) * 2021-09-27 2021-12-31 维沃移动通信有限公司 视频处理方法、装置、电子设备及存储介质
CN115379136A (zh) * 2022-08-19 2022-11-22 北京字跳网络技术有限公司 特效道具处理方法、装置、电子设备及存储介质
CN115914758B (zh) * 2022-11-18 2024-01-26 广东轻工职业技术学院 基于区块链云计算的影视特效处理***

Family Cites Families (85)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US1042012A (en) 1911-12-20 1912-10-22 Fred W Leuthesser Air-valve for radiators.
US1132015A (en) 1913-08-12 1915-03-16 Babcock & Wilcox Co Baffle system for stirling boilers.
US1162014A (en) 1915-02-04 1915-11-30 Pietro Arrighi Ear forming and tying mechanism for sack-sewing machines.
US3282003A (en) 1962-01-12 1966-11-01 Prec Engineering Concern Inc Modular controlled atmosphere enclosure
US4302013A (en) 1980-05-23 1981-11-24 George Kavis Puzzle assembly and display apparatus
US4282011A (en) 1980-05-30 1981-08-04 Dan River Incorporated Woven fabrics containing glass fibers and abrasive belts made from same
US5182005A (en) 1990-06-01 1993-01-26 Basf Aktiengesellschaft Reference electrode for chemical sensors
US5192005A (en) 1991-08-01 1993-03-09 Dart Industries Inc. Condiment shaker
US6132013A (en) 1996-09-25 2000-10-17 Kelsey-Hayes Co. Anti-lock and traction control braking system using non-driven wheel brake de-isolation
JPH11203837A (ja) 1998-01-16 1999-07-30 Sony Corp 編集システムおよび編集方法
IL128720A (en) 1999-02-25 2009-06-15 Cidway Technologies Ltd Method for confirming actions performed over the phone
JP3902904B2 (ja) 1999-03-23 2007-04-11 キヤノン株式会社 情報提示装置、方法、カメラ制御装置、方法及びコンピュータ読み取り可能な記憶媒体
US6424789B1 (en) 1999-08-17 2002-07-23 Koninklijke Philips Electronics N.V. System and method for performing fast forward and slow motion speed changes in a video stream based on video content
US6590586B1 (en) 1999-10-28 2003-07-08 Xerox Corporation User interface for a browser based image storage and processing system
DE19958181A1 (de) 1999-12-02 2001-06-07 Clariant Gmbh Pigmentdispergatoren auf Basis von Diketopyrrolopyrrolverbindungen und Pigmentzubereitungen
US6302014B1 (en) 2001-04-10 2001-10-16 Huo Feng Hsia Kuan Rotary food processor
US20030052909A1 (en) 2001-06-25 2003-03-20 Arcsoft, Inc. Real-time rendering of edited video stream
KR100484257B1 (ko) 2002-09-12 2005-04-22 주식회사 하이닉스반도체 반도체 소자의 차동증폭형 입력 버퍼
US7152209B2 (en) * 2003-03-28 2006-12-19 Microsoft Corporation User interface for adaptive video fast forward
US7869699B2 (en) 2003-09-08 2011-01-11 Ati Technologies Ulc Method of intelligently applying real-time effects to video content that is being recorded
US7725828B1 (en) 2003-10-15 2010-05-25 Apple Inc. Application of speed effects to a video presentation
EP1531474A1 (en) 2003-11-14 2005-05-18 Sony International (Europe) GmbH Video signal playback apparatus and method
US7818658B2 (en) 2003-12-09 2010-10-19 Yi-Chih Chen Multimedia presentation system
EP3002724A3 (en) 2005-05-23 2016-07-20 Open Text S.A. Distributed scalable media environment
US7739599B2 (en) 2005-09-23 2010-06-15 Microsoft Corporation Automatic capturing and editing of a video
US20100172624A1 (en) 2006-04-21 2010-07-08 ProMirror, Inc. Video capture, playback and analysis tool
US9451195B2 (en) 2006-08-04 2016-09-20 Gula Consulting Limited Liability Company Moving video tags outside of a video area to create a menu system
US8656282B2 (en) 2007-01-31 2014-02-18 Fall Front Wireless Ny, Llc Authoring tool for providing tags associated with items in a video playback
US8122378B2 (en) 2007-06-08 2012-02-21 Apple Inc. Image capture and manipulation
US20090058842A1 (en) 2007-09-04 2009-03-05 Apple Inc. Devices and methods for controlling a display to conserve power
FI20070702L (fi) 2007-09-14 2009-03-15 Clarovision Ltd Oy Graafinen käyttöliittymä ja laite sen ohjaamiseksi
JP5024023B2 (ja) 2007-12-19 2012-09-12 セイコーエプソン株式会社 プリンタ、プリンタの送り駆動方法およびそのプログラム
US9443327B2 (en) 2008-08-06 2016-09-13 Adobe Systems Incorporated Rendering and un-rendering using profile replacement
US8249299B1 (en) 2009-08-17 2012-08-21 Adobe Systems Incorporated Systems and methods of tracking objects in video
US9594319B2 (en) 2009-09-03 2017-03-14 Xerox Corporation Curable toner compositions and processes
WO2011052045A1 (ja) 2009-10-27 2011-05-05 キヤノン株式会社 映像再生装置及び映像再生装置の制御方法
KR101304321B1 (ko) 2010-01-22 2013-09-11 전자부품연구원 싱글 터치 압력에 기반한 ui 제공방법 및 이를 적용한 전자기기
US9749676B2 (en) 2010-06-08 2017-08-29 Microsoft Technology Licensing, Llc Virtual playback speed modification
JP5548553B2 (ja) 2010-08-05 2014-07-16 本田技研工業株式会社 自動二輪車
KR20120031399A (ko) 2010-09-24 2012-04-03 엘지전자 주식회사 이동 단말기 및 그의 재생속도 제어 방법
DE102011012343A1 (de) 2011-02-24 2012-08-30 TriOpto Tec GmbH Phenalen-1-on-Derivate, Verfahren zur Herstellung und Verwendung derselben
US8515241B2 (en) 2011-07-07 2013-08-20 Gannaway Web Holdings, Llc Real-time video editing
JP6242798B2 (ja) 2011-10-10 2017-12-06 ヴィヴォーム インコーポレイテッド ビジュアルエフェクトのネットワークに基づくレンダリング及びステアリング
US8934762B2 (en) 2011-12-09 2015-01-13 Advanced Micro Devices, Inc. Apparatus and methods for altering video playback speed
JP5930709B2 (ja) 2011-12-27 2016-06-08 キヤノン株式会社 画像処理装置およびその制御方法、並びにプログラム
JP5906097B2 (ja) 2012-01-31 2016-04-20 キヤノン株式会社 電子機器、その制御方法、プログラム、及び記録媒体
US20140359447A1 (en) 2012-01-31 2014-12-04 Nokia Corporation Method, Apparatus and Computer Program Product for Generation of Motion Images
US20130201328A1 (en) * 2012-02-08 2013-08-08 Hing Ping Michael CHUNG Multimedia processing as a service
US20150212694A1 (en) 2012-05-02 2015-07-30 Google Inc. Internet browser zooming
US9208819B1 (en) 2012-06-20 2015-12-08 Google Inc. Dynamic split-frame preview of video editing effects
US20140193140A1 (en) 2012-08-13 2014-07-10 Iconic Sports Technology, Inc. System and method for slow motion display, analysis and/or editing of audiovisual content on a mobile device
JP6012384B2 (ja) 2012-10-04 2016-10-25 キヤノン株式会社 動画再生装置、表示制御方法、プログラム及び記憶媒体
AU2014259879B2 (en) 2013-04-30 2017-07-06 Arris International Ip Ltd. Interactive viewing experiences by detecting on-screen text
US20150318020A1 (en) 2014-05-02 2015-11-05 FreshTake Media, Inc. Interactive real-time video editor and recorder
US20140355961A1 (en) 2013-05-31 2014-12-04 Microsoft Corporation Using simple touch input to create complex video animation
US20140355960A1 (en) 2013-05-31 2014-12-04 Microsoft Corporation Touch optimized design for video editing
US20140359448A1 (en) 2013-05-31 2014-12-04 Microsoft Corporation Adding captions and emphasis to video
US10168864B2 (en) 2014-01-24 2019-01-01 Citrix Systems, Inc. Gesture menu
JP6066101B2 (ja) 2014-01-30 2017-01-25 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 構造化文書に基づいて動画を動的に作成する方法、並びに、その電子装置、電子システム、及び電子装置用プログラム
KR102171817B1 (ko) 2014-03-14 2020-10-29 삼성전자주식회사 디스플레이 장치 및 제어 방법
US9756091B1 (en) 2014-03-21 2017-09-05 Google Inc. Providing selectable content items in communications
US10771736B2 (en) 2014-06-30 2020-09-08 Microsoft Technology Licensing, Llc Compositing and transmitting contextual information during an audio or video call
SG11201701253UA (en) 2014-08-20 2017-03-30 Revolutionary Medical Devices Inc Ventilation mask
US10534525B1 (en) 2014-12-09 2020-01-14 Amazon Technologies, Inc. Media editing system optimized for distributed computing systems
EP3243331B1 (en) 2015-01-09 2024-07-03 Eyesmatch Ltd Devices, systems and methods for auto-delay video presentation
US10048757B2 (en) 2015-03-08 2018-08-14 Apple Inc. Devices and methods for controlling media presentation
US9848027B2 (en) 2015-04-24 2017-12-19 Disney Enterprises, Inc. Systems and methods for streaming content to nearby displays
KR20170013083A (ko) 2015-07-27 2017-02-06 엘지전자 주식회사 이동단말기 및 그 제어방법
US10600220B2 (en) 2016-08-01 2020-03-24 Facebook, Inc. Systems and methods for content interaction
JP6943949B2 (ja) * 2016-08-19 2021-10-06 スノー コーポレーション コンピュータプログラム、動画処理方法及び記録媒体
US10272009B2 (en) 2016-11-18 2019-04-30 United States Government As Represented By The Department Of Veterans Affairs Casket transport and lowering device system
CN108124165A (zh) * 2016-11-30 2018-06-05 北京视联动力国际信息技术有限公司 一种基于视联网的码流录制方法及其***
US10734025B2 (en) 2017-05-16 2020-08-04 Apple Inc. Seamless output video variations for an input video
US10098204B1 (en) 2018-03-13 2018-10-09 Cisco Technology, Inc. System to determine the placement of smart light emitters
DE202019105178U1 (de) 2018-09-19 2020-01-28 Gopro, Inc. Kamera und graphische Anwenderschnittstelle
US10388322B1 (en) 2018-10-29 2019-08-20 Henry M. Pena Real time video special effects system and method
US11218646B2 (en) 2018-10-29 2022-01-04 Henry M. Pena Real time video special effects system and method
US10404923B1 (en) 2018-10-29 2019-09-03 Henry M. Pena Real time video special effects system and method
US11044420B2 (en) 2018-10-29 2021-06-22 Henry M. Pena Real time video special effects system and method
US11641439B2 (en) 2018-10-29 2023-05-02 Henry M. Pena Real time video special effects system and method
US11689686B2 (en) 2018-10-29 2023-06-27 Henry M. Pena Fast and/or slowmotion compensating timer display
US11222061B2 (en) 2019-03-28 2022-01-11 Facebook, Inc. Generating digital media clusters corresponding to predicted distribution classes from a repository of digital media based on network distribution history
WO2021167595A1 (en) 2020-02-18 2021-08-26 Pena Henry M Real time video special effects system and method
WO2022040308A1 (en) 2020-08-18 2022-02-24 Pena Henry M Real time video special effects system and method
WO2022092301A1 (ja) 2020-10-30 2022-05-05 株式会社ナード研究所 シクロオクチン誘導体またはその塩、これを用いた標的分子の濃縮方法および検出方法、ならびに濃縮または検出用キット

Also Published As

Publication number Publication date
WO2020092301A3 (en) 2020-08-13
EP3874762A2 (en) 2021-09-08
WO2020092301A2 (en) 2020-05-07
US10755743B2 (en) 2020-08-25
US20200135235A1 (en) 2020-04-30
US11367465B2 (en) 2022-06-21
US11727958B2 (en) 2023-08-15
US10388322B1 (en) 2019-08-20
US20220284925A1 (en) 2022-09-08
EP3874762A4 (en) 2022-07-27
US20230352053A1 (en) 2023-11-02
US20200372934A1 (en) 2020-11-26
CN113767640A (zh) 2021-12-07
JP2022509502A (ja) 2022-01-20

Similar Documents

Publication Publication Date Title
US11743414B2 (en) Real time video special effects system and method
US11727958B2 (en) Real time video special effects system and method
US11218646B2 (en) Real time video special effects system and method
US11044420B2 (en) Real time video special effects system and method
US11641439B2 (en) Real time video special effects system and method
US11689686B2 (en) Fast and/or slowmotion compensating timer display
US11570415B2 (en) Methods, systems, and media for generating a summarized video using frame rate modification
WO2022040308A1 (en) Real time video special effects system and method
WO2021167595A1 (en) Real time video special effects system and method
AU2015203661A1 (en) Method, apparatus and system for applying an annotation to a portion of a video sequence
JP2023554470A (ja) ビデオ処理方法、装置、機器、記憶媒体、及びコンピュータプログラム製品
US20240146863A1 (en) Information processing device, information processing program, and recording medium
US20240040068A1 (en) Fast and/or slow motion compensating timer display

Legal Events

Date Code Title Description
E902 Notification of reason for refusal