JP2022509504A - リアルタイム動画特殊効果システム及び方法 - Google Patents

リアルタイム動画特殊効果システム及び方法 Download PDF

Info

Publication number
JP2022509504A
JP2022509504A JP2021548526A JP2021548526A JP2022509504A JP 2022509504 A JP2022509504 A JP 2022509504A JP 2021548526 A JP2021548526 A JP 2021548526A JP 2021548526 A JP2021548526 A JP 2021548526A JP 2022509504 A JP2022509504 A JP 2022509504A
Authority
JP
Japan
Prior art keywords
video
speed
recording
video data
frame
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
JP2021548526A
Other languages
English (en)
Inventor
ヘンリー ペナ,
ザ サード, トーマス ブライアント
Original Assignee
ヘンリー ペナ,
ザ サード, トーマス ブライアント
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 ヘンリー ペナ,, ザ サード, トーマス ブライアント filed Critical ヘンリー ペナ,
Publication of JP2022509504A publication Critical patent/JP2022509504A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04883Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
    • 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
    • H04N5/2621Cameras specially adapted for the electronic generation of special effects during image pickup, e.g. digital cameras, camcorders, video cameras having integrated special effects capability
    • 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/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • 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/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04817Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance using icons
    • 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
    • G06F3/04845Interaction 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 for image manipulation, e.g. dragging, rotation, expansion or change of colour
    • 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
    • G06F3/04847Interaction techniques to control parameter settings, e.g. interaction with sliders or dials
    • 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
    • G06F3/0485Scrolling or panning
    • 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/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
    • H04N23/63Control of cameras or camera modules by using electronic viewfinders
    • H04N23/631Graphical user interfaces [GUI] specially adapted for controlling image capture or setting capture parameters
    • H04N23/632Graphical user interfaces [GUI] specially adapted for controlling image capture or setting capture parameters for displaying or modifying preview images prior to image capturing, e.g. variety of image resolutions or capturing parameters
    • 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/63Control of cameras or camera modules by using electronic viewfinders
    • H04N23/633Control of cameras or camera modules by using electronic viewfinders for displaying additional information relating to control or operation of the camera
    • 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

Abstract

Figure 2022509504000001
録画システムのためのグラフィカルユーザインターフェース30および録画前および/または録画中にリアルタイムで特殊効果を適用しながら動画を録画する方法である。インターフェース30は、カメラ12およびメモリユニット14と通信するプロセッサを含む電子装置2と関連付けられる。インターフェース30からの入力は処理ユニット14によって利用されて、未処理の動画データのネイティブ速度レートが変更されるべきかどうかを判定し、変更される場合、未処理の動画データ内の少なくとも1つのフレームを修正して、ネイティブ速度レートとは異なる修正された速度レートで修正動画データを作成する。次に、システムは、グラフィカルユーザインターフェース30に表示される出力ビデオフィードを生成する。これにより、カメラの操作または設定を変更することなく、カメラ12から、またはさまざまな速度レートでのビデオフィードからの動画の連続録画が可能になる。
【選択図】図1

Description

本出願は米国特許商標庁において2018年10月29日に出願された米国特許出願第16173066号からの優先権を主張し、その継続出願であり、その全内容は、開示の継続性のために参照により本明細書に組み込まれる。
本技術は、録画の進行中に録画における特殊効果の制御または作成に関連して使用する、リアルタイム動画特殊効果グラフィカルユーザインターフェース、システムおよび方法に関する。より詳細には、本技術がポスト編集なしで長期メモリ記憶装置に記録され書き込まれる前に、デバイスからの動画ストリームの速度レートをライブまたはリアルタイムでデコードして変更するシステムおよび方法に関連するインターフェースに関する。
最新の動画形式では、さまざまなフレームレートが使用される。ほとんどが毎秒24フレームで撮影されたフィルムは、その本来のフレームレートで表示することができず、プルダウン変換を必要とし、しばしば「ジャダー」につながる。例えば、24フレーム/秒を60フレーム/秒に変換するには、奇数フレームは2倍にし、偶数フレームは3倍になるため、動きにむらが生じる。他の変換でも、同様にフレームの倍化が不均一になる。より新しい動画規格は120、240、または300フレーム/秒をサポートしているため、フレームは、300fpsディスプレイにおける25および50fps動画と同様に、24フレーム/秒(fps)フィルムおよび30fps動画といった一般的なフレームレートに対して均等に掛け合わせることができる。これらの規格は、より高いフレームレートにネイティブに対応している動画、およびネイティブフレーム間に補間フレームを有する動画もサポートする。
スマートフォンなどの電子デバイスで実行されるデバイスのネイティブなカメラアプリケーション(アプリ)は一定時間で録画し、次いで、動画データストリームを処理して、スローモーション、高速化またはタイムラプスを生成することができる。しかしながら、これらの既知のシステムまたは方法は、ユーザが録画中にリアルタイムで映像内の「時間特殊効果」を手動で制御できるユーザインターフェースを利用しない。例えば、Samsung Galaxy S9+(登録商標)のネイティブカメラアプリはこの場合、画面の中央にボックスアウトラインで示されるように、物体が画面の一部分の内側を横切ったことをアプリが検出したときに、カメラが1秒あたりのフレーム数を変更する特殊効果機能を有する。
Instagram(登録商標)、Facebook(登録商標)、Snapchat(登録商標)などのサードパーティアプリではモバイル機器のカメラを使用しているが、これらのアプリには、アプリのユーザが録画中にリアルタイムで録画速度の低速化や高速化を変更できる機能はない。
FILMiC Pro(登録商標)のような、より高度な機能に富むカメラアプリでは、ユーザは撮影時のフレームレート速度と再生時のフレームレート速度とを互いに独立してプリセットすることができるため、最終的に作成される動画においてスローモーションおよび高速化の効果を持たせることができる。
オプティカルフローのタイムリマッピングはPremiere Pro CC 2015と同様に知られており、これにより、ユーザは、欠落したフレームを補間することによってスムーズな速度およびフレームレートの変更を達成することができる。オプティカルフロー補間は、動いている物体とは対照的な、ほとんど静止した背景の前で動いている、モーションブラーのない物体を含むクリップの速度を調整する。
モーション補間またはモーション補償フレーム補間(MCFI:Motion Compensated Frame Interpolation)はアニメーションをより流動的にし、ディスプレイのモーションブラーを補償するために、補間によって既存のフレーム間に中間アニメーションフレームを生成する動画処理の形態の一つである。
モーション補間を使用すると、カメラのパンやカメラの揺れによって生成されるモーションブラーを軽減し、画像をより鮮明にすることが理解できる。また、入力遅延が発生するという望ましくない副作用がある可能性はあるが、よりリアルな感覚を得るためにビデオゲームソフトウェアの見かけのフレームレートを上げるために使用することもできる。この「ビデオルック」は、VidFIRE(Video Field Interpolation Restoration Effect)技術によって意図的に作成されたものであり、フィルムのテレレコーディングとしてのみ存続するアーカイブテレビ番組を復元する。VidFIREは、現在ではテレレコーディングを基本とする形式でしか存在しないテレビカメラで撮影された映像を動画のような動きに復元することを目的とした復元技術である。人為的に高いフレームレートを実現する場合と自然に高いフレームレートを実現する場合と(補間による場合とカメラ内での場合と)の主な違いは、後者は前述のアーティファクトの影響を受けず、より正確な(または「実際に近い」)画像データを含み、フレームがリアルタイムで生成されないため、より多くのストレージスペースと帯域幅を必要とすることである。
モーション補償は、カメラおよび/または映像内の物体の動きを考慮することによって、映像内のフレームを予測して前のフレームおよび/または将来のフレームを与えるために使用されるアルゴリズム技術である。これは、映像圧縮のための映像データのエンコードにおいて、例えばMPEG-2ファイルの生成において採用されている。モーション補償は、参照画像から現在の画像への変換の観点から画像を表す。参照画像は時間的に過去のもの前であってもよいし、未来のものであってもよい。過去に送信/蓄積された画像から画像を正確に合成することができれば、圧縮効率を向上させることができる。
モーション補償は、動画の多くのフレームにおいて、あるフレームと別のフレームの唯一の相違は、カメラが動いたかまたはフレーム内の物体が動いたかのどちらかの結果であることが多いという事実を利用するものである。これは、動画ファイルを参照すると、1つのフレームを表す情報の大部分が次のフレームで使用される情報と同じになることを意味する。
モーション補償を使用すると、動画ストリームには、いくつかの完全な(参照)フレームが含まれ、その間に記憶される情報は、前のフレームを次のフレームに変換するために必要な情報のみになる。
フレームブレンドは、当業者に知られている別の技術とすることができる。一部の映像では、より滑らかな動きを生成するためにオプティカルフローを使用しても、望ましい結果が得られない場合がある。このような状況では、他の時間補間オプションの1つであるフレームサンプリングまたはフレームブレンドを使用できる。フレームサンプリングは、所望の速度に到達するまで必要に応じてフレームを繰り返したり削除したりする。フレームブレンドはフレームを繰り返し、また、必要に応じてフレーム間をブレンドして動きを滑らかにする。
上述の装置はそれぞれの特定の目的および要件を満たすが、上述の特許は録画の進行中に録画において特殊効果を生成することを可能にするリアルタイム動画特殊効果システムおよび方法を記載していない。
従来技術に現在存在する既知のタイプの動画速度レート変更システムおよび方法に固有の前述の欠点に鑑みて、本技術は新規のリアルタイム動画特殊効果システムおよび方法を提供し、従来技術の前述の欠点および難点のうちの1つまたは複数を克服する。このように、本技術の目的は以下により詳細に説明するように、上述の従来技術の全ての利点と、単独でまたはそれらの任意の組み合わせで、従来技術によって予想されず、明らかにされず、示唆されず、または暗示されさえしないリアルタイム動画特殊効果システム及び方法をもたらす多くの新規の特徴を有する新規で斬新なリアルタイム動画特殊効果システム及び方法を提供することである。
本発明の一態様によれば、ライブ動画録画データの特殊効果操作をリアルタイムで制御する動画撮影および表示システムが提供される。このシステムは、実世界のシーンの動画を撮影するように構成された1つまたは複数のカメラと、カメラに動作可能に接続された、または接続可能な少なくとも1つの処理ユニットと、少なくとも1つのメモリとを含む電子デバイスと、電子デバイス上で動作可能に実装または埋め込み可能であり、処理ユニットによって実行可能なグラフィカルユーザインターフェースとを備えることができる。グラフィカルユーザインターフェースは、ユーザに1つまたは複数のアフォーダンスを提供し、各アフォーダンスは、電子デバイスの処理ユニットによって実行または実行可能な少なくとも1つの操作に1つまたは複数の入力を提供するように構成される、または構成可能であり、撮影された動画を通常の速度でグラフィカルユーザインターフェース上に表示し、録画の進行中に、グラフィカルユーザインターフェースによってリアルタイムで受信された入力の少なくとも1つに応じて、撮影されている動画のグラフィカルインターフェース上での動画再生速度を、通常再生速度から修正された再生速度に変更するように構成される、または構成することができる。
別の態様によれば、ライブ動画録画データの特殊効果操作をリアルタイムで制御する動画録画インターフェースシステムが提供される。このシステムは、カメラと動作可能に通信する少なくとも1つの処理ユニットと、少なくとも1つのメモリとを含む電子デバイスを含むことができる。カメラは未処理の動画データをリアルタイムで取り込み、未処理の動画データを処理ユニットに提供するように構成することができる。グラフィカルユーザインターフェースは、電子デバイスに関連付けられ、電子デバイス上に表示することができる。グラフィカルユーザインターフェースは、ビデオフィード、レコードアフォーダンス、および少なくとも1つの第1アフォーダンスを表示するように構成された動画表示領域を含むことができる。レコードアフォーダンスは、録画動作が開始されるか停止されるかを判定する際に受信可能かつ使用可能な少なくとも1つのレコード入力を提供するように構成される、または構成することができる。第1のアフォーダンスは、未処理の動画データの速度レートがネイティブ速度レートから修正された速度レートへの変化を判定する際に受信可能かつ使用可能な少なくとも1つの入力を提供するように構成される、または構成することができる。処理ユニットは、レコード入力およびグラフィカルユーザインターフェースからの入力を受信し、入力が未処理の動画データのネイティブ速度レートの変更に関連するかどうかを判定し、関連する場合には、未処理の動画データ中の少なくとも1つのフレームを修正して、カメラから未処理の動画データを受信してリアルタイムでネイティブ速度レートとは異なる修正された速度で修正された動画データを作成し、動画表示領域にビデオフィードを表示するように構成される、または構成することができる。ビデオフィードは、ネイティブ速度レートでの未処理の動画データ、修正された速度レートでの修正された動画データ、および未処理の動画データと修正された動画データとの組み合せのうちの1つとすることができる。
別の態様によれば、ライブ動画録画データの特殊効果操作をリアルタイムで制御する動画録画インターフェースシステムが提供される。このシステムはカメラおよび少なくとも1つのメモリと動作可能に通信する少なくとも1つの処理ユニットを含む電子デバイスを含むことができ、カメラは未処理の動画データをリアルタイムで取り込むように構成することができ、電子デバイスに関連付けられ、電子デバイス上に表示可能なグラフィカルユーザインターフェースを含むことができる。グラフィカルユーザインターフェースは、動画表示領域と、入力が未処理の動画データのネイティブ速度レートを変更することに関連しているかどうかを判定する際に処理ユニットによって受信可能かつ使用可能な少なくとも1つの入力を提供し、その場合、カメラからの未処理の動画データを受信しながらリアルタイムで未処理の動画データ内の少なくとも1つのフレームを修正して、ネイティブ速度レートとは異なった修正された速度レートで修正された動画データを作成するように構成される、または構成可能な少なくとも1つの第1のアフォーダンスと、を備えることができる。グラフィカルユーザインターフェースは、処理ユニットから修正された動画データを受信し、修正された動画データを動画表示領域に表示するように構成することができる。
本技術の別の態様によれば、本技術は本質的に、ライブ動画録画データの特殊効果操作をリアルタイムで制御する方法であることができる。本方法は、少なくとも1つの処理ユニットと、処理ユニットと動作可能に通信する少なくとも1つのメモリとを含む電子デバイスに動作可能に関連付けられたディスプレイに少なくとも1つのアフォーダンスを含むグラフィカルユーザインターフェースを表示し、処理ユニットによって、カメラによってリアルタイムで撮影された映像に少なくとも部分的に対応する未処理の動画データをカメラからネイティブ速度レートで受信し、処理ユニットによって、ユーザによるアフォーダンスの起動時にアフォーダンスから少なくとも1つの入力を受信し、処理ユニットによって、入力が未処理の動画データのネイティブ速度を変更することに関連付けられているかどうかを判定し、そうであれば、カメラから未処理の動画データを受信しながらリアルタイムで未処理の動画データを修正して、ネイティブ速度とは異なる1つまたは複数の修正された速度レートで修正された動画データを作成し、処理ユニットによって、グラフィカルユーザインターフェースの少なくとも第1の領域を表示し、出力動画録画データをディスプレイに出力することを含むことができ、出力動画録画データは、ネイティブ速度レートでの未処理の動画データ、修正された速度レートでの修正された動画データ、および未処理の動画データと修正された動画データとの組み合わせのうちの1つである。
本技術の別の態様によれば、本技術は、ライブ動画録画データの特殊効果操作をリアルタイムで制御するクライアント側電子システムであることができる。このシステムは、ソフトウェア命令を格納および実行するようにそれぞれ構成されたメモリおよびプロセッサを含むことができる。命令は、電子装置のディスプレイにビデオフィード及び入力を提供することができるアフォーダンスを表示するように構成される、または構成可能なグラフィカルユーザインターフェースコンポーネントと、リアルタイムでカメラによって撮影された画像に少なくとも部分的に対応することができる未処理の動画データをネイティブ速度レートでカメラから取得するリクエストを受信するように構成される、または構成可能な未処理データ受信コンポーネントと、カメラからの未処理の動画データのネイティブ速度レートを少なくとも1つの修正された速度レートに変更するようにグラフィカルユーザインターフェースから入力を受信するように構成される、または構成可能な速度レート決定コンポーネントと、ネイティブ速度レートを変更するリクエストを受信すると、変更される未処理の動画データ内の少なくとも1つのフレームまたはロケーションを識別し、カメラから未処理の動画データを受信しながらリアルタイムでネイティブ速度レートとは異なった修正された速度レートで修正された動画データを作成するようにフレームまたはロケーションを変更するように構成される、または構成可能なフレーム修正コンポーネントと、カメラから未処理の動画データを受信しながらリアルタイムで電子装置のディスプレイに出力動画録画データを表示するように構成される、または構成可能な出力動画録画データ表示コンポーネントと、で構成され、出力動画録画データは、ネイティブ速度レートでの未処理の動画データ、修正された速度レートでの修正された動画データ、および未処理の動画データと修正された動画データとの組み合わせのうちの1つから選択される。
本技術のさらに別の態様によれば、本技術はネイティブ速度レートで未処理の動画データを提供するように構成された、または構成可能な少なくとも1つのカメラ、少なくとも1つのメモリユニット、および少なくとも1つのディスプレイと動作可能に通信する処理ユニットと動作可能に通信するインターフェースを含むインターフェースシステムを含むことができ、未処理の動画データは少なくとも一部がカメラによって撮影された画像に対応する。インターフェースは、処理ユニットと通信する少なくとも1つのコンピュータ読み取り可能な記憶媒体、または少なくとも1つのプロセッサを含むコンピュータシステムに関連付けることができる。インターフェースは、カメラから受信した未処理の動画データの所望の速度レートに関連する入力を生成するように構成される、または構成可能な部分を含むグラフィカルユーザインターフェースとすることができる。処理ユニットは、カメラから未処理の動画データを受信しながらリアルタイムで未処理の動画データが修正して未処理の動画データのネイティブ速度とは異なった速度を有する修正された動画データを生成するかどうかを判定するために、入力を使用するように構成される、または構成することができる。インターフェースは、カメラから未処理の動画データを受信しながら、出力動画録画データをリアルタイムで表示するように構成される、または構成することができる。出力動画録画データは、未処理の動画データと修正された動画データとの組み合せを含むように構成される、または構成することができ、未処理の動画データと修正された動画データとの間の遷移が入力に依存する。
本技術の他の態様によれば、本技術は、ライブ動画録画データのリアルタイム特殊効果操作を制御するためのコンピュータで実装された方法とすることができる。本方法は、少なくとも1つの処理ユニットによって、処理ユニットに動作可能に関連付けられた少なくとも1つのインターフェースからのユーザ入力によるリクエストで、カメラからネイティブ速度レートで未処理の動画データを受信するステップを含むことができ、未処理の動画データは少なくとも部分的に、リアルタイムでカメラによって撮影された画像に対応する。本方法は、入力が未処理の動画データのネイティブ速度レートを変更することに関連するかどうかを判定することを含むことができ、そうであれば、カメラから未処理の動画データを受信しながらリアルタイムで未処理の動画データを修正して、ネイティブ速度レートとは異なる1つまたは複数の修正された速度レートを有する修正された動画データを作成することを含むことができる。本方法は、少なくとも1つの出力動画録画データをメモリに書き込むことをさらに含むことができ、出力動画録画データは、ネイティブ速度レートでの未処理の動画データ、修正された速度レートでの修正された動画データ、および未処理の動画データと修正された動画データとの組み合わせのうちの1つである。
本技術のいくつかの実施形態では、第3のアフォーダンスは、さまざまなズーム倍率に関連することを示すスライドバーとすることができる。
本発明のいくつかの実施形態では、第2のアフォーダンスが第1のアフォーダンスの向きとは異なる向きでグラフィカルユーザインターフェースに表示することができる。
本技術のいくつかの実施形態では、レコードアフォーダンスは、キャプチャされた未処理の動画データのタイムラップ表示を表示するように構成される、または構成可能な第1の環状領域を有する略円形の構成を有することができる。
もちろん、本技術には、以下に記載され、添付の特許請求の範囲の主題事項を形成する追加の特徴がある。
本技術の原理に従って構成されたリアルタイム動画特殊効果システムの一実施形態のブロック図である。 本技術のリアルタイム録画速度制御方法のブロック図である。 本技術の教示によるネイティブフレームレートの一例を示す一連の動画フレームの描写である。 ネイティブフレームレートの2倍のファストモーション速度に従ったフレームドロップの例を示す一連の動画フレームの描写である。 ネイティブフレームレートの3倍のファストモーション速度に従ったフレームドロップの例を示す一連の動画フレームの描写である。 ネイティブフレームレートの-2倍のスローモーション速度に従ってフレームコピーを使用してフレームを追加する例を示す一連の動画フレームの描写である。 ネイティブフレームレートの-3倍のスローモーション速度に従ってフレームコピーを使用してフレームを追加する例を示す一連の動画フレームの描写である。 ネイティブフレームレートの-2倍のスローモーション速度に従ってフレームブレンドを使用してフレームを追加する例を示す一連の動画フレームの描写である。 ネイティブフレームレートの-3倍のスローモーション速度によるフレームブレンドを使用してフレームを追加する例を示す一連の動画フレームの描写である。 本技術の実施形態を実施するために使用され得る電子計算装置に組み込まれた例示的な集積回路チップを示す図である。 本発明の実施形態を実施するために使用され得る例示的な電子計算装置を示す図である。 利用可能なサブルーチンを含むプロセス全体の一例を示すフローチャートである。 高速化および/または低速化の特殊効果をリアルタイムで利用するべきかどうかを最初に判定するメインプロセスの一例を示すフローチャートである。 本技術に関連する書き込み動画ストリームサブルーチンの一例を示すフローチャートである。 本技術に係る特殊効果適用サブルーチンの一例を示すフローチャートである。 本技術に係る高速化サブルーチンの一例を示すフローチャートである。 本技術に関連するファストモーションをシミュレートするためのフレームドロップサブルーチンの一例を示すフローチャートである。 本技術に関連する高度なスローモーションサブルーチンの一例を示すフローチャートである。 本技術に係るスローモーションをシミュレーションするためのフレーム追加サブルーチンの一例を示すフローチャートである。 本技術に関連するスローモーションをシミュレートするための可変高録画fpsサブルーチン(120fps)の一例を示すフローチャートである。 本技術に関連する一定のフレームレートのスローモーションサブルーチンの一例を示すフローチャートである。 本技術に関連するスローモーションをシミュレートするための一定の高録画fpsサブルーチン(60fps)の一例を示すフローチャートである。 本技術に関連するスローモーションをシミュレートするための一定の高録画fpsサブルーチン(120fps)の一例を示すフローチャートである。 本技術に関連するスローモーションをシミュレートするための一定の高録画fpsサブルーチン(240fps)の一例を示すフローチャートである。 本技術に関連するエクストリームスローモーションサブルーチンの一例を示すフローチャートである。 本技術に関連するスローモーションおよびファストモーションをシミュレートするための時間伸長および圧縮サブルーチンの一例のフローチャートである。 図20の時間圧縮の例を示す、秒単位の時間あたりの一連の関連する録画および再生動画セグメントの描写である。 本技術に関連するスローモーション及びファストモーションをシミュレートするための可変再生レートを用いた録画の一例のフローチャートである。 本技術に関連するスローモーションおよびファストモーションをシミュレートするために、図22のアルゴリズムを使用するアプリケーションによって作成された動画ファイルを再生する再生装置の一例のフローチャートである。 本技術に関連するユーザインターフェースを利用するユーザによる可能な処理の一例を示すフローチャートである。 本技術のインターフェースシステムのサンプルグラフィカルユーザインターフェース(GUI)スクリーンショットである。 本技術のプロセスを利用して通常の「1倍」速度で録画しているときの、GUIを採用する装置の「カメラビュー」のサンプルGUIスクリーンショットである。 本技術のプロセスを利用してスローモーション「-2倍」速度で録画しているときの、GUIを採用する装置の「カメラビュー」のサンプルGUIスクリーンショットである。 本技術のプロセスを利用してファストモーション「3倍」速度で録画しているときの、GUIを採用する装置の「カメラビュー」のサンプルGUIスクリーンショットである。 ユーザが本技術のプロセスを利用して録画を停止している間の、GUIを採用する装置の「レビュー画面」のサンプルGUIスクリーンショットである。 本技術のプロセスを利用して撮影された動画をレビューするための、図29の「レビュー画面」のサンプルGUIスクリーンショットである。 本技術のプロセスを利用して録画を開始する前の、GUIを採用する装置の「構成画面」のサンプルGUIスクリーンショットである。 本技術のプロセスを利用してファストモーション「2倍」速度での録画が開始されたときの、GUIを採用する装置の「録画画面」のサンプルGUIスクリーンショットである。 本技術のプロセスを利用するスクロール可能なセクションを含むGUIを採用する装置の「スローモーション解像度」画面のサンプルGUIスクリーンショットである。 本技術のプロセスを利用するスライドバーを含むGUIを採用する装置の「スローモーション解像度」画面のサンプルGUIスクリーンショットである。 本技術のプロセスを利用するスクロール可能なセクションを含むGUIを採用する装置の代替的な「スローモーション解像度」画面のサンプルGUIスクリーンショットである。 本技術のプロセスを利用してスローモーション倍率レベルを設定するためのスライドバーを含むGUIを採用する装置の「スローモーションスケール」画面のサンプルGUIスクリーンショットである。 本技術のプロセスを利用する垂直スライドバーを含むGUIを採用する装置の代替的な「スローモーション解像度」画面のサンプルGUIスクリーンショットである。
本技術は以下に記載される詳細な説明を考慮することによってより良く理解され、上記以外の目的が明らかになるであろう。そのような説明は、添付の図面を参照しており、ここで、二点鎖線は、環境構造体を示す、請求された本技術の一部を形成しない。
同一の参照番号は、さまざまな図全体で同じ部分を指す。
以下の説明では、本技術の完全な理解を提供するために、限定ではなく説明を目的として、特定の実施形態、手順、技術などの具体的な詳細が記載される。しかしながら、本技術がこれらの特定の詳細から逸脱した他の実施形態において実施されてもよいことは、当業者には明らかである。
動画録画は、動きを生み出すための速度レートで表示される一連のフレームまたは画像のグループから構成されることが知られている。これらの画像または動画のフレームは、デジタルフレームデータとして特徴付けることができ、デジタルフレームデータは、動画の再生時にバッファすることができる。フレームレート(フレーム/秒またはfpsで表される)は、これらの連続するフレームがディスプレイ上に表示される頻度(レート)である。これは、フィルム及びビデオカメラ、コンピュータグラフィックス、及びモーションキャプチャシステムに等しく適用される。フレームレートは、フレーム周波数とも呼ばれ、ヘルツで表される。
動画のリアルタイム録画および/または再生は、通常30fpsのレートで実行される。いくつかの状況では、動画の再生を高速化または低速化することが望まれる。これは通常、表示装置等の既存のコンポーネントとの互換性を維持するために、録画及び再生のフレーム/秒を毎秒30fpsに維持しながら行われる。例えば、視聴者が、30fpsを保ったまま、標準のリアルタイム再生速度から一定の割合で動画の再生を高速化したい場合、特定のフレーム数の情報またはデータを、30フレームに分割された時間で再生する必要がある。これを実現するためのスキームは、録画された動画から、所定のフレーム数毎に1フレームをスキップして、動画の適切なフレーム数を30fpsで表示するようにすることである。これらの既知のシステムおよび方法は、30fpsの録画からフレームをスキップする録画後処理として提供されることに留意されたい。録音は最初は、30fpsでリアルタイムにメモリに書き込まれ、特殊効果はない。
本技術は、特にアマチュア映画制作者にとって、時間および資源コストがかかる可能性がある時間変更の特殊効果を挿入するために「ポストプロダクション編集(post production editing)」を必要とするという問題を解決する。
さらに、本技術は、モーション録画速度をファストモーションまたはスローモーションのどちらかにプリセットしておくと、ユーザが録画処理中にリアルタイムでモーション録画速度を調整できないという問題を解決する。
さらに、本技術は、モーション録画速度をプリセットした場合、ユーザが録画中にリアルタイムで連続的にモーション録画速度を調整することができず、ファストモーションからスローモーションに変化させることができないという問題を解決する。
本技術は、すべての装置のハードウェアサポートを必要とする問題を軽減し、解決する。ソフトウェアアルゴリズムを使用してスローモーションをシミュレートすることにより、装置に依存せず、結果として得られるファイルは、ハードウェアでサポートされているスローモーション動画よりもはるかに小さい。
上述の装置は、それぞれの特定の目的および要件を満たすが、上述の装置またはシステムは、録画中の動画録画に特殊効果を生成することを可能にするリアルタイム動画特殊効果システムおよび方法を記載していない。本技術はさらに、カメラによって提供されるフレームストリップにリアルタイムでフレームを追加または削除することによって、従来技術に関連する1つまたは複数の欠点を克服する。
さらに、録画中に、ユーザが録画速度や特殊効果の適用時間をリアルタイムに変更できる既知のインターフェースはない。さらに、シーンは比較的固定されていなければならず、カメラがパンしたり、アクションを追跡したりしない。この既知のシステムに関連するアルゴリズムは、カメラがシーンに着実に固定されている間、モーションセンサーを使用し、シーンの残りの部分が固定されたまま、被写体がシーンを横断しなければならない。
本技術は、録画または保存の前に、リアルタイムでカメラからのフレームを修正する電子装置に関連付けられたグラフィカルユーザインターフェースを利用することができる。
録画中に動画録画に特殊効果を生み出すために使用することができる、新規で斬新なリアルタイム動画特殊効果システムおよび方法が必要とされている。この点に関して、本技術は、この必要性を実質的に満たすものである。この点において、本技術によるリアルタイム動画特殊効果システム及び方法は、従来技術の従来の概念及び設計から実質的に逸脱しており、そうすることで、録画中の動画録画において特殊効果を生み出すことを主な目的として開発された装置が提供される。
本技術のユーザは、サポートされているオペレーティングシステム上で実行される装置のアプリにプログラムされたユーザインターフェース、および他の組み込み装置を使用することによって、ユーザが制御可能なの可変時間変更、いわゆるファストモーションまたはスローモーションの特殊効果を含む動画を「リアルタイム」で作成することができる。作成された動画はワンショットで撮影され、録画中に全ての時間変更コマンドがリアルタイムで入力される。
例示的な目的のために、本技術は30fpsに設定された動画フレームレートを利用することができ、その結果、録画中は30フレーム/秒となる。
本技術のいくつかの実施形態では、ユーザが本技術の早送りオプションを利用することができ、その結果、設定された早送りレート(1倍、2倍、3倍など)に従ってフレームがドロップされる。ユーザが2倍速の早送り動画を設定した場合、本技術ではライターで第1フレームを追加し、第2フレームをスキップし、次いで第3フレームを書き込み、次いで第4フレームをスキップするといったことができる。その結果、録画された動画は30fpsを維持しながら、リアルタイムで予め設定された早送り速度になる。
いくつかの実施形態では、ユーザは本技術のスローモーションオプションを利用することができる。その結果、同じフレームを2回追加し、このフレームを繰り返すことにより、録画される動画が最終的にスローモーションになる。例えば、ユーザが2倍のスロー動画を設定した場合、本技術はライターで第1フレームを追加し、同じフレームを次の時間/フレームスロットに追加することができる。その結果、録画された動画は30fpsを維持しながら、リアルタイムで予め設定されたスローモーション速度になる。
本技術では、ユーザはカスタムユーザインターフェースを使用して録画中に録画装置(および任意の他の録画装置)の録画速度および他のカメラ設定を制御することができ、本技術アルゴリズムがコマンドを処理した直後にユーザが動画を再生する場合に、シーンの再生速度が、録画中のコマンドに対応する。本技術は、録画装置のフレームレートを上げることなく、ソフトウェアシミュレーションによりこれを達成し、装置に依存せずあらゆるプラットフォームで動作する。
本技術のさらなる態様は、録画中に録画装置のフレームレートを上げることが可能性である。これには、サポートされているハードウェアの数が限られているアプリケーションプログラミングインターフェース(API)へのアクセスが必要であり、サポートされているデバイスの数を制限する業界標準APIは存在しない。ディスプレイには、現在の時間録画速度が、通常の速度から3倍の速度、または-3倍の速度(4倍、5倍、またはそれ以上)で表示される。ユーザは、インターフェースを利用して録画速度を制御することができる。
本技術には、使いやすいカスタムユーザインターフェースなど、多くの利点があり、録画中にユーザがリアルタイムで時間変更の特殊効果を動画に追加することができる。これは、既存の技術と比較して、ユーザが、特殊効果(可変のファストモーションおよびスローモーション録画速度)を有する動画をその動画の録画中に作成することができるという利点がある。これにより、このような特殊効果を有する動画を制作するための別途の動画編集ソフトが要求されることがなく、または動画編集者に同等の動画を編集・制作してもらう必要がないため、同時間とコストが削減される。ユーザは録画が完了した後すぐに特殊効果を加えて作成された動画を見ることができ、また、装置が特殊効果を追加する処理を行い、短い処理時間で特殊効果が実装された新しい動画を自動的に生成することができる。
ユーザが手動で特殊効果をリアルタイムで制御するもう一つの利点は、ユーザがシーンの動きに合わせてパンすることができ、アクションのピークの瞬間を捉え、適切なタイミングで必要なだけ連続的に変化するスロー/ファストモーションを使用し、ユーザが録画している間に通常の速度に戻すことができることである。
さらに別の利点は、本技術が、スローモーションまたはファストモーションの特殊効果を実現するためにハードウェアに依存しないことである。ソフトウェアのアルゴリズムは、スローモーションまたはファストモーションの動きをシミュレートする。
さらに別の利点は、手動のユーザインターフェースでは、AIソフトウェアが特殊効果を適用するための「アクション」を判定するために、静止シーンを指している間、カメラを静止したままにする必要がないことである。
別の利点は、本技術が、リモートカメラフィード、ジョイスティック、網膜スキャナ、ボディスーツコントローラ、ディスプレイ上の被写体ジェスチャ、および触覚ユーザインターフェースからの入力を受け入れることができることであるが、これらに限定されない。
いくつかの実施形態では、本技術を適用して、既存の動画に時間修正の特殊効果を追加することもできる。ユーザはスマートフォンやタブレットのような互換性のあるデバイスでおなじみの使い慣れた使いやすいものを使用して、再生中の時間変数を制御し、再生時間値の値を、この場合には-3倍から4倍に制御し、修正することができる。デジタル処理技術が十分に進歩して、動画で撮影されたフレーム間のデータおよび画像を補間できるようになれば、時間修正の要素に追加の機能があることが理解できる。
ユーザが4倍側にスライドすると、録画速度は、通常よりも速く、最大で4倍速く再生される。ユーザが-3倍側にスライドすると、録画速度は、通常よりも遅く、最大で3倍遅く再生される。
いくつかの実施形態では、未処理の動画データは、ストリーミング動画データ、動画、音声、深度、オブジェクト識別、ヒストグラム、およびそれらの組み合わせなどのデータを含むことができるが、これらに限定されない。
いくつかの態様では、処理ユニットは、本技術が未処理の動画データを傍受することができるように、未処理の動画データがカメラからメモリユニットに書き込まれることを防ぐように構成される、または構成することができる。
いくつかの実施形態では、入力は、修正された速度レートが基づく1つまたは複数の所望の速度レート値であることができる。ここで、修正された速度レートは、ネイティブ速度レートよりも小さい速度レートまたはネイティブ速度レートよりも大きい速度レートのうちの1つであることができる。
修正された速度レートがネイティブ速度レート未満である場合、処理ユニットは、未処理の動画データに少なくとも1つのフレームを追加して修正された動画データを作成するように構成される、または構成することができる。
修正された速度レートがネイティブ速度レートよりも大きい場合、処理ユニットは、未処理の動画データから少なくとも1つのフレームを削除して修正された動画データを作成するように構成される、または構成することができる。
入力がネイティブスピードを変更するリクエストではない場合、処理ユニットは、未処理の動画データからすべてのフレームを保持し、未処理の動画データをメモリに書き込むように構成される、または構成することができる。
いくつかの実施形態では、インターフェースは、ネイティブ速度レートまたは修正された速度レートに関連する入力を生成するように構成される、または構成可能な部分を含むグラフィカルユーザインターフェースであることができる。グラフィカルユーザインターフェースは、カメラから未処理の動画データを受信しながら、出力動画録画データをリアルタイムで表示するように構成される、または構成可能とすることができる。出力動画録画データは、未処理の動画データと修正された動画データとの組み合わせを含み、未処理の動画データと修正された動画データとの間の遷移は入力に依存するように構成される、または構成することができる。インターフェースは、ジョイスティックであってもよく、またはジョイスティックを利用してもよいことが理解することができる。
さらに別の態様では、インターフェースは、コンピュータシステムの処理ユニットまたはプロセッサによって実行されたときに、カメラから未処理の動画データを受信しながら、カメラからの未処理の動画データを処理ユニットおよびメモリユニットにリアルタイムで送り、処理ユニットからメモリユニットに未処理の動画データを書き込むか、または少なくとも1つのアルゴリズムを未処理の動画データに適用させて、修正された動画データを作成し、処理ユニットから修正された動画データをメモリユニットに書き込む命令を記憶した少なくとも1つのコンピュータ読み取り可能な記憶媒体に動作可能に関連付けることができる。
本技術のさらに別の態様によれば、本技術はカメラから未処理の動画データを受信しながら、1つまたは複数の速度レートでリアルタイムに動画を録画する方法とすることができる。本方法は、少なくとも1つの処理ユニットによって、カメラからの未処理の動画データに少なくとも部分的に対応する画像をキャプチャしながら、リアルタイムでカメラから未処理の動画データをネイティブ速度で受信し、処理ユニットに動作可能に関連付けられた少なくとも1つのインターフェースから入力を受信することを含むことができる。本方法は、処理ユニットによって、入力が未処理の動画データのネイティブ速度レートを変更することに関連付けられているかどうかを判定することを含むことができ、そうであれば、カメラから未処理の動画データを受信しながら、リアルタイムで未処理の動画データを修正して、ネイティブ速度レートとは異なった1つまたは複数の修正された速度レートで修正された動画データを作成することを含むことができる。本方法は、処理ユニットによって、出力動画録画データを少なくとも1つのメモリに書き込むことをさらに含むことができ、出力動画録画データは、ネイティブ速度レートでの未処理の動画データ、修正された速度レートでの修正された動画データ、および未処理の動画データと修正された動画データとの組み合わせのうちの1つである。
本技術のいくつかの実施形態は、修正された速度レートがネイティブ速度レート未満であるかどうかを判定することを含むことができ、そうであれば、未処理の動画データを修正することは、少なくとも1つの新しいフレームを未処理の動画データに追加して修正された動画データを作成することを含むことができる。
いくつかの実施形態では、本方法は、少なくとも1つの未処理のフレームをコピーすることによって新しいフレームを追加して新しいフレームを作成することと、未処理のフレームに隣接する未処理の動画データに新しいフレームを追加することと、を含むことができる。
いくつかの実施形態では、追加される新しいフレームは、それぞれが未処理の動画データからの少なくとも1つの未処理のフレームのコピーである複数の新しいフレームとすることができ、新しいフレームは、コピーされた未処理のフレームに隣接する未処理の動画データに追加される。
いくつかの実施形態では、本方法は、新しいフレームを作成するために少なくとも2つの未処理のフレームをフレームブレンドすることによって新しいフレームを追加することと、2つの未処理のフレーム間の未処理の動画データに新しいフレームを追加することと、を含むことができる。
いくつかの実施形態では、追加される新しいフレームは、それぞれが未処理の動画データからの少なくとも2つの未処理のフレームのブレンドである複数の新しいフレームとすることができ、新しいフレームはブレンドされた未処理のフレーム間の未処理の動画データに追加される。
いくつかの実施形態では、新しいフレームの各々は、未処理のフレームに隣接する、または未処理の動画データの第2の未処理のフレームに隣接する未処理の動画データに追加することができる。
いくつかの実施形態は、修正された速度レートがネイティブ速度レートより大きいかどうかを判定するステップを含むことができ、大きい場合、未処理の動画データを修正することは、未処理の動画データから少なくとも1つの第1の未処理のフレームを削除して、修正された動画データを作成することを含むことができる。
いくつかの実施形態では、第1の未処理のフレームを削除することは、削除されるべき第1の未処理のフレームを選択することと、次いで未処理の動画データから第1の未処理のフレームを削除して、修正されたフレームを作成することと、を含むことができる。
いくつかの実施形態では、インターフェースは、ネイティブ速度レートまたは修正された速度レートに関連する入力を生成するように構成される、または構成可能な部分を含むグラフィカルユーザインターフェースであってもよく、インターフェースは出力動画録画データを表示するように構成される、または構成することができる。
いくつかの実施形態は、出力動画録画データが未処理の動画データと修正された動画データとの組み合わせであることを含むことができる。修正された動画データは、それぞれが入力に依存する速度レートを有する複数のサブセットを含むように構成される、または構成可能である。未処理の動画データとサブセットのいずれか一つとの間、またはサブセット間の遷移が入力に依存する場合、カメラから未処理の動画データを受信しながら、出力動画録画データがグラフィカルユーザインターフェースにリアルタイムで表示される。
いくつかの実施形態では、本技術は、一定の高録画fpsでのエクストリームスローモーションサブルーチンを含むことができる。このサブルーチンは、変更されていない動画ストリームを通過させることにより、または各フレームのコピーを所定の回数だけ作成することによって、-8倍以上のスローモーション速度範囲に利用することができる。
いくつかの実施形態では、本技術は、録画停止後の動画処理中に再生時間を高速化または低速化することによってスローモーションおよびファストモーションのためのアルゴリズムを提供するセグメント時間圧縮および伸長サブルーチンを含むことができる。このサブルーチンは、デバイスの録画および/または再生fpsを設定し、セグメント再生fpsおよび録画fpsを部分的に利用するアルゴリズムを利用して、動画セグメント再生fpsを録画fpsと等しく設定することができる。
いくつかの実施形態では、本技術は、録画中に再生フレームレートを高速化または低速化することによって、スローモーションおよびファストモーションのためのアルゴリズムを提供する可変再生速度録画サブルーチンを含むことができる。このアルゴリズムは、動画のメタデータにファスト/スローモーションコマンドが埋め込まれた通常の動画を生成することができる。
いくつかの実施形態では、本技術は、動画再生中に再生フレームレートを高速化または低速化することによって、スローモーションおよびファストモーションの特殊効果を有する動画ファイルを再生するためのアルゴリズムを提供する可変再生速度再生サブルーチンを含むことができる。
いくつかの実施形態は、撮影されている動画をグラフィカルユーザインターフェース上で修正された再生速度で再生することから、撮影されている動画を通常の速度での再生に戻るように、処理ユニットによって構成される、または構成可能なグラフィカルユーザインターフェースを含むことができる。
いくつかの実施形態において、グラフィカルユーザインターフェースは、グラフィカルユーザインターフェースによって受信されたユーザ入力に応じて、グラフィカルユーザインターフェース上撮影されている動画を修正された速度での再生から、撮影されている動画を通常再生速度での再生に戻すように、処理ユニットによって構成される、または構成することができる。
いくつかの実施形態では、グラフィカルユーザインターフェースは、録画されている動画のグラフィカルインターフェース上の再生速度を、通常再生速度から修正された再生速度にシームレスに変更するように、処理ユニットによって構成される、または構成することができる。
いくつかの実施形態ではグラフィカルユーザインターフェースは、電子装置のディスプレイ上に表示することができ、グラフィカルユーザインターフェースは、通常再生速度で撮影されている動画を表示するように構成される、または構成可能な第1の領域と、修正された再生速度で撮影されている動画を表示するように構成される、または構成可能な第2の領域とを含むことができる。
グラフィカルユーザインターフェースのいくつかの実施形態は、複数の値から少なくとも1つの選択可能な値を含む第1のアフォーダンスを含むことができる。
いくつかの実施形態では、選択可能な値は、タップ、マルチタップ、長押し、スライド、ピンチ、および長押しとスライドからなる群から選択される電子デ装置のディスプレイ上のジェスチャによって選択することができる。
いくつかの実施形態では、第1アフォーダンスの複数の値は、スローモーション速度、ファストモーション速度、および通常速度に関連付けられたさまざまな速度レートを含むことができる。
いくつかの実施形態では、グラフィカルユーザインターフェースは、処理ユニットに第2の入力を提供するように構成される、または構成可能であり、未処理の動画データのズーム倍率の変化を判定する際に使用可能な第2のアフォーダンスを含むことができる。
いくつかの実施形態では、第1のアフォーダンスは、速度レートの変化に関連付けれられたスライドバーであってもよく、または第2のアフォーダンスは、ズーム倍率の変化に関連付けられたスライドバーであってもよい。
いくつかの実施形態では、第2のアフォーダンスは、第1のアフォーダンスの向きとは異なる向きでグラフィカルユーザインターフェースに表示することができる。
いくつかの実施形態では、第1のアフォーダンスおよび第2のアフォーダンスのうちの少なくとも一方は、部分的に動画表示領域上に配置される。
グラフィカルユーザインターフェースのいくつかの実施形態は、表示領域に表示されるビデオフィードとは異なり得る第2のビデオフィードを表示するように構成された第2の動画表示領域を含むことができ、第2のビデオフィードは、ネイティブ速度での未処理の動画データ、修正された速度での修正された動画データ、および未処理の動画データと修正された動画データとの組み合わせのうちの1つであることができる。
いくつかの実施形態では、グラフィカルユーザインターフェースは、録画動作を開始または停止するかどうかを少なくとも判定する際に、処理ユニットによって受信可能かつ使用可能な少なくとも1つのレコード入力を提供するように構成される、または構成可能なレコードアフォーダンスを含むことができる。レコードアフォーダンスは、撮影された未処理の動画データのタイムラプスインジケーションを表示するように構成される、または構成可能な第1の環状領域を有する、略円形の構成を有することができる。
グラフィカルユーザインターフェースのいくつかの実施形態は、処理ユニットによって追加の操作を開始する際に受信可能かつ使用可能な少なくとも1つの追加の入力を提供するように構成される、または構成可能な1つまたは複数の追加のアフォーダンスを含むことができる。
いくつかの実施形態では、追加の操作は、フラッシュ、ハンズフリー操作、タイマ、ミュート操作、リアカメラ操作、電子装置に関連付けられた設定操作、カメラに関連付けられた設定操作、編集操作、シーンフィルタ操作、「拡張現実(AR)」フィルタ操作、音楽追加操作、フィルタ操作、書き込み操作、および送信操作からなる群から選択される。
したがって、以下の本発明の詳細な説明をより良く理解するため、当技術分野への本貢献をより良く理解するため、本技術の特徴をかなり広く概説した。
本技術の多数の目的、特徴、および利点は、本技術の以下の詳細な説明を読めば当業者には容易に明らかになるが、それにもかかわらず、添付の図面と併せて解釈された場合の本技術の実施形態は例示的である。
このように、当業者は、本技術のいくつかの目的を実行するための他の構造体、方法、およびシステムを設計するための基礎として、本発明の基礎をなす概念が容易に利用することができることを理解するであろう。したがって、特許請求の範囲は、本技術の精神および範囲から逸脱しない限り、そのような同等の構成を含むものとみなされる。
本技術のさらに別の目的は、録画中の動画録画に特殊効果を生成するためのリアルタイム動画特殊効果システムおよび方法を提供することである。これにより、ユーザは、カメラから動画を取得しながら、録画がリアルタイムで進行する前及び進行している間に、動画の速度レートを制御することができる。
これらは、本技術の他の目的と共に、本技術を特徴付ける新規性のあるさまざまな特徴と共に、本開示に添付され、その一部を形成する特許請求の範囲において特に指摘される。本技術、その操作上の利点、およびその使用によって達成される特定の目的をより良く理解するために、本技術の実施形態が例示されている添付の図面および説明事項を参照されたい。本明細書では、本技術の複数の目的が特定されているが、特許請求される本技術は、特定された目的のほとんどまたはすべてを満たすことに限定されず、本技術のいくつかの実施形態はそのような目的を1つのみを満たすか、または全く満たしていない可能性があることが理解される。
ここで、図面、特に図1~図37を参照すると、本技術のリアルタイム動画特殊効果システム及び方法のいくつかの実施形態が示され、全体的に参照番号10で示されている。一般的な概要として、本システムは、実世界のシーンまたはビデオゲームを含む任意の動画リモートビデオフィードの動画を撮影するように構成されたカメラと、グラフィカルユーザインターフェースと、少なくとも1つのメモリと、カメラ、グラフィカルユーザインターフェース及び少なくとも1つのメモリに動作可能に接続または接続可能な少なくとも1つの処理ユニットと、を含む。少なくとも1つの処理ユニットは、グラフィカルユーザインターフェース上で、撮影されている動画を通常速度で再生する、およびグラフィカルユーザインターフェースによって受信されたユーザ入力に応じて、撮影されている動画のグラフィカルインターフェース上での動画再生速度を通常再生速度から修正された再生速度に変更するように構成される。
ここでいくつかの実施形態をより詳細に参照すると、録画中に動画録画に特殊効果を生成するための本技術の新規で斬新なリアルタイム動画特殊効果システムおよび方法10が示され、図1を参照して説明される。より詳細には、リアルタイム動画特殊効果システムおよび方法10は、カメラ12と、画像プロセッサまたは処理ユニット14と、処理ユニットに関連付けられたユーザインターフェース30と、記憶装置またはメモリユニット18と、表示ユニット20とを含むことができる。少なくとも1つのRAMメモリおよび/または少なくとも1つの不揮発性長期メモリが、処理ユニット14に動作可能に接続される、または接続可能である。カメラ12は、画像および/または動画を撮影することができる任意の装置とすることができ、マイク16と関連付けられるか、または一体化することができることを理解されたい。画像処理ユニット14は、カメラ12、マイク16、メモリユニット18および/または表示ユニット20と動作可能に通信する。画像処理ユニット14は、カメラ12および/またはマイク16からの未処理の動画データを傍受し、少なくとも1つのアルゴリズムに従って未処理の動画データを可能な限りリアルタイムで処理し、次いで、出力/最終的な動画録画データをメモリユニット18に記録し、および/または出力/最終動画録画データを表示ユニット20に表示する。
システム10は、1つまたは複数のビデオカメラ12、1つまたは複数の表示装置20、および1つまたは複数の集積回路またはプロセッサを有する電子装置の完全な動画システムとして構成される、または構成可能であることができることを理解されたい。代替的に、画像処理ユニット14は、電子装置に組み込まれたモジュールまたは集積回路チップとして、または電子装置の構成要素と共に構成される、または構成可能であることができることを理解することができる。さらに代替として、システム10は、グラフィック処理ユニット(GPU)、デジタル信号プロセッサ(DSP)、アクティブサーバページ(ASP)、中央処理ユニット(CPU)、加速処理ユニット(APU)、特定用途向け集積回路(ASIC)などの動画データ処理装置として構成される、または構成することができるが、これらに限定されない。さらに、代替として、システム10は、電子装置またはカメラ上で実行される、または制御するオペレーティングシステムまたはアプリケーションの一部として、ソフトウェアまたはプログラミングコードとして構成される、または構成可能であることができる。
カメラ12、マイク16及び表示ユニット20を含む電子装置は、スマートフォン、スマートウォッチ、タブレット、ノートパソコン、デスクトップコンピュータ、ラップトップ、DVDプレーヤ、テレビデジタルカメラ(ポイント及びシュート、一眼レフ、ビデオカメラ、ハイエンドオーディオ/ビジュアルギア)、アイウェア、ドローン、ジンバル及び他のスタビライザ、セルフィースティック、閉回路動画モニタリングシステム、車用ダッシュカム、内視鏡、顕微鏡、望遠鏡、カメラおよび/またはディスプレイ埋め込み回路、装着物、モノのインターネット(IoT)等であってもよいが、これらに限定されない。
図2を参照すると、処理ユニット14は、要求された録画速度のユーザ選択の入力を受信するように構成される、または構成することができる。カメラ12からの未処理の動画データは、画像処理ユニット14に転送することができ、そこで、プログラムおよび/またはアルゴリズムは、カメラ12からの未処理の動画データに含まれる未処理のフレームを修正または保持する。データストリーム内の未処理のフレームは、画像処理ユニット14によってリアルタイムで修正または保持され、その後、メモリユニット18および/または表示ユニット20に渡される。
フレーム追加、フレームブレンド、フレームドロップ14を用いた画像処理ユニットの動作例を図3A~図3Gに示す。作動時または作動中に、画像処理ユニット14は、表示ユニット20による適切な提示のためにネイティブフレームレートで一連のフレーム#1~#nを含む、カメラ12からの未処理の動画データ22を傍受する。例示的な目的のために、図3Aに示されるフレームレートは、30fpsであることができる。画像処理ユニット14は、未処理のフレーム22を受信し、次いで、画像処理ユニット14によって受信された1つまたは複数の入力信号に依存して未処理のフレームを修正または保持することができる。画像処理ユニット14が、フレーム速度レートの調節を要求する入力信号を受信しない場合、図3Aに最も良く示されるように、未処理の動画データ22に含まれる全ての未処理のフレームは、電子装置のメモリユニットのような他のコンポーネントに渡される。
いくつかの実施形態では、画像処理ユニット14が、ネイティブフレームレートの2倍の高速化または早送り表示を表すファストモーション録画操作に関連付けられた特殊効果入力信号を受信する場合、画像処理ユニット14は、未処理の動画データ22を適切に修正する。これを受けて、未処理のフレーム22は図3Bに最も良く示されるように、2番目のフレームごとにドロップされるアルゴリズムを用いて処理される。未処理のフレーム#1はライターに追加することができ、未処理のフレーム#2はスキップ/ドロップすることができ、次に、未処理のフレーム#3は書き込むことができ、次に、未処理のフレーム#4はスキップ/ドロップされるというように、修正または出力動画録画データ24が2倍のファストモーション速度で生成されるまで、同様に処理される。この処理はリアルタイムで行われ、ファストモーション出力動画は、未処理の動画データ22の代わりに録画され、および/またはリアルタイムで表示される。
いくつかの実施形態では、画像処理ユニット14が、ネイティブフレームレートの3倍の高速化または早送り表示を表すファストモーション録画操作に関連付けられた特殊効果入力信号を受信する場合、画像処理ユニット14は、未処理の動画データ22を適切に修正する。これを受けて、未処理のフレーム22は、図3Cに最も良く示されるように、2番目及び3番目のフレームごとにドロップされるアルゴリズムを用いて処理される。未処理のフレーム#1はライターに追加することができ、未処理のフレーム#2および#3はスキップ/ドロップすることができ、次に未処理のフレーム#4は書き込むことができ、次に未処理のフレーム#5および#6はスキップ/ドロップすることができ、次に未処理のフレーム#7は書き込むことができというように、修正または出力録画データ24が3倍のファストモーション速度で生成されるまで、同様に処理される。この処理はリアルタイムで行われ、ファストモーション出力動画は、未処理の動画データ22の代わりに録画され、および/またはリアルタイムで表示される。
例えば、画像処理ユニット14が、スローモーション録画操作に関連付けられた特殊効果入力信号を受信する場合、これはネイティブフレームレートの-2倍での低速化またはスローモーションを表す。これを受けて、図3Dに最もよく示されるように、未処理のフレーム22は、すべてのフレームが複製/反復されるアルゴリズムを用いて処理される。未処理のフレーム#1はライターに追加することができ、次に未処理のフレーム#1が複製されて書き込まれ、次に未処理のフレーム#2が書き込まれ、次に未処理のフレーム#2が複製されて書き込まれ、次に未処理のフレーム#3が書き込まれ、次に未処理のフレーム#3が複製されて書き込まれるというように、修正または出力録画データ24が-2倍のスローモーション速度で生成されるまで、同様に処理される。この処理はリアルタイムで行われ、スローモーション出力動画は、未処理の動画データ22の代わりに録画され、および/またはリアルタイムで、あるいは録画が停止されて録画後アルゴリズムがその間に入力されたコマンドの処理を完了した直後に表示される。
いくつかの実施形態では、画像処理ユニット14が、ネイティブフレームレートの-3倍での低速化またはスローモーションを表す、スローモーション録画操作に関連付けられた特殊効果入力信号を受信する場合、画像処理ユニット14は未処理の動画データ22を適切に修正する。その際、図3Eに最も良く示されるように、未処理のフレームは、各フレームが少なくとも2回複製/反復されるアルゴリズムを用いて処理される。未処理のフレーム#1はライターに追加することができ、次に未処理のフレーム#1が2回複製されてそれぞれが書き込まれ、次に未処理のフレーム#2が書き込まれ、次に未処理のフレーム#2が2回複製されてそれぞれが書き込まれ、次に未処理のフレーム#3が書き込まれ、次に未処理のフレーム#3が2回複製されてそれぞれ書き込まれるというように、修正または出力録画データ24が-3倍のスローモーション速度で生成されるまで、同様に処理される。この処理はリアルタイムで行われ、スローモーションの出力動画が録画される。
いくつかの実施形態では、画像処理ユニット14が、スローモーション録画操作に関連付けられた特殊効果入力信号を受信する場合、これはネイティブフレームレートの-2倍での低速化またはスローモーションを表す。これを受けて、図3Fに最も良く示されるように、未処理のフレーム22は、2個の隣接するフレームの「ブレンド」の結果として新しいフレームが生成されるアルゴリズムを用いてが処理される。未処理のフレーム#1がライターに追加され、次に未処理のフレーム#1が未処理のフレーム#2と「ブレンド」されて1つの新しいフレーム#1aが生成されて#1aが書き込まれ、次に未処理のフレーム#2が書き込まれ、次に未処理のフレーム#2が未処理のフレーム#3と「ブレンド」されて1つの新しいフレーム#2aが生成されて#2aが書き込まれ、次に未処理のフレーム#3が書き込まれ、次に未処理のフレーム#3が未処理のフレーム#4と「ブレンド」されて1つの新しいフレーム#3aが生成されて#3aが書き込まれるというように、修正または出力録画データ24が-2倍のスローモーション速度で生成されるまで、同様に処理される。この処理はリアルタイムで行われ、スローモーション出力動画は、未処理の動画データ22の代わりに録画され、および/またはリアルタイムで、あるいは録画が停止されて録画後アルゴリズムがその間に入力されたコマンドの処理を完了した直後に表示される。
いくつかの実施形態では、画像処理ユニット14が、スローモーション録画動作に関連付けられた特殊効果入力信号を受信する場合、これはネイティブフレームレートの-3倍での低速化またはスローモーションを表す。これを受けて、図3Gに最もよく示されるように、未処理のフレーム22は、2個の隣接するフレームの「ブレンド」の結果として新しいフレームが生成されるアルゴリズムを用いて処理される。未処理のフレーム#1をライターに追加することができ、次に未処理のフレーム#1を未処理のフレーム#2と「ブレンド」して2個の新しいフレーム#1aおよび#1bが生成されて#1aおよび#1bが書き込まれ、次に未処理のフレーム#2が書き込まれ、次に未処理のフレーム#2を未処理のフレーム#3と「ブレンド」して2個の新しいフレーム#2aおよび#2bが生成されて#2aおよび#2bが書き込まれ、次に未処理のフレーム#3が書き込まれ、次に未処理のフレーム#3を未処理のフレーム#4と「ブレンド」して2個の新しいフレーム#3aおよび#3bが作成されて#3aおよび#3bが書き込まれるというように、修正または出力録画データ24が-3倍のスローモーション速度で生成されるまで、同様に処理される。この処理はリアルタイムで行われ、スローモーション出力動画は、未処理の動画データ22の代わりに録画され、および/またはリアルタイムで、あるいは録画が停止されて録画後アルゴリズムがその間に入力されたコマンドの処理を完了した直後に表示される。
追加のファストモーションおよび/またはスローモーション操作は、上述したものよりも大きなファストモーション速度またはスローモーション速度で実行できることを理解されたい。さらに、ファストモーション速度とスローモーション速度との組み合わせを、単一の未処理の動画データにリアルタイムで実施できることを理解されたい。このようにして、ネイティブ速度レート、ファストモーション速度、スローモーション速度、またはそれらの任意の組み合わせの部分を含む出力/最終動画録画データが作成される。
図4および図5を参照すると、コンパニオンソフトウェアアプリケーションは、画像処理ユニット14、または画像処理ユニット14に動作可能に関連付けられた電子計装置、マシン、またはシステム2に関連付けられ、および/またはそれらによって実行されることができる。図4は集積回路チップ26に組み込まれた画像処理ユニット14の概略図であり、これは、電子装置2の形成において、カメラ12などの例示的なマシンまたはその構成要素に組み込むことができ、その中で、構成要素または電子装置に、本明細書で説明する方法のうちの任意の1つまたは複数を実行させるための一連の命令を実行させることができる。画像処理ユニット14を含む集積回路チップ26は、その動作のためのファームウェアを含むように構成される、または構成することができる。集積回路チップ26は、カメラ12、表示ユニット20、または電子装置2の他の構成要素と共に埋め込まれることができることを理解されたい。Bluetooth(登録商標)または他のプロトコルを介して電子装置またはカメラに接続されたリモートコントロールを利用することができることを理解されたい。
集積回路チップ26は、本明細書に記載された方法または機能のうちの任意の1つまたは複数を実施または利用する1つまたは複数の一連の命令およびデータ構造(たとえば、命令)が記憶されるコンピュータまたは機械可読媒体を含むことができる。命令は、インターフェースまたはGUIから操作指示を受け取ることができる画像処理ユニット14の動作のために構成される、または構成することができる。
装置2は、タッチスクリーンおよびGUI、ソナーまたは亜音速送信機、受信機および/またはトランシーバ、音声コマンド、Bluetooth(登録商標)、リモートコントローラ、ディスプレイ上のジェスチャコマンド、または赤外線など、多数の異なる入力(複数のフィードからの同時入力を含む)および/または出力(I/O)システムをさらに含むことができるが、これらに限定されない。装置2は、動画録画装置から、内部メモリ、外部メモリ、外部ソリッドステートドライブ(SSD)またはクラウドなどのメモリ/ストレージシステムに、動画または画像をさらに記録することができる。
図5は電子装置2に組み込まれた画像処理ユニット14の概略図であり、本明細書で説明する方法のうちの任意の1つまたは複数を電子装置に実行させるための一連の命令を実行することができる。
さまざまな例示的な実施形態では、電子装置2は、スタンドアロンデバイスとして動作するか、または他の装置に接続(例えば、ネットワーク接続)されてもよい。ネットワーク接続された展開では、電子装置がサーバ-クライアントネットワーク環境におけるサーバまたはクライアントマシンの能力で動作してもよく、またはピアツーピア(または分散)ネットワーク環境におけるピアマシンとして動作してもよい。電子装置は、パーソナルコンピュータ(PC)、タブレットPC、セットトップボックス(STB)、携帯情報端末(PDA)、携帯電話、携帯音楽プレーヤ(例えば、Moving Picture Experts Group Audio Layer 3(MP3)プレーヤなどの携帯用ハードドライブオーディオデバイス)、ウェブアプライアンス、ネットワークルータ、スイッチ、ブリッジ、またはその装置によって実行されるべき動作を指定する一連の(シーケンシャルなまたはその他)命令を実行することができる任意の装置であってもよい。さらに、ここでは単一の電子装置のみが示されているが、「装置」という用語は、本明細書で説明される方法のうちの任意の1つまたは複数を実行するために、一連の(または複数の)命令を個別にまたは共同で実行する装置の任意の集合を含むものと解釈されるべきである。
例示の電子装置2は、プロセッサまたは複数のプロセッサ(例えば、CPU、GPU、またはその両方)と、メインメモリおよび/またはスタティックメモリとを含み、これらはバスを介して互いに通信する。他の実施形態では、電子装置2は、動画ディスプレイ(例えば、液晶ディスプレイ(LCD))をさらに含んでもよい。また、電子装置2は、英数字入力装置(例えば、キーボード)、カーソル制御装置(例えば、マウス)、音声認識または生体認証ユニット(図示せず)、駆動ユニット(ディスク駆動ユニットともいう)、信号生成装置(例えば、スピーカ)、ユニバーサルシリアルバス(USB)および/または他の周辺接続、ならびにネットワークインターフェース装置を含んでもよい。他の実施形態では、電子装置2は、データを暗号化するためのデータ暗号化モジュール(図示せず)をさらに含むことができる。
画像処理ユニット14は、駆動ユニットと動作可能に関連付けられたモジュールとすることができ、駆動ユニットは、本明細書に記載の方法または機能のうちの任意の1つまたは複数を実施するまたは利用する1つまたは複数の一連の命令およびデータ構造(たとえば、命令)が記憶されるコンピュータまたは機械読み取り可能媒体を含む。また、命令は、電子装置2による実行中に、メモリ内および/またはプロセッサ内に、完全にまたは少なくとも部分的に存在してもよい。また、メモリおよびプロセッサは、機械読み取り可能媒体を構成してもよい。
命令はさらに、多くの周知の転送プロトコル(例えば、拡張マークアップ言語(XML))のうちのいずれか1つを利用するネットワークインターフェース装置を介して、ネットワークを通じて送受信されてもよい。機械読み取り可能媒体は、例示的な実施形態では単一の媒体であることが示されているが、「コンピュータ読み取り可能媒体」という用語は、1つまたは複数の一連の命令を記憶する単一の媒体または複数の媒体(例えば、集中型または分散型のデータベースおよび/または関連するキャッシュおよびサーバ)を含むものと解釈されるべきである。「コンピュータ読み取り可能媒体」という用語は、装置による実行のための一連の命令を記憶、符号化、または搬送することが可能であり、装置に本願の方法論のうちのいずれか1つまたは複数を実行させる媒体、またはそのような一連の命令によって利用されるか、またはそれに関連付けられたデータ構造を記憶、符号化、または搬送することが可能である媒体を含むものと解釈されるべきである。したがって、「コンピュータ読み取り可能媒体」という用語は、ソリッドステートメモリ、光学媒体および磁気媒体、ならびに搬送波信号を含むが、これらに限定されないものと解釈されるべきである。このような媒体はまた、限定されるものではないが、ハードディスク、フロッピーディスク、フラッシュメモリカード、デジタルビデオディスク、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)等を含むことができる。本明細書に記載する例示的な実施形態は、コンピュータにインストールされたソフトウェア、ハードウェア、またはソフトウェアとハードウェアとの組み合わせを含む動作環境で実施することができる。
ソフトウェアアプリケーションは、電子デ装置2の任意のメモリ、または電子装置2と通信するリモートコンピュータに記憶されるように構成される、または構成可能であることが理解される。ソフトウェアアプリケーションは、カメラ12によるデフォルトフレーム速度レートを変更することなく、ユーザが録画される動画のカスタムフレーム速度レートを定義することができるインターフェースを含むように構成される、または構成可能である。
ここで、ライブ動画キャプチャデータの特殊効果操作をリアルタイムで制御する方法についてさらに説明する。概要として、いくつかの実施形態では、本方法は、カメラを用いて実世界のシーンの動画を撮影すること、撮影された動画をグラフィカルユーザインターフェース上で通常速度で再生すること、グラフィカルユーザインターフェースによって受信されたユーザインターフェース入力に応答して、録画されている動画のグラフィカルユーザインターフェース上の再生速度を通常再生速度から修正された再生速度に変更することを含む。ここで、ライブ動画キャプチャデータの特殊効果操作をリアルタイムで制御するための、いくつかの実施形態による具体的な処理について、より詳細に言及する。
ソフトウェアアプリケーションまたはインターフェースの可能な処理を図6、図7および図24に示す。インターフェースおよび/またはソフトウェアアプリケーションは、カメラによって提供される未処理の速度レートを変更することなく、ユーザがリアルタイムで所定の動画録画速度レートを選択することを可能にする。これにより、本技術は、カメラや装置に依存しないものとなっている。図6は、ユーザインターフェース、装置、および全体的なプロセスに関連付けられたサブルーチンを含む、本技術の全体的な処理を示す。
図7を参照すると、本技術の処理は、カメラからの未処理の動画データストリームに対して何らかの特殊効果オプションが要求されたかどうかを判定する。例示的な目的のために、特殊効果は、未処理の動画データ内のフレームを修正することによる動画速度レートの変更であることができる。この処理は、処理全体を支援するサブルーチンおよび/またはサブプロセスを開始するように構成される、または構成可能である。
本発明のソフトウェアアプリケーションが開始され、ユーザインターフェースがユーザに提供される。最初のステップは、ユーザがApp50を開くことである。その後、ステップ51では、ユーザがカメラ設定に入ることを可能にし、電子装置のカメラを使用するかまたはリモートビデオフィードを使用するかのいずれかを選択する。次に、処理はステップ52に進み、ユーザは録画処理を開始する。カメラまたは電子装置は、音声/動画の録画を開始するために「スタート」コマンド53を受信する。カメラの「スタート」コマンドは、本発明のソフトウェアアプリケーション、カメラアプリケーション、電子装置に関連付けられた任意の他のアプリケーション、または電子装置またはカメラと通信するリモート装置によって開始されることができることを理解されたい。
処理のステップ54では、ユーザが処理を進めるための適切な許可を有するかどうかを判定することができる。ステップ56では、別個のユーザ設定、プロファイル、データベース、キー、アカウントなどから許可属性を取得することができる。許可属性は、ユーザデータベース58から取得することができる。
ステップ60では、ユーザが適切な許可を有しているかどうかを判定し、ユーザが適切な許可を有していない場合、処理を停止または終了する(ステップ94)。ユーザが適切な許可を有していれば、処理はステップ62に進み、最大録画フレームレート(フレーム/秒(fps))を含む装置でサポートされている設定を取得する。次に、処理はステップ64におけるユーザ許可および装置サポートに基づいて、ローカルまたはリモート装置の録画fpsを設定し、次いで、ステップ66で、装置からの入力ストリームを開く。
カメラからの未処理のデータ入力ストリームが画像処理ユニットに伝達されると、次に処理は、ステップ62から情報を受信しながら、ステップ68においてカメラからの動画データストリームが開かれているかどうかを判定する。このリクエストは、画像処理ユニットがカメラから未処理の動画データを受信しているかどうかを確認するために利用されることができる。未処理の動画データストリームは、一体型または周辺型のマイクを含むことができ、メモリユニットまたは録画装置ではなく、画像処理ユニットに渡すことができる。入力ストリームが開かれていないと処理が判断した場合、処理は停止または終了する(ステップ94)。
入力ストリームが開いている場合、処理はステップ70に進み、未処理の動画データを保存/録画すべきか否かを判定する。未処理の動画データを保存する場合、処理はステップ72に進み、図8の例1に示すように、動画ストリームの書き込みサブルーチンを利用して新たな並列処理を開始する。録画装置からの追加の入力データ(ステップ74)は、未処理の動画データと共に保存することができる。
ステップ70で未処理の動画データを保存しないと判断された場合、ステップ76に進み、動画入力ストリームが開いている状態であるか否かを判定し、開いている場合には処理はステップ76に移行して、ユーザによる特殊効果コマンドが入力されたか否かを判定する(ステップ82)。この処理では、インターフェースを介して特殊効果コマンドが入力されることができる。ユーザが特殊効果コマンドを入力した場合、ステップ84が開始され、図9に最も良く示されているように、特殊効果サブルーチンが適用される。録画装置からの追加の入力データ(ステップ86)は、ステップ84での特殊効果の適用に含めることができる。
ユーザがステップ82において、動画速度レートの変更などの特殊効果の要求を入力していない場合、録画装置からのデータの入力(ステップ90)および/または特殊効果を有する処理された動画および音声データの入力(ステップ92)などの他のコマンドを適用するステップ88が初期化される。ステップ88は、ステップ84からの他の情報を含むことができる。
ステップ76で動画入力ストリームが閉じられていると判定された場合、処理の進行は、停止または終了する(ステップ94)。
必要に応じて、ステップ78は、図8の例2に示すように、動画ストリームの書き込みサブルーチンを利用した、新しい並列処理を開始することができる。追加処理された動画および音声データ(ステップ80)は、ステップ78からの動画データと共に保存することができる。ステップ78の新しい並列処理は、ステップ84および/または88とは別個に独立して開始することができる。ステップ78の後、処理はステップ76に戻る。
この処理は、未処理の動画データストリームが特殊効果適用サブルーチンを使用して処理された後、または未処理の動画データストリームが保持された後に、動画ストリームの書き込みサブルーチンを使用して、未処理の動画ストリームを書き込むことができる。
図8を参照して、動画データストリームを1つまたは複数の内部メモリ、電子装置と通信する1つまたは複数のリムーバブルメモリ、1つまたは複数の外部装置、および/または1つまたは複数のクラウド装置またはアカウントに書き込む/保存/録画する処理を提供する動画ストリームの書き込みサブルーチンについて説明する。
本技術の処理は、どの装置が動画データストリームの書き込み先であるかを順番に判定し、ユーザが動画ストリームの書き込みサブルーチンに関連する各ステップに対して適切な許可を有しているかどうかを判定する。ユーザが特定の装置に書き込むための適切な許可を有している場合、処理は、ユーザの好みに応じて、特定の装置に動画データストリームを書き込む。
このサブルーチンは、図7の処理からのコマンドによる開始に応じて開始する(ステップ104)。次に、このサブルーチンは、図7の処理またはデータベース(ステップ104および106)から、ユーザの好みおよび許可の取得に進む(ステップ102)。ステップ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のように、電子装置、カメラおよび/またはマイクからの音声/動画ストリームであってもよい。
未処理の動画データストリームの取得後、ステップ148が開始され、例えば、Recording_fpsがPlayback_fpsよりも大きいかどうかなど、現在の速度が通常速度またはネイティブ速度に等しいかどうかを判定する。ユーザが速度変更リクエストを行った場合、ステップ150は、図12に最も良く示すように、高度なスローモーションサブルーチンを開始する。ステップ150の完了後、このサブルーチンは停止または終了する(ステップ168)。
例えば、Recording_fpsがPlayback_fpsより大きくない場合や、Recording_fpsがPlayback_fpsと等しい場合のように、ユーザが速度変更リクエストを行っておらず、新しい速度が通常に設定されていない場合、このサブルーチンはステップ152に進み、現在の速度が通常またはネイティブ速度と等しいかどうかを判定する。ユーザが速度変更リクエストを行った場合、またはユーザが以前に修正された速度設定から速度を通常に戻した場合、このサブルーチンは図3Aに示すように、ステップ154に進み、動画ストリームをRAMメモリおよび/または不揮発性長期メモリバッファに書き込む。ステップ154が完了した後、サブルーチンはステップ164に進み、動画バッファ(RAMメモリおよび/または不揮発性長期メモリ)を呼び出し関数に戻し、これは、動画ストリームが開いているかどうかを判定するステップであってもよく、またはこのサブルーチンが停止または終了するかを判定するステップであってもよい(ステップ168)。
新しい速度が通常に設定されないようにユーザが速度変更リクエストを行っていない場合、このサブルーチンはステップ156に進み、速度変更リクエストが未処理の動画データストリームの通常速度よりも速いか遅いかを判定する。これは、現在の速度が通常よりも速いかどうかを判定することによって達成することができる。現在の速度が通常速度よりも速い場合、このサブルーチンは、図10に最も良く示されるように、高速化サブルーチンを開始する(ステップ158)。高速化サブルーチンが完了した後、このサブルーチンは、ステップ164を開始して、動画バッファ(RAMメモリおよび/または不揮発性長期メモリ)を呼び出し関数に戻す。
リクエストされた現在の速度が通常速度よりも速くない場合、このサブルーチンはステップ160に進み、現在の速度を通常よりも遅くするかどうかを判定する。現在の速度が通常速度よりも遅い場合、このサブルーチンは、図13に最も良く示されているように、低速化サブルーチンを開始する(ステップ162)。低速化サブルーチンが完了した後、または現在の速度が通常よりも遅くない場合、このサブルーチンは、ステップ164を開始して、動画バッファ(RAMメモリおよび/または不揮発性長期メモリ)を呼び出し関数に戻す。
図10を参照して、フレームドロップオプションおよび/または他のプラグインが必要であるかどうかを判定する高速化サブルーチンを説明する。このサブルーチンは、特殊効果適用サブルーチン(図9、ステップ158)からのコマンドによる開始に応じて開始する(ステップ170)。開始後、このサブルーチンは、カメラからおよび/またはリモートビデオフィードからストリーミングされた入力からのの未処理の動画データストリームを入力として取得する(ステップ172)。未処理の動画データストリームはステップ174のように、カメラおよび/またはマイクを含むローカル電子装置からの、カメラおよび/またはマイクを含むリモート装置からの、または他のオーディオ/ビデオフィードからの音声/動画ストリームであってもよい。
未処理の動画データストリームの取得後、このサブルーチンのステップ176が開始され、カメラからの動画データ入力ストリームが開いているかどうかが判定される。開いていない場合、このサブルーチンは、ステップ189に進み、このサブルーチンを停止または終了する。
入力ストリームが開いている場合、このサブルーチンは、フレームドロップが要求されているかどうかを判定し(ステップ178)、要求されている場合、図11に最も良く示されるように、フレームドロップサブルーチンを開始するステップ180に進む。
ステップ178からフレームドロップが要求されていない場合、またはステップ180のフレームドロップサブルーチンが完了した後、このサブルーチンはステップ181に進み、時間圧縮または伸長の使用がリクエストされているかどうかを判定し、必要であれば、ステップ182に進み、図20に最もよく示されているように、時間圧縮および伸長のサブプロセスを開始する。
ステップ181からフレーム時間圧縮および/または伸長が要求されていない場合、またはステップ182の時間圧縮および/または伸長のサブプロセスが完了した後、このサブルーチンはステップ183に進み、可変FPS再生の使用がリクエストされているかどうかを判定し、必要であれば、ステップ184に進み、図21に最もよく示されるように、可変FPS再生サブプロセスを開始する。
ステップ183からフレーム変数FPS再生が要求されていない場合、またはステップ184の変数FPS再生サブプロセスが完了した後、このサブルーチンはステップ185に進み、他のプラグインまたはアプリケーションが要求されているかどうかを判定する。
他のプラグインまたはアプリケーションがリクエストされている場合、このサブルーチンはステップ186に進み、他のプラグインまたはアプリケーションを実行し、ステップ178からの未処理の動画ストリームまたはステップ180、182および/または184からの修正された動画ストリームに対して、その機能を適用する。例えば、他のプラグインまたはアプリケーションはスムージング技術などであってもよいが、これらに限定されない。これらの他のプラグインまたはアプリケーションは、本技術のソフトウェアアプリケーションと統合することができ、あるいは本技術から離れていても、本技術のソフトウェアアプリケーションでアクセス可能かつ操作可能であることができる。
ステップ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-1)フレームをドロップする動作を初期化する(ステップ218)。その後、このサブルーチンはステップ220に進み、その後ステップ196に戻る。
このフレームドロップサブルーチンは、フレーム毎にフレームをドロップすべきか否かを決定することが理解できる。その結果、特定のフレームが削除された修正されて動画ストリームが得られ、所定の速度のファストモーション動画をシミュレートすることができる。この修正された動画ストリームは、リアルタイムでメモリに書き込まれ/保存される。
このフレームドロップサブルーチンは、ステップ196で入力ストリームが開いていないと判定されるまで、ステップ204~220を含むループされたサブプロセスを含むことが理解できる。
図12を参照して、フレーム追加オプションまたは他のプラグインが要求されているかどうかを判定する高度なスローモーションサブルーチンについて説明する。このサブルーチンは、特殊効果適用サブルーチンからのコマンドによる開始(ステップ222)に応じて開始する。開始後、このサブルーチンは、入力としてカメラから未処理の動画データストリームを取得する(ステップ224)。未処理の動画データストリームはステップ246のように、カメラおよび/またはマイクを含むローカル電子装置からの、カメラおよび/またはマイクを含むリモート装置からの、または他のオーディオ/ビデオフィードからの音声/動画ストリームであってもよい。
未処理の動画データストリームの取得後、このサブルーチンのステップ248が開始され、カメラからの動画データ入力ストリームが開いているかどうかが判定される。ステップ248で、入力ストリームが開いていないと判定された場合、このサブルーチンはステップ270に進み、このサブルーチンは停止する。
ステップ248から入力ストリームが開いている間、このサブルーチンはフレーム追加が要求されているかどうかを判定し(ステップ250)、要求されていれば、図13に最も良く示されるように、フレーム追加サブルーチンを開始するステップ252に進む。
ステップ250からフレーム追加が要求されていない場合、またはステップ252からのフレーム追加サブルーチンが完了した後、このサブルーチンはステップ254に進み、フレームレート録画速度の増加が要求されているかどうかを判定する。要求されている場合、このサブルーチンはステップ256に進み、図14に最も良く示されているように、可変フレームレートサブルーチンまたはフレームレート増加サブルーチンを開始する。
ステップ254からフレームレート録画速度の増加が要求されていない場合、またはステップ256からの可変フレームレートサブルーチンが完了した後、このサブルーチンはステップ258に進み、一定の高フレームレートの録画速度が使用されるべきかどうかを判定する。使用される場合、このサブルーチンはステップ260に進み、図15に最も良く示されているように、一定の高フレームレートサブルーチンを開始する。
ステップ258から一定の高フレームレート録画速度が要求されていない場合、またはステップ260の一定の高フレームレート録画速度サブルーチンが完了した後、このサブルーチンはステップ261に進み、時間圧縮または伸長の使用が要求されているかどうかを判定し、要求されていれば、図20に最もよく示されるように、時間圧縮および伸長サブプロセスを開始するステップ262に進む。
ステップ261からフレーム時間圧縮および/または伸長が要求されていない場合、またはステップ262の時間圧縮および/または伸長サブプロセスが完了した後、このサブルーチンはステップ263に進み、可変FPS再生の使用がリクエストされているかどうかを判定し、要求されていれば、ステップ264に進み、図22に最もよく示されるように、可変FPS再生サブプロセスを開始する。ステップ263からフレーム可変FPS再生が要求されていない場合、またはステップ264の可変FPS再生サブプロセスが完了した後、このサブルーチンはステップ265に進み、他の特殊効果の強化がリクエストされているかどうかを判定する。他の特殊効果の強化がリクエストされている場合、このサブルーチンはステップ267に進み、このサブルーチンは他の特殊効果サブルーチンを実行し、それらの機能を生成された修正された動画ストリームに適用することができる。この他の特殊効果サブルーチンは、本技術のソフトウェアアプリケーションと統合することができ、あるいは本技術から離れていても、本技術のソフトウェアアプリケーションでアクセス可能で操作可能である。
ユーザがステップ265からの他の特殊効果の強化の使用をリクエストしていない場合、またはステップ267からの他の特殊効果サブルーチンが完了した後、このサブルーチンはステップ266に進み、動画入力ストリームが開いているかどうかを判定するためにステップ248にループバックする呼び出し関数にデータを戻す。ステップ268に従って、他の処理された音声/動画データは、呼び出し関数に返されるデータの一部であり得ることが理解することができる。
この高度なスローモーションサブルーチンは、ステップ248で入力ストリームが開いていないと判定されるまで、ステップ250~266を含むループされたサブプロセスを含むことが理解できる。
図13を参照して、リクエストされたスローモーション動画をシミュレートするためにフレームが追加されるかどうか、およびどのフレームが追加されるかを判定する、図12の低速化サブルーチンに関連するフレーム追加サブルーチンを説明する。このサブルーチンは、録画fps=再生fpsであることを前提としている。このサブルーチンは、低速化サブルーチンからのコマンドによる開始(ステップ272)に応じて開始する。開始後、このサブルーチンは、カメラから未処理の動画データストリームを入力として取得する(ステップ274)。未処理の動画データストリームは、ステップ276のように、カメラおよび/またはマイクを含むローカル電子装置からの、カメラおよび/またはマイクを含むリモート装置からの、または他のオーディオ/ビデオフィードからの音声/動画ストリームであってもよい。
未処理の動画データストリームの取得後、このサブルーチンのステップ274が開始され、カメラからの動画データ入力ストリームが開いているかどうかが判定される。ステップ278が、入力ストリームが開いていないと判定した場合、このサブルーチンはステップ298に進み、データを、図12のステップ252の呼び出し関数に戻す。ステップ298は、RAMメモリおよび/または不揮発性長期メモリから動画/音声フレームのデータを受信することができる(ステップ300)。ステップ298が完了した後、このサブルーチンは停止または終了する(ステップ302)。
ステップ278から入力ストリームが開かれている間に、このサブルーチンは、単純なフレームコピー(ステップ281)またはよりCPU負荷の高いフレームブレンド(ステップ282)のいずれかにより、ステップ280で利用するフレーム追加のタイプを決定する。ユーザがフレームコピーを選択した場合、処理はステップ281に進み、アルゴリズムおよびその説明は変更されない。しかしながら、ユーザが「フレームブレンド」を選択し、それらのハードウェアがそれをサポートしている場合、プロセスはステップ282に進み、アルゴリズムは新規または追加のステップを含むことができる。
ステップ280でフレームコピーが選択された場合、速度「チェック」の各々について、論理的には、処理は左のアルゴリズムパスに沿って進むことが理解される。ステップ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)。未処理の動画データストリームは、ステップ308のように、電子装置、カメラおよび/またはマイクからの音声/動画ストリームであってもよい。
未処理の動画データストリームの取得後、このサブルーチンのステップ310が開始されて、デバイスの録画フレームレートが、例えば、Recording_Frame_Rate=120fpsに設定される。その後、ステップ312は、デバイスの再生フレームレートを、例えば、Playback_Frame_Rate=30fpsに設定する。
このサブルーチンのステップ314が開始され、カメラからの動画データ入力ストリームが開いているかどうかを判定する。ステップ314が、入力ストリームが開いていないと判定した場合、このサブルーチンはステップ332に進み、データを、図12のステップ256である呼び出し関数に戻す。ステップ332は、RAMメモリおよび/または不揮発性長期メモリから動画/音声フレームのデータを受信することができる(ステップ334)。ステップ332が完了した後、このサブルーチンは停止または終了する(ステップ336)。
ステップ314から入力ストリームが開いている間、このサブルーチンは、録画速度が「-4倍」に等しいかどうかを判定し(ステップ316)、これは4のスローモーション範囲とすることができる。等しい場合、ステップ318が初期化され、録画フレームレートが120fpsに設定される。その後、このサブルーチンはステップ330に進み、フレームをバッファ(RAMメモリおよび/または不揮発性長期メモリ)に書き込む。ステップ330の後、このサブルーチンはステップ314に戻る。
録画速度が「-4倍」に等しくない場合(ステップ316)、このサブルーチンは、録画速度が「-3倍」に等しいかどうかを判定する(ステップ320)。等しい場合、ステップ322が初期化され、録画フレームレートが90fpsに設定される。その後、このサブルーチンはステップ330に進み、フレームをバッファ(RAMメモリおよび/または不揮発性長期メモリ)に書き込む。ステップ330の後、このサブルーチンはステップ314に戻る。
録画速度が「-3倍」に等しくない場合(ステップ320)、このサブルーチンは、録画速度が「-2倍」に等しいかどうかを判定する(ステップ324)。等しい場合、ステップ326が初期化され、録画フレームレートが60fpsに設定される。その後、このサブルーチンはステップ330に進み、フレームをバッファ(RAMメモリおよび/または不揮発性長期メモリ)に書き込む。ステップ330の後、このサブルーチンはステップ314に戻る。
録画速度が「-2倍」に等しくない場合(ステップ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のように、カメラおよび/またはマイクを含むローカル電子装置からの、カメラおよび/またはマイクを含むリモート装置からの、または他のオーディオ/ビデオフィードからの音声/動画ストリームであってもよい。
未処理の動画データストリームの取得後、このサブルーチンのステップ376が開始され、装置の録画フレームレートを、例えば、Recording_Frame_Rate=60fpsに設定する。その後、ステップ378は、Playback_Frame_Rate=30fpsに装置の再生フレームレートを、例えば、Playback_Frame_Rate=30fpsに設定する。
このサブルーチンのステップ380が開始され、カメラからの動画データ入力ストリームが開いているかどうかを判定する。ステップ380が、入力ストリームが開いていないと判定した場合、このサブルーチンはステップ398に進み、データを、図15のステップ354の呼び出し関数に戻す。ステップ398は、RAMメモリおよび/または不揮発性長期メモリから動画/音声フレームのデータを受信することができる(ステップ400)。ステップ398が完了した後、このサブルーチンは停止または終了する(ステップ402)。
ステップ380から入力ストリームが開いている間、このサブルーチンは、録画速度が「-4倍」に等しいかどうかを判定する(ステップ382)。等しい場合、ステップ384が初期化され、図3Eのように、ストリームの各フレームを2回コピーして合計3つの同一のフレームを得るか、または図3Gのようにブレンドされたフレームを得る。その後、このサブルーチンはステップ396に進み、フレームをバッファ(RAMメモリおよび/または不揮発性長期メモリ)に書き込む。ステップ396の後、このサブルーチンはステップ380に戻る。
録画速度が「-4倍」に等しくない場合(ステップ382)、このサブルーチンは、録画速度が「-3倍」に等しいかどうかを判定する(ステップ386)。等しい場合、ステップ388が初期化され、図3Dのように、ストリームの各フレームを1回コピーして合計2つの同一フレームを得るか、または図3Fのようにブレンドされたフレームを得る。その後、このサブルーチンはステップ396に進み、フレームをバッファ(RAMメモリおよび/または不揮発性長期メモリ)に書き込む。ステップ396の後、このサブルーチンはステップ380に戻る。
録画速度が「-3倍」に等しくない場合(ステップ386)、このサブルーチンは、録画速度が「-2倍」に等しいかどうかを判定する(ステップ390)。等しい場合、ステップ392が初期化され、変更されていない動画ストリームを通過させる。その後、このサブルーチンはステップ396に進み、フレームをバッファ(RAMメモリおよび/または不揮発性長期メモリ)に書き込む。ステップ396の後、このサブルーチンはステップ380に戻る。
録画速度が「-2倍」に等しくない場合(ステップ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のように、カメラおよび/またはマイクを含むローカル電子装置からの、カメラおよび/またはマイクを含むリモート装置からの、または他のオーディオ/ビデオフィードからの音声/動画ストリームであってもよい。
未処理の動画データストリームの取得後、このサブルーチンのステップ410が開始され、デバイスの録画フレームレートを、例えば、Recording_Frame_Rate=120fpsに設定する。その後、ステップ412は、デバイスの再生フレームレートを、例えば、Playback_Frame_Rate=30fpsに設定する。
このサブルーチンのステップ414が開始され、カメラからの動画データ入力ストリームが開いているかどうかを判定する。ステップ414で入力ストリームが開いていないと判定された場合、このサブルーチンはステップ448に進み、データを、図15のステップ358である呼び出し関数に戻す。ステップ448は、RAMメモリおよび/または不揮発性長期メモリから動画/音声フレームのデータを受信することができる(ステップ450)。ステップ448が完了した後、このサブルーチンは停止または終了する(ステップ452)。
ステップ414から入力ストリームが開いている間、このサブルーチンは録画速度が「-8倍」に等しいかどうかを判定する(ステップ416)。等しい場合、ステップ418が初期化され、フレームを4回コピーして合計5つの同一フレームを得るか、またはブレンドされたフレームを得る。その後、このサブルーチンはステップ446に進み、フレームをバッファ(RAMメモリおよび/または不揮発性長期メモリ)に書き込む。ステップ446の後、このサブルーチンはステップ414に戻る。
録画速度が「-8倍」に等しくない場合(ステップ416)、このサブルーチンは、録画速度が「-7倍」に等しいかどうかを判定する(ステップ420)。等しい場合、ステップ422が初期化され、フレームを3回コピーして合計4つの同一フレームを得るか、またはブレンドされたフレームを得る。その後、このサブルーチンはステップ446に進み、フレームをバッファ(RAMメモリおよび/または不揮発性長期メモリ)に書き込む。ステップ446の後、このサブルーチンはステップ414に戻る。
録画速度が「-7倍」に等しくない場合(ステップ420)、このサブルーチンは、録画速度が「-6倍」に等しいかどうかを判定する(ステップ424)。等しい場合、ステップ426が初期化され、図3Eのように、フレームを2回コピーして合計3つの同一のフレームを得るか、または図3Gのようにブレンドされたフレームを得る。その後、このサブルーチンはステップ446に進み、フレームをバッファ(RAMメモリおよび/または不揮発性長期メモリ)に書き込む。ステップ446の後、このサブルーチンはステップ414に戻る。
録画速度が「-6倍」に等しくない場合(ステップ424)、このサブルーチンは、録画速度が「-5倍」に等しいかどうかを判定する(ステップ428)。等しい場合、ステップ430が初期化され、図3Dのように、フレームを1回コピーして合計2つの同一フレームを得るか、または図3Fのようにブレンドされたフレームを得る。その後、このサブルーチンはステップ446に進み、フレームをバッファ(RAMメモリおよび/または不揮発性長期メモリ)に書き込む。ステップ446の後、このサブルーチンはステップ414に戻る。
録画速度が「-5倍」に等しくない場合(ステップ428)、このサブルーチンは、録画速度が「-4倍」に等しいかどうかを判定する(ステップ432)。等しい場合、ステップ434が初期化され、変更されていない動画ストリームを通過させる。その後、このサブルーチンはステップ446に進み、フレームをバッファ(RAMメモリおよび/または不揮発性長期メモリ)に書き込む。ステップ446の後、このサブルーチンはステップ414に戻る。
録画速度が「-4倍」に等しくない場合(ステップ432)、このサブルーチンは、録画速度が「-3倍」に等しいかどうかを判定する(ステップ436)。等しい場合、ステップ438が初期化され、4フレームの1つ(1/4)をドロップする(ステップ438)。その後、このサブルーチンはステップ446に進み、フレームをバッファ(RAMメモリおよび/または不揮発性長期メモリ)に書き込む。ステップ446の後、このサブルーチンはステップ414に戻る。
録画速度が「-3倍」に等しくない場合(ステップ436)、このサブルーチンは、録画速度が「-2倍」に等しいかどうかを判定する(ステップ440)。等しい場合、ステップ442が初期化され、4フレームのうちの2フレーム(2/4)をドロップする(ステップ442)。その後、このサブルーチンはステップ446に進み、フレームをバッファ(RAMメモリおよび/または不揮発性長期メモリ)に書き込む。ステップ446の後、このサブルーチンはステップ414に戻る。
録画速度が「-2倍」に等しくない場合(ステップ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のように、カメラおよび/またはマイクを含むローカル電子装置からの、カメラおよび/またはマイクを含むリモート装置からの、または他のオーディオ/ビデオフィードからの音声/動画ストリームであってもよい。
未処理の動画データストリームの取得後、このサブルーチンのステップ460が開始され、このサブルーチンは、デバイスの録画フレームレートを、例えば、Recording_Frame_Rate=240fpsに設定する。その後、ステップ462は、デバイスの再生フレームレートを、例えば、Playback_Frame_Rate=30fpsに設定する。
このサブルーチンのステップ464が開始され、カメラからの動画データ入力ストリームが開いているかどうかを判定する。ステップ464が、入力ストリームが開いていないと判定した場合、このサブルーチンはステップ498に進み、データを、図15のステップ362の呼び出し関数に戻す。ステップ498は、RAMメモリおよび/または不揮発性長期メモリから動画/音声フレームのデータを受信することができる(ステップ500)。ステップ498が完了した後、このサブルーチンは停止または終了する(ステップ502)。
ステップ464から入力ストリームが開いている間、このサブルーチンは録画速度が「-8倍」に等しいかどうかを判定する(ステップ466)。等しい場合、ステップ468が初期化され、変更されていない動画ストリームを通過させる。その後、このサブルーチンはステップ496に進み、フレームをバッファ(RAMメモリおよび/または不揮発性長期メモリ)に書き込む。ステップ496の後、このサブルーチンはステップ464に戻る。
録画速度が「-8倍」に等しくない場合(ステップ466)、このサブルーチンは、録画速度が「-7倍」に等しいかどうかを判定する(ステップ470)。等しい場合、ステップ472が初期化され、8フレーム毎に1フレーム(1/8)をドロップする。その後、このサブルーチンはステップ496に進み、フレームをバッファ(RAMメモリおよび/または不揮発性長期メモリ)に書き込む。ステップ496の後、このサブルーチンはステップ464に戻る。
録画速度が「-7倍」に等しくない場合(ステップ470)、このサブルーチンは、録画速度が「-6倍」に等しいかどうかを判定する(ステップ474)。等しい場合、ステップ476が初期化され、4フレーム毎に1フレーム(2/8)をドロップする。その後、このサブルーチンはステップ496に進み、フレームをバッファ(RAMメモリおよび/または不揮発性長期メモリ)に書き込む。ステップ496の後、このサブルーチンはステップ464に戻る。
録画速度が「-6倍」に等しくない場合(ステップ474)、このサブルーチンは、録画速度が「-5倍」に等しいかどうかを判定する(ステップ478)。等しい場合、ステップ480が初期化され、8フレーム毎に3フレーム(3/8)をドロップする。その後、このサブルーチンはステップ496に進み、フレームをバッファ(RAMメモリおよび/または不揮発性長期メモリ)に書き込む。ステップ496の後、このサブルーチンはステップ464に戻る。
録画速度が「-5倍」に等しくない場合(ステップ478)、このサブルーチンは、録画速度が「-4倍」に等しいかどうかを判定する(ステップ482)。等しい場合、ステップ484が初期化され、2フレーム毎に1フレーム(4/8)をドロップする。その後、このサブルーチンはステップ496に進み、フレームをバッファ(RAMメモリおよび/または不揮発性長期メモリ)に書き込む。ステップ496の後、このサブルーチンはステップ464に戻る。
録画速度が「-4倍」に等しくない場合(ステップ482)、このサブルーチンは、録画速度が「-3倍」に等しいかどうかを判定する(ステップ486)。等しい場合、ステップ488が初期化され、8フレーム毎に5フレーム(5/8)をドロップする。その後、このサブルーチンはステップ496に進み、フレームをバッファ(RAMメモリおよび/または不揮発性長期メモリ)に書き込む。ステップ496の後、このサブルーチンはステップ464に戻る。
録画速度が「-3倍」に等しくない場合(ステップ486)、このサブルーチンは、録画速度が「-2倍」に等しいかどうかを判定する(ステップ490)。等しい場合、ステップ492が初期化され、4フレーム毎に3フレーム(6/8)をドロップする。その後、このサブルーチンはステップ496に進み、フレームをバッファ(RAMメモリおよび/または不揮発性長期メモリ)に書き込む。ステップ496の後、このサブルーチンはステップ464に戻る。
録画速度が「-2倍」に等しくない場合(ステップ490)、このサブルーチンは8フレーム毎に7フレーム(7/8)をドロップする(ステップ494)。その後、このサブルーチンはステップ496に進み、フレームをバッファ(RAMメモリおよび/または不揮発性長期メモリ)に書き込む。ステップ496の後、このサブルーチンはステップ464に戻る。
この一定の高録画fpsサブルーチン(240FPS)は、ステップ464で入力ストリームが開いていないと判定されるまで、ステップ466~496を含むループされたサブプロセスを含むことが理解できる。
図19を参照して、図15の一定の高フレームレートサブルーチンに関連する一定の高録画fpsサブルーチン(240FPS)におけるエクストリームスローモーションの例を説明する。この一定の高フレームレートサブルーチンは、極端なスローモーションをシミュレートするために利用することができ、例えば、-8倍から-128倍速のスローモーション範囲に限定される。図19のフレーム追加サブルーチンを有する一定の高録画FPSは、1秒あたりの高フレーム録画レート、「通常の」毎秒の再生フレーム、およびスローモーション特殊効果を高めるためのフレーム追加の組み合わせのための例示的なフローチャートアルゴリズムを示す。このサブルーチンは速度が≧-8倍と2の完全な倍数である場合を例示しており、-8倍よりも遅い速度は、図18に最も良く示されている。
このサブルーチンは、低速化サブルーチンからのコマンドによる開始に応じて開始する(ステップ510)。開始後、このサブルーチンは、入力としてカメラから未処理の動画データストリームを取得する(ステップ512)。未処理の動画データストリームは、ステップ514のように、電子装置、カメラおよび/またはマイクからの音声/動画ストリームであってもよい。
未処理の動画データストリームの取得後、このサブルーチンのステップ516が開始され、デバイスの録画フレームレートを、例えば、Recording Frame Rate=240fpsに設定する。その後、ステップ518は、デバイスの再生フレームレートを、例えば、Playback Frame Rate=30fpsに設定する。
このサブルーチンのステップ520が開始され、カメラからの動画データ入力ストリームが開いているかどうかを判定する。ステップ520で入力ストリームが開いていないと判定された場合、このサブルーチンはステップ544に進み、データを、図15のステップ358である呼び出し関数に戻す。ステップ544は、RAMメモリおよび/または不揮発性長期メモリから動画/音声フレームのデータを受信することができる(ステップ546)。ステップ544が完了した後、このサブルーチンは停止または終了する(ステップ548)。
ステップ520から入力ストリームが開いている間に、このサブルーチンは、録画速度が「-8倍」に等しいかどうかを判定する(ステップ522)。等しい場合、ステップ524が初期化され、変更されていない動画ストリームを通過させる。その後、このサブルーチンはステップ542に進み、フレームをバッファ(RAMメモリおよび/または不揮発性長期メモリ)に書き込む。ステップ542の後、このサブルーチンはステップ520に戻る。
録画速度が「-8倍」に等しくない場合(ステップ522)、このサブルーチンは、録画速度が「-16倍」に等しいかどうかを判定する(ステップ526)。等しい場合、ステップ528が初期化され、図3Dのように、各フレームを1回コピーして合計2つの同一フレームを得るか、または図3Fのようにブレンドされたフレームを得る。その後、このサブルーチンはステップ542に進み、フレームをバッファ(RAMメモリおよび/または不揮発性長期メモリ)に書き込む。ステップ542の後、このサブルーチンはステップ520に戻る。
録画速度が「-16倍」に等しくない場合(ステップ526)、このサブルーチンは、録画速度が「-32倍」に等しいかどうかを判定する(ステップ530)。等しい場合、ステップ532が初期化され、図3Eのように、各フレームを2回コピーして合計3つの同一のフレームを得るか、図3Gのように、ブレンドされたフレームを得る。その後、このサブルーチンはステップ542に進み、フレームをバッファ(RAMメモリおよび/または不揮発性長期メモリ)に書き込む。ステップ542の後、このサブルーチンはステップ520に戻る。
録画速度が「-32倍」に等しくない場合(ステップ530)、このサブルーチンは、録画速度が「-64倍」に等しいかどうかを判定する(ステップ534)。等しい場合、ステップ536が初期化され、各フレームを3回コピーして合計4つの同一フレームを得るか、またはブレンドされたフレームを得る。その後、このサブルーチンはステップ542に進み、フレームをバッファ(RAMメモリおよび/または不揮発性長期メモリ)に書き込む。ステップ542の後、このサブルーチンはステップ520に戻る。
録画速度が「-64倍」に等しくない場合(ステップ534)、このサブルーチンは、録画速度が「-128倍」に等しいかどうかを判定する(ステップ538)。等しい場合、ステップ540が初期化され、各フレームが4回コピーされて合計5つの同一フレームを得るか、またはブレンドされたフレームを得る。その後、このサブルーチンはステップ542に進み、フレームをバッファ(RAMメモリおよび/または不揮発性長期メモリ)に書き込む。ステップ542の後、このサブルーチンはステップ520に戻る。
この一定の高録画fpsサブルーチン(240FPS)は、ステップ520で入力ストリームが開いていないと判定されるまで、ステップ520~542を含むループされたサブプロセスを含むことが理解できる。
図20を参照して、セグメント時間圧縮および伸長サブルーチンの一例を説明される。このサブルーチンは、録画が停止した後の動画処理中に再生時間を高速化または低速化することによって、スローモーションおよびファストモーションのためのフローチャートアルゴリズムを提供するフレーム追加/ドロップは、スローモーションの特殊効果をシミュレートするために、時間圧縮/伸長アルゴリズムにおいて実行することができる。
このアルゴリズム/サブルーチンで作成された動画ファイルは、すべての動画プレーヤで通常どおり再生でき、メタデータは必要ない。これは、本技術で作成された他の動画ファイルに代わるものである。
このサブルーチンは、低速化サブルーチンからのコマンドによる開始に応じて開始する(ステップ550)。開始後、このサブルーチンは、入力としてカメラからの未処理の動画データストリームを取得する(ステップ552)。未処理の動画データストリームは、ステップ554のように、カメラおよび/またはマイクを含むローカル電子装置からの、カメラおよび/またはマイクを含むリモート装置からの、または他のオーディオ/ビデオフィードからの音声/動画ストリームであってもよい。
未処理の動画データストリームの取得後、このサブルーチンのステップ556が開始され、デバイスの録画FPSが設定される。その後、ステップ558は、再生FPSを録画FPS以下(≦)に設定する。
このサブルーチンのステップ560が開始され、カメラからの動画データ入力ストリームが開いているかどうかを判定する。ステップ560で、入力ストリームが開いていないと判定された場合、このサブルーチンはステップ576に進む。ステップ576は、RAMメモリおよび/または不揮発性長期メモリから動画/音声フレームのデータを受信することができる(ステップ578)。ステップ576が完了した後、このサブルーチンは停止または終了する(ステップ580)。
ステップ560から入力ストリームが開いている間、このサブルーチンは速度が「通常」より遅いかどうかを判定する(ステップ562)。遅い場合、ステップ564が初期化され、動画セグメントfpsを、録画fpsを速度で割ったものに等しくなるように設定する(Segment FPS=Record_FPS/Speed)。その後、このサブルーチンはステップ574に進み、フレームをバッファ(RAMメモリおよび/または不揮発性長期メモリ)に書き込む。ステップ574の後、このサブルーチンはステップ560に戻る。
速度が「通常」よりも遅くない場合(ステップ562)、このサブルーチンは速度が「通常」と等しいかどうかを判定する(ステップ566)。等しい場合、ステップ568が初期化され、動画セグメントfpsが録画fpsに等しくなるように設定する(Segment FPS=Record_FPS)。その後、このサブルーチンはステップ574に進み、フレームをバッファ(RAMメモリおよび/または不揮発性長期メモリ)に書き込む。ステップ574の後、このサブルーチンはステップ560に戻る。
録画速度が「通常」と等しくない場合(ステップ566)、このサブルーチンは、速度が「通常」より速いかどうかを判定する(ステップ570)。速い場合、ステップ572が初期化され、動画セグメントfpsを、録画fpsに速度を掛けたものに等しくなるように設定する(Segment FPS=Record_FPS*Speed)。その後、このサブルーチンはステップ574に進み、フレームをバッファ(RAMメモリおよび/または不揮発性長期メモリ)に書き込む。ステップ574の後、このサブルーチンはステップ560に戻る。
このセグメント時間圧縮および伸長サブルーチンは、ステップ560で入力ストリームが開いていないと判定されるまで、ステップ560~574を含むループされたサブプロセスを含むことが理解できる。
セグメント時間圧縮及び伸長サブルーチンの一例は、図20のアルゴリズムの結果を示す図21に最も良く示されている。上のバーは、動画セグメント582を連続録画における動画セグメント毎に秒単位で表している。動画セグメント582は、秒単位で、セグメント時間圧縮及び伸長サブルーチンによって処理される。セグメント582は、ユーザ/AIが速度変数を変更するときに生成される。時間の特殊効果は、未処理の動画セグメントに適用され、処理された動画ストリームRAMに書き込まれる。各セグメントは圧縮、伸張、または変更されない。その結果、再生動画セグメント584は、秒単位の録画セグメント時間に対応する、動画セグメント毎の秒単位で提供される。
図22を参照して、可変再生速度録画サブルーチンの一例が示されており、これは、録画中に再生フレームレートを高速化または低速化することによって、スローモーション及びファストモーションのためのフローチャートアルゴリズムを提供する。このアルゴリズムは、動画のメタデータに埋め込まれたファスト/スローモーションコマンドを使用して、通常の動画を作成することができる。メタデータは、動画録画においては表示されない動画ファイルに埋め込まれたデータである。
このサブルーチンは、図12の低速化サブルーチン(ステップ264)からのコマンドによる開始に応じて開始する(ステップ590)。開始後、このサブルーチンは、入力としてカメラから未処理の動画データストリームを取得する(ステップ592)。未処理の動画データストリームは、ステップ594のように、カメラおよび/またはマイクを含むローカル電子装置からの、カメラおよび/またはマイクを含むリモート装置からの、または他のオーディオ/ビデオフィードからの音声/動画ストリームであってもよい。
未処理の動画データストリームの取得後、このサブルーチンのステップ596が開始され、装置の録画FPSが設定される。その後、ステップ598は、再生FPSを録画FPS以下(≦)に設定する。
このサブルーチンのステップ600が開始され、カメラからの動画データ入力ストリームが開いているかどうかを判定する。ステップ600で、入力ストリームが開いていないと判定された場合、このサブルーチンはステップ616に進む。ステップ616は、RAMメモリおよび/または不揮発性長期メモリから動画/音声フレームのデータを受信することができる(ステップ618)。ステップ616が完了した後、このサブルーチンは停止または終了する(ステップ620)。
ステップ600から入力ストリームが開いている間、このサブルーチンは速度が「通常」より遅いかどうかを判定する(ステップ602)。遅い場合、ステップ604が初期化され、セグメント再生fpsを、録画fpsをその動画セクションの速度で割ったものに等しくなるように設定する(Segment FPS=Record_FPS/Speed)。その後、このサブルーチンはステップ614に進み、フレームをバッファ(RAMメモリおよび/または不揮発性長期メモリ)に書き込む。ステップ614の後、このサブルーチンはステップ600に戻る。
速度が「通常」よりも遅くない場合(ステップ602)、このサブルーチンは速度が「通常」と等しいかどうかを判定する(ステップ606)。等しい場合、ステップ608が初期化され、セグメント再生fpsを、その動画セクションの録画fpsと等しくなるように設定する(Segment FPS=Record_FPS)。その後、このサブルーチンはステップ614に進み、フレームをバッファ(RAMメモリおよび/または不揮発性長期メモリ)に書き込む。ステップ614の後、このサブルーチンはステップ600に戻る。
録画速度が「通常」と等しくない場合(ステップ606)、このサブルーチンは、速度が「通常」より速いかどうかを判定する(ステップ610)。速い場合、ステップ612が初期化され、セグメント再生fpsを、その動画セクションの速度による録画fpsの倍数と等しくなるように設定する(Segment FPS=Record_FPS*Speed)。その後、このサブルーチンはステップ614に進み、フレームをバッファ(RAMメモリおよび/または不揮発性長期メモリ)に書き込む。ステップ614の後、このサブルーチンはステップ600に戻る。
このセグメント時間圧縮および伸長サブルーチンは、ステップ600で入力ストリームが開いていないと判定されるまで、ステップ600~614を含むループされたサブプロセスを含むことが理解できる。
図23を参照して、可変再生速度再生サブルーチンの例が示されており、これは、動画再生中に再生フレームレートを高速化または低速化することによって、スローモーションおよびファストモーション特殊効果を有する動画ファイルを再生するためのフローチャートアルゴリズムを提供する。図23のアルゴリズムを使用するアプリケーションは、図20および図21のアルゴリズムによって作成された動画を再生するために必要である。このアプリケーションは、メタデータおよび/または付随する「動画プロジェクトファイル」における情報をデコードし、動画の再生中に再生フレームレートに速度の高速化および低速化コマンドを適用できる必要がある。動画プロジェクトには、動画ファイルに加えて、実行される特殊効果コマンドを含む付随ファイルが含まれており、カスタムプレーヤーはリアルタイム再生でデコードして適用できる。
互換性のないプレーヤで動画が再生される場合、メタデータの高速化および低速化の特殊効果コマンドは無視され、動画は同じ速度で連続的に再生される。
このサブルーチンは、低速化サブルーチンからのコマンドによる開始に応じて開始する(ステップ622)。開始後、このサブルーチンは、入力として、装置のメモリに存在する動画プロジェクトファイルから未処理の動画データストリームを取得する(ステップ624)。未処理の動画データストリームは、ステップ626のように、電子装置からの動画プロジェクトファイル内の音声/動画ストリーム、またはリモート動画プロジェクトファイルであってもよい。
未処理の動画データストリームの取得後、このサブルーチンのステップ628が開始され、動画のメタデータ、録画FPS、再生FPS、および可変再生ログを取得する。その後、ステップ630は、図20から、時間特殊効果がセクションに適用された動画の各セクション毎の再生速度(Speed)を抽出する。
このサブルーチンのステップ632が開始され、カメラからの動画データ入力ストリームが開いているかどうかを判定する。ステップ632で、入力ストリームが開いていないと判定された場合、このサブルーチンはステップ648に進む。ステップ648は、RAMメモリおよび/または不揮発性長期メモリから動画/音声フレームのデータを受信することができる(ステップ950)。ステップ648が完了した後、このサブルーチンは停止または終了する(ステップ652)。
ステップ632から入力ストリームが開いている間、このサブルーチンは速度が「通常」より遅いかどうかを判定する(ステップ634)。遅い場合、ステップ636が初期化され、セグメント再生fpsを、録画fpsをその動画セクションの速度で割ったものに等しくなるように設定する(Segment FPS=Record_FPS/Speed)。その後、このサブルーチンはステップ646に進み、フレームをバッファ(RAMメモリおよび/または不揮発性長期メモリ)に書き込む。次に、サブルーチンはステップ647に進み、RAMバターからの音声/ビデオフィードを表示し、その後、ステップ632に進む。
速度が「通常」より遅くない場合(ステップ634)、このサブルーチンは速度が「通常」と等しいかどうかを判定する(ステップ638)。等しい場合、ステップ340が初期化され、セグメント再生fpsをその動画セクションの録画fpsと等しくなるように設定する(Segment FPS=Record_FPS)。その後、このサブルーチンはステップ646に進み、フレームをバッファ(RAMメモリおよび/または不揮発性長期メモリ)に書き込む。ステップ646の後、このサブルーチンはステップ632に戻る。
録画速度が「通常」に等しくない場合(ステップ638)、このサブルーチンは速度が「通常」より速いかどうかを判定する(ステップ642)。速い場合、ステップ644が初期化され、セグメント再生fpsを、その動画セクションの速度による録画fpsの倍数と等しくなるように設定する(Segment FPS=Record_FPS*Speed)。その後、このサブルーチンはステップ646に進み、フレームをバッファ(RAMメモリおよび/または不揮発性長期メモリ)に書き込む。ステップ646の後、このサブルーチンはステップ647に進み、RAMバッファからの音声/動画(A/V)フィードを表示し、その後、ステップ632に戻る。
このセグメント時間圧縮および伸長サブルーチンは、ステップ632で入力ストリームが開いていないと判定されるまで、ステップ632~647を含むループされたサブプロセスを含むことが理解できる。
本技術を使用する可能な使用方法を図24に示す。ユーザは、本技術のユーザインターフェースを利用して、アプリを実行することができるデバイス上でアプリケーションソフトウェア(App)を起動することができる。アプリは、画像構成画面で開くことができる。これはデフォルト設定であることができる。お気に入り設定または所定の設定は、ユーザが任意に選択することができる。装置設定が適用され、装置は準備完了状態になるが、任意で画像構成画面のままになる。
ユーザは、装置のカメラ、リモートカメラ、またはリモート動画ストリームを利用して、Appまたはユーザインターフェースに関連する「録画」アイコンにタッチするか、またはそれを起動することによって、録画を開始することができる。任意で、ユーザは録画アイコンまたはボタンをタッチし続けて、録画を続けることができる。1つの態様は、アイコンまたはアイコンに関連付けられたボタンをアニメーション化して、ライブ録画がアクティブであることを示すことができる。
録画中に、ユーザは、ズームインまたはズームアウトの特殊効果コマンドを入力することができる。装置によって表示されている動画は、その動画に関連するズームインまたはズームアウトの特殊効果をリアルタイムで表示するように構成される、または構成することができる。
録画中に、ユーザはスローモーションおよび/またはファストモーションを作成するために、特殊効果コマンドを入力することができる。1つの態様は、装置上のライブ動画の表示速度に違いが出ない。
ユーザは、録画アイコンまたはボタンのタッチを離すか、外すことにより、録画を終了することができる。その後、アプリは録画を停止し、「レビュー」画面を表示し、特殊効果の処理を完了し、処理された動画を保存または自動保存するオプションを提供する。
保存後、処理が完了した後、新たに作成された動画は、装置またはリモート装置によって見ることができる。動画は連続して再生することができ、終了後に再開することができる。このアプリは、未処理または処理された動画をさらに編集または修正するために利用できる一連の編集ツールを提供することができる。任意で、スローモーションやファストモーション、その他のカスタムデザイン要素を微調整して動画を編集し、動画を投稿することができる。この処理は、所望の動画結果が得られるまで繰り返すことができる。
このアプリは、動画内の新たな要素の処理を完了し、各編集の完了後にユーザに再生される。この処理は、所望の動画結果が得られるまで繰り返すことができる。
動画の処理および/または動画の追加編集が完了すると、アプリは、最終的な動画を保存または編集することができる。アプリは、最終的な動画を装置の内部メモリ、外部メモリ、および/またはクラウドに保存することができる。
このアプリは、ユーザが最終動画をソーシャルメディアプラットフォームに投稿することを可能にするオプションをさらに提供することができる。アプリは、最終的な動画を追加のプラットフォームやクラウドにアップロードし、ユーザが新しい動画の録画を開始できるように構成画面を表示することができる。
図25を参照して、インターフェース30の少なくとも一部を説明する。インターフェース30は、装置に最適化されたパラメータまたは変数のための画面を提供することができるGUIインターフェースであってもよいが、これに限定されない。GUI30は、画面上の任意の場所に設けられた録画開始/停止コントローラ32と、カメラ12からの未処理の動画データ内のフレームを操作するために使用されるデフォルトまたは所定のフレームレート速度を提供することができる、画面上の任意の場所に設けられた速度選択領域34とを含むように構成される、または構成することができる。速度選択領域34は、ユーザによる制御を介して速度選択領域34に沿って移動して、現在の速度または選択可能な速度を示すことができる速度制御インジケータ35を含むことができる。GUIインターフェース30はまた、ズーム36、ズームおよびファストモーション速度レート38、および/またはズームおよびスローモーション速度レート40を制御するための画面上の任意の領域を含むことができる。
いくつかの実施形態では、ユーザは、開始/停止コントローラ32をタッチ、および/または長押しして、カメラの録画機能を開始、停止、または一時停止することができる。さらに、ユーザは、指またはスタイラスのような装置で領域に触れ、領域に沿って任意の方向にスライドすることによって、速度選択領域34とやりとりすることができる。処理ユニットは、このスライド動作を特殊効果入力コマンドとして解釈するように構成される、または構成することができる。例えば、速度選択領域34の中心エリアから右側にスライドすると、スライド動作が速度選択領域34上をどれだけ右側に移動するかによって、速度レートをネイティブ速度レートからネイティブ速度レートの2倍、3倍、4倍、「n」倍に変更することができる。速度選択領域34の中心エリアから左側にスライドすると、スライド動作が速度選択領域34上をどれだけ左側に移動するかによって、ネイティブ速度レートからネイティブ速度レートの-2倍、-3倍、-4倍、-「n」倍に変更することができる。
いくつかの実施形態では、ユーザがGUIの下側領域から上側領域に向かって上下にスライド動作をすることによって、カメラズーム機能を制御することができる。ユーザはさらに、ズームとファストモーションまたはスローモーション効果が必要かどうかに応じて、GUIの下側領域から右上または左上領域に向かってカーブする上下方向のスライド動作を行うことによって、ズームと速度レートとの組み合わせを制御することができる。
あるいは、GUIインターフェース30は、カメラおよび/またはディスプレイの機能、属性、動作、設定、および/または特性を制御することができる領域、アイコン、またはウィンドウを含むように構成される、または構成することができる。これらの機能、属性、動作、設定、および/または特性の例としては、フラッシュ、ハンズフリー、タイマ、ミュート、セルフィー、ブロードキャスト、共有、フィルタ、メディア、録画の停止/開始などであるが、これらに限定されない。GUIインターフェース30は、未処理の動画の速度レートの最小値、最大値、または範囲をプリセットするために使用されるように構成される、または構成することができる。
さらに、任意で、GUIインターフェース30は、動画データストリームに編集オプションを提供する領域、アイコンまたはウィンドウを含むように構成される、または構成することができる。編集オプションは、テキストの追加、図面の追加、サウンドの追加、フェイスフィルタ、装飾の追加、ビデオループの作成、カバーの追加などを含むことができるが、これらに限定されない。
GUIインターフェース30は、未処理の動画データおよび/または修正された動画データであることができる出力動画録画データの表示を含むように構成または構成することができ、または編集された動画データストリームを表示することができる。GUIインターフェース30によって表示される出力動画録画データは、入力の変化によってリアルタイムで動的に変化できることが理解できる。したがって、本技術は、カメラが動画を取得している間、および録画中に、未処理の動画データ、任意の数の修正された動画データまたはそのサブセット間のシームレスな遷移をリアルタイムで表示することができる。修正された動画データは、任意の数の高速から低速のモーションサブセットを含むことができ、これらのサブセットは、未処理の動画データのサブセットと組み合わせることができる。未処理の動画データおよび/または任意の数の修正された動画データの表示は、カメラが未処理の動画データに関連する画像を撮影しているときに、ライブまたはリアルタイムで達成される。本技術は、カメラが画像を撮影し、出力動画がメモリに書き込まれている間に、表示された出力動画データをレンダリングすることができることが理解できる。その結果、ユーザはカメラを動かしたり、パンしたり、ズームしたりしながら動画を撮影することができ、同時に、未処理の動画データに任意の数の特殊効果を適用して表示することができる。
いくつかの実施形態では、本技術およびGUI30を実装する装置のユーザは、ユーザーカウントに関連付けられたログイン認証情報を入力することによって、本技術および/または装置および/またはカメラおよび/または保存された動画の操作機能にアクセスすることができる。
図26は、タッチスクリーン上に本技術のGUIの実装を表示する電子装置上で利用される本技術のGUI30の実施形態を示す。図26は、GUI30を採用した装置で、通常の「1倍」速度で録画している間の例示的な「カメラビュー」である。この通常速度設定では、カメラからの未処理の動画ストリームは変更されず、GUI30にリアルタイムで表示される。
いくつかの実施形態では、スクリーンショットは、ユーザが選択することができるさまざまな機能またはアフォーダンスを表すいくつかのアイコンを含む。これらのアフォーダンスは、ユーザがアフォーダンス毎に異なる「状態」設定を選択すると、アイコンを変更する。これらのアフォーダンスは、以下に限定されるわけではないが、「フラッシュ」アフォーダンス700、「ハンズフリー」アフォーダンス702、「タイマ」アフォーダンス704、「ミュート」アフォーダンス706、「セルフィー」または「リヤ」アフォーダンス708、「設定」アフォーダンス710、「ライブに移行」アフォーダンス712、「友人」アフォーダンス714、「メディア」アフォーダンス716、「フェイスフィルタ」アフォーダンス718、「シーンフィルタ」アフォーダンス720、および/または「アップグレード」アフォーダンス722であることができる。「フラッシュ」アフォーダンス700は、(例えば、タップジェスチャを介して)起動されると、装置のユーザが、本技術を実装する装置によって検出された、または装置に入力された光量に応じて、装置のフラッシュやライトのオン、オフ、または自動的に起動することを選択できるようにする。「ハンズフリー」アフォーダンス702は、(例えば、タップジェスチャを介して)起動されると、装置のユーザが、装置上のジェスチャ、リモートコントローラ、音声認識、および/または予めプログラムされたシーケンスやスキームを利用して、本技術の態様を制御することを可能にし、その結果、ユーザは装置に常に触れることなく連続して録画を開始することができるようにする(「ハンズオン」モードとは、録画を続けるために、ユーザが録画ボタンに触れ続ける必要があることを意味する。ユーザが録画ボタンを放すと、録画が停止する。)、「タイマ」アフォーダンス704は、(例えば、タップジェスチャを介して)起動されると、装置のユーザが、1日の所定の時間、および/または所定の期間、録画を開始および/または停止することを可能にする。「ミュート」アフォーダンス706は、(例えば、タップジェスチャを介して)起動されると、装置のユーザが、装置および/またはカメラに関連付けられたマイクをミュートまたは無効にすることを可能にする。「セルフィー」または「リヤ」アフォーダンス708は、(例えば、タップジェスチャを介して)起動されると、装置のユーザが、本技術を実装する装置に関連付けられた後方カメラまたは二次カメラに切り替えることを可能にする。「設定」アフォーダンス710は、(例えば、タップジェスチャを介して)起動されると、装置のユーザが、GUI、装置、および/またはカメラの動作設定を制御することを可能にする。「ライブに移行」アフォーダンス712は、(例えば、タップジェスチャを介して)起動されると、装置のユーザが、本技術からのビデオフィードをリモート装置またはサーバに送信することを可能にする。「友人」アフォーダンス714は、(例えば、タップジェスチャを介して)起動されると、装置のユーザが、友人または連絡先を検索および/または招待してソーシャル接続を確立することを可能にする。「メディア」アフォーダンス716は、(例えば、タップジェスチャを介して)起動されると、装置のユーザが、装置のメモリまたはリモート装置またはクラウドストレージに作成されたフォルダから動画を開いてロードすることができるメディアフォルダを開く。「フェイスフィルタ」アフォーダンス718は、(例えば、タップジェスチャを介して)起動されると、装置のユーザが、「拡張現実」(AR)機能を用いたフィルタリングを動画に適用するサブプロセスまたはサードパーティアプリケーションを開始することを可能にする。「シーンフィルタ」アフォーダンス720は、(例えば、タップジェスチャを介して)起動されると、装置のユーザが、動画にフィルタリング機能を適用するサブプロセスまたはサードパーティアプリケーションを開始することを可能にする。「アップグレード」アフォーダンス722は、(例えば、タップジェスチャを介して)起動されると、装置のユーザが、本技術の態様および/またはメモリストレージをアップグレードすることを可能にする。追加のアイコン、機能またはアフォーダンスをGUIと共にまたはGUI上に実装することができることを理解されたい。任意の数のアイコンまたはアフォーダンス700~722は、GUI30内の所定の位置またはカスタマイズ可能な位置に配置される、または配置することができる。
録画開始/停止コントローラ32は、ユーザが動画の録画を開始、停止、および/または一時停止することを(例えば、タップまたは長押しジェスチャを介して)可能にする画面上の任意の場所にボタンとして提供することができ、スライドバー34であることができる速度選択領域は、再生中の動画の一部の選択可能な再生速度を示す円および/または他の形状およびマーカを有するスライドバーとして、画面上の任意の場所に提供することができる。スライドバー34は、(例えば、スライドジェスチャを介して)ユーザが動画の特殊効果の態様を制御することを可能にする。図26の現在の速度インジケータは、録音速度が「通常」であることを示す「1倍」に設定されている。この速度倍率は、図7に示す処理のステップ82に入力される。この例では、ユーザが特殊効果コマンド(速度倍率「1倍」または「通常」)を入力していないので、処理は、前のステップの一部に依存して、ステップ88に進む。
ユーザが追加の操作機能700~722のいずれかを起動した場合、これらの入力はステップ88によって判定され、適切なまたは対応する並列処理がステップ78で開始される。録音ボタン32、速度選択ボタン35、速度選択領域34、ズームレベルインジケータ/コントローラ748、および任意のアイコンは、ユーザ装置のタッチスクリーンを利用して起動することができる。
図26では、GUI30の第1の領域に表示されるビデオフィードは、それぞれのカメラからの未処理の動画フィードまたはリモートビデオフィードである。任意の開始された操作機能700~722からの任意の編集または修正された動画ストリームは、GUI30の1つまたは複数の追加領域に表示することができる。GUI30内のこれらの表示領域は、別個の独立した領域であってもよく、部分的に重なっていてもよく、または重なっていてもよい。いくつかの実施形態では、いずれかの領域に表示されるビデオフィードは、以前に録画された動画映像であってもよい。他の実施形態では、GUI30の任意の領域に表示される動画は、例えば、表示されたビデオフィードに関連するイベントタイムライン上の任意の位置とすることができる。タイムラインは、タイムラインバーをスライドさせることによってユーザが操作することができ、これにより、本技術は、任意の領域において、その時点から先のビデオフィードを表示する。
さらに、未処理の動画ストリームおよび/または編集動画ストリームは、GUI30を用いてユーザが指示した適切なメモリに保存することができる。ユーザがGUI30を用いて選択したメモリまたは記憶装置は、図8の書き込み動画ストリームサブルーチンに入力され、動画ストリームが適切に書き込まれるかまたはコピーされる。
図27は、スローモーション「-2倍」の速度で録画しているときの、本技術のGUI30を採用した電子装置の「カメラビュー」の一実施形態を示している。このスローモーションの速度設定では、フレーム追加サブルーチンが利用され、見かけ上の再生速度は通常の動画の2倍である。「ハンズフリー」モードの例では、ユーザは、速度選択領域34上に位置する所望の速度マーカをタップするか、所望の速度マーカにインジケータをスライドさせることができる。「ハンズオン」モードでは、ユーザが、「録画」ボタン32を押したまま、指を左にスライドさせると、ボタンはユーザーの指の真下に移動し、その結果、この例では、ボタンが「-2倍」アフォーダンスラベル上の垂直上に位置するようになる。速度マーカ35は、「録画」ボタン32の動きに合わせて、速度選択領域34に沿って自動的に移動することができることを理解されたい。
いくつかの実施形態では、GUI30の大部分がスローモーション動画ストリームを表示している間に、未処理の動画ストリームを表示するウィンドウ724をGUI30に実装することができる或いは、GUI30の大部分が未処理の動画ストリームを表示している間に、ウィンドウ724はスローモーション動画ストリームを表示することができることが理解できる。さらに或いは、GUI30の大部分が未処理の動画ストリームを表示している間に、ウィンドウ724がスローモーション動画ストリームまたは動画ストリームの静止フレーム「カバー」画像を表示することができることが理解できる。
図27における現在の速度インジケータは、録画速度がスローモーションであることを示す「-2倍」に設定されている。この速度倍率は、図7に示す処理のステップ82に入力される。この例では、ユーザが、特殊効果コマンド(速度倍率「-2倍」または「スローモーション」)を入力すると、処理はステップ84に進み、そこで、処理は、図9の特殊効果サブルーチンを開始する。
ユーザが、追加の操作機能700~722のいずれかを起動した場合、これらの入力が判定され、ステップ78で適切なまたは対応する並列処理が開始される。
GUI30を使用して速度倍率を「-2倍」に設定した状態で、GUI30からの入力がファストモーションコマンドを表すか(図9のステップ156)、またはスローモーションコマンドを表すか(図9のステップ160)、または高度なスローモーションサブルーチンコマンドに進むか(図9のステップ150)を判定する特殊効果適用サブルーチンが開始される。そして、この処理は、スライドバー34上のユーザによる入力に対応する適切なサブルーチンを開始する。この例では、図13に示すフレーム追加サブルーチンが開始される。
開始されたサブルーチン毎に未処理の動画ストリームが修正されると、GUI30は、装置のディスプレイを介して、結果として得られるスローモーション動画をリアルタイムで表示する。未処理の動画ストリームは結果として得られるスローモーション動画と共に、GUI30を介して表示することもできる。さらに、結果として得られるスローモーション動画および/または未処理の動画ストリームは、GUI30を使用してユーザが示す適切なメモリに保存することができる。ユーザがGUI30を用いて選択したメモリまたは記憶装置は、図8の書き込み動画ストリームサブルーチンに入力され、動画ストリームが適切に書き込まれるか、またはコピーされる。
図28は、ファストモーション「3倍」の速度で録画しているときの、本技術のGUI30を採用した装置の、「カメラビュー」の一実施形態を示している。このファストモーションの速度設定では、フレームドロップサブルーチンまたは時間圧縮サブルーチンが利用され、見かけ上の再生速度は、フレームドロップなしの通常の動画の3倍の速度である。この例では、ユーザが、速度選択領域34上に配置された所望の速度マーカをタップするか、または所望の速度マーカにインジケータをスライドさせることができる「ハンズフリー」モードを利用することができる。「ハンドオン」モードでは、ユーザが、連続的に録画するために、録画ボタン32を押したままにしながら、指を左右にスライドさせて所望の速度を示すと、それに応じて速度選択領域34上にある速度マーカ35が移動する。
いくつかの実施形態では、ユーザが「ワンタッチ」モードを利用して、動画の時間を操作することができる。このモードでは、画面に触れることによって録画動作を開始することができ、画面から指を離すと、録画動作が停止する。あるいは、画面をタッチしている間、録画動作が行われる。例示的な操作としては、動画の時間を遅くする、タッチしている指の画面の中央よりも左への移動、動画の時間を通常の速度に戻す、タッチしている指の画面の中央への移動、動画の時間を速くする、タッチしている指の画面の中央よりも左右への移動、タッチしている指の左端から右端まで(またはその逆)の素早い移動、ズームイン(望遠)操作を開始する、タッチしている指の上への移動、ズームアウト(広角)操作を開始する、タッチしている指の下への移動、および録画中、画面上に指を置いたまま、もう一方の指で、限定されるわけではないが、フラッシュ700、ミュート706などの他の設定をライブで個別に調整すること、が含まれる。
さらに、いくつかの実施形態は、録画されている動画がユーザインターフェースに示されている間、ユーザが、ユーザインターフェースを介して機能を個別に選択することを可能にする「マルチプルタッチ」モードを含むことができる。
いくつかの実施形態では、GUI30の大部分がファストモーション動画ストリームを表示している間、未処理の動画ストリームを表示するウィンドウ724をGUI30に実装することができる。或いは、GUI30の大部分が未処理の動画ストリームを表示している間、ウィンドウ724はファストモーション動画ストリームを表示することができることが理解できる。さらに或いは、GUI30の大部分が未処理の動画ストリームを表示している間、ウィンドウ724はファストモーション動画ストリームを表示することができることが理解できる。さらに或いは、GUI30の大部分が未処理の動画ストリームを表示してる間、ウィンドウ724はファストモーション動画ストリームのための静止フレーム「カバー画像」を表示することができることが理解できる。
図28における、現在の速度インジケータは、録画速度がファストモーションであることを示す「3倍」に設定されている。この速度倍率は、図7に示す処理のステップ82に入力される。この例では、ユーザが特殊効果コマンド(速度倍率「3倍」または「ファストモーション」)を入力すると、処理がステップ84に進み、処理は、図9の特殊効果サブルーチンを開始する。
ユーザが追加の操作機能700~722のいずれかを起動した場合、これらの入力が判定され、ステップ78で適切なまたは対応する並列処理が開始される。
GUI30を使用して速度倍率を「3倍」に設定した状態で、特殊効果適用サブルーチンが開始され、録画FPS=再生fpsであるかどうか、およびGUI30からの入力がファストモーションコマンドを表すか(図9のステップ156)またはスローモーションコマンドを表すか(図9のステップ160)どうかが判定される。そして、この処理は、スライドバー34上のユーザによる入力に対応する適切なサブルーチンを開始する。この例では、図10に示す高速化サブルーチンが開始される。録画fps>再生fpsであり、GUI30からの入力がファストモーションコマンドまたはスローモーションコマンドを表す場合、処理は次に、スライドバー34上のユーザによる入力に対応する適切なサブルーチンを開始する。この場合、図12のステップ262に示される高速化サブルーチンは、図20に示されるサブルーチンを開始する。
開始されたサブルーチン毎に未処理の動画ストリームが修正されると、GUI30は、装置のディスプレイを介して、結果として得られるファストモーション動画をリアルタイムで表示する。未処理の動画ストリームは結果として得られるスローモーション動画と共に、GUI30を介して表示することもできる。さらに、結果として得られるファストモーション動画および/または未処理の動画ストリームは、GUI30を使用してユーザが指示した適切なメモリに保存することができる。GUI30を用いてユーザが選択したメモリまたは記憶装置は、図8の書き込み動画ストリームサブルーチンに入力され、動画ストリームが適切に書き込まれるかまたはコピーされる。
図29は、ユーザが録画を停止し、システムが、ユーザが撮影した動画をレビューおよび編集するためのレビュー画面を表示しているときの、本技術のGUI30を採用した装置の例示的な実施形態の「スクリーンショット」を示している。GUIは、背景画像の例を削除することで、アイコンを強調表示することができる。
いくつかの実施形態において、レビュー画面は、ユーザが選択できるさまざまな機能またはアフォーダンスを表す多数のアイコンを含むことができる。これらのアイコン、機能、またはアフォーダンスは、「ディスプレイカバー」アフォーダンス726、「テキスト」アフォーダンス728、「描画」アフォーダンス730、「サウンド」アフォーダンス732、「フェイスフィルタ」アフォーダンス718、「デコ」アフォーダンス734、「ループ」アフォーダンス736、「カバー」アフォーダンス738、「タグ」アフォーダンス739、「メディア」アフォーダンス716、「ノート」アフォーダンス740、「プロジェクト」アフォーダンス、「チャット」アフォーダンス742、「フィード」アフォーダンス744、および/または「ストーリー」アフォーダンス746であることができるが、これらに限定されない。「ディスプレイカバー」アフォーダンス726は、動画の静止画「カバー画像」を表示する。「テキスト」アフォーダンス728は、(例えば、タップジェスチャを介して)起動されると、装置のユーザが動画にテキストを追加することを可能にする。「描画」アフォーダンス730は、(例えば、タップジェスチャを介して)起動されると、装置のユーザが動画に画像やクリップアートを追加したり、絵を描いたりすることを可能にする。「サウンド」アフォーダンス732は、(例えば、タップジェスチャを介して)起動されると、装置のユーザが動画に音や音楽を追加することを可能にする。「デコ」アフォーダンス734は、(例えば、タップジェスチャを介して)起動されると、装置のユーザが動画にステッカーや絵文字などのデコレーションを追加することを可能にする。「ループ」アフォーダンス736は、(例えば、タップジェスチャを介して)起動されると、装置のユーザが動画の選択されたセグメントのループシーケンスを作成することを可能にする。「カバー」アフォーダンス738は、(例えば、タップジェスチャを介して)起動されると、装置のユーザが、動画のフレームまたはセグメントを動画のカバーページとして使用することを可能にする。「タグ」アフォーダンス739は、(例えば、タップジェスチャを介して)起動されると、装置のユーザが、動画に登場する他のユーザを識別してタグ付けしたり、検索エンジン最適化のために“ハッシュタグ”を追加することを可能にする。「メディア」アフォーダンス716は、(例えば、タップジェスチャを介して)起動されると、装置のユーザが動画を装置上またはクラウド上のフォルダに保存することを可能にする。「ノート」アフォーダンス740は、(例えば、タップジェスチャを介して)起動されると、装置のユーザが、装置関連付けられた“メモ”フォルダまたはアプリケーションに動画を保存することを可能にする。「プロジェクト」アフォーダンスは、(例えば、“ノート”アフォーダンス上の長押し“タッチ及びホールド”ジェスチャを介して)起動されると、装置のユーザが、他のユーザとのコラボレーションのために、装置に関連付けられた“プロジェクト”フォルダまたはアプリケーションに動画を保存することを可能にする。「チャット」アフォーダンス742は、(例えば、タップジェスチャを介して)起動されると、装置のユーザが、動画を連絡先や友人に送信することを可能にする。「フィード」アフォーダンス744は、(例えば、タップジェスチャを介して)起動されると、装置のユーザが、アプリのソーシャルメディア面で、ユーザのチャンネルのタイムラインに動画を投稿することを可能にし、ユーザのWebフィードまたはRSSフィードに投稿するように構成することもできる。「ストーリー」アフォーダンス746は、(例えば、タップジェスチャを介して)起動されると、装置のユーザが、アプリ内のストーリーやソーシャルメディアページに動画を投稿したり、インスタグラム(登録商標)、フェイスブック(登録商標)、ツイッター(登録商標)などの外部の他のソーシャルメディアアプリに共有することを可能にする。いくつかの実施形態では、「ノート」アフォーダンス740が押されると、アイコンまたは「プロジェクト」フォルダのリストが表示され、それぞれが、ユーザが動画を投稿することができる利用可能なプロジェクトを表す。
例えば、ユーザは動画にデコレーションを追加したり、ソーシャルメディアにアップロードするための他のプロパティをクラウドに設定することができる。ユーザは、動画を、ユーザの「メディア」フォルダに保存するか、ユーザの「ノート」の場所に保存するか、ユーザの「プロジェクト」の場所に保存するか、「チャット」の連絡先またはグループに動画を送信するか、「フィード」に投稿するか、または「ストーリー」に投稿するかを選択することができる。このシステムは、本技術に関連するサブルーチンおよび/またはサブプロセスの何れかを利用してストーリーを保存し、適切なアクションを実行する。
図30は、図29の例示的な実施形態「スクリーンショット」を示しており、ユーザが録画を停止し、システムはユーザが撮影された動画をレビューするためのレビュー画面を表示している。複数のウィンドウ724を利用することができ、それぞれが、異なる編集された動画ストリームまたは静止フレームカバー画像を表示することが理解できる。
図31は、録画開始前にシステムが構成画面を表示しているときの、本技術のGUI30を採用した装置の一実施形態の「スクリーンショット」を示している。速度範囲は、通常速度の「-3倍」から「3倍」まで表示することができるが、追加の速度および範囲を利用して表示することもできる。
いくつかの実施形態では、構成画面は、カメラのズーム機能を(例えば、スライドおよび/またはタップジェスチャまたはピンチ-ズームを介して)制御することができるズーム設定領域748を含むことができる。ズーム設定領域748は、ユーザがインジケータにタッチし所望のズーム操作にスライドさせることによって移動可能なインジケータを有するズームスライドバーとすることができる。例えば、ズームスライドバー748は、GUI30の左側または右側に配置された垂直方向のスライドバーとすることができる。例示的なスライドバーの代わりに、任意のジェスチャインターフェースを利用することができることを理解されたい。ユーザがズームスライドバー748上で指を上から下にスライドさせて戻すと、図のように「ズーム倍率」はそれに応じてズームインおよびズームアウトを適宜調整する。別の例では「ピンチ-トゥ-ズーム」を利用すると、ユーザはマルチタッチジェスチャを使用してすばやくズームインおよびズームアウトし、「ズーム倍率」はそれに応じて上下に調整する。
録画ボタン32は、「時間速度」サイドバー34がその下に位置する状態で、GUIの下部中央部に配置することができる。GUI30は、録画ボタン32、速度スライドバー34、およびここに示されるアイコンのいずれかの特定の位置に限定されないことが理解される。録画ボタン32、速度スライドバー34、およびアイコンのいずれかは、GUI内のどこにでも配置することができ、ユーザによって再構成、サイズ変更、および/または移動することもできる。例えば、ユーザは、任意のアフォーダンスに長押しジェスチャを提供することができ、これにより、ユーザは、選択されたアフォーダンスを移動またはサイズ変更することができる。
図31において、ユーザは「1倍」速度マーカをタップするか、または表示された速度マーカを「1倍」速度マーカにスライドさせており、これは特殊効果を伴わずに未処理の動画が通常の速度で表示されていることを意味する。インジケータ「1倍」という表示は、「通常」など他の速度インジケータに置き換えることができるがこれに限定されないことを理解されたい。
ユーザは、録画開始前に、録画ボタン32の位置を選択的に設定し、録画が開始されると、装置のズーム748および速度倍率34を設定することができる。ユーザが移動可能な録画ボタンを動かすと、それに応じてズームおよび速度倍率が動く。ユーザが速度スライドバー34上で指を左右にスライドさせると、図示するように、それに応じて「時間速度」が速くまたは遅く調整される。
図32は、システムが録画開始時に録画画面を表示しているときの、本技術のGUI30を採用した装置の「スクリーンショット」の一実施形態を示している。この例では、ズーム倍率をゼロ「0」に設定し、速度倍率を通常速度の2倍速であるファストモーション「2倍」に設定している。
いくつかの実施形態では、録画動作がアクティブである間、本技術は、ユーザの指の下でも見えるように録画ボタン32を拡大することができる。録画が開始されたことおよび/または録画の継続時間を示すために、放射状のプログレッシブバーを録画ボタン32と共に利用することができる。録画ボタン32は、ユーザが見やすいように内側に色付けすることができ、録画ボタン32のサイズ、構成および/または色は、ユーザによって構成可能であることが理解できる。
代替的に、録画ボタン32は、選択された速度倍率に隣接する位置に(例えば、長押しジェスチャを介して)移動させることができる。この例では、「速度スケール」34においてハイライトされた「2倍」の上にある。録画ボタン32は、ユーザが画面に触れている限り、ユーザの指の動きに従うように構成することができる。
選択された録画FPS、再生FPSおよび/または速度倍率は、GUIの上部付近の中央にあるインジケータ「240I--I--」および「Fast 2倍」750によって示されるように、GUIに表示することができる。FPSおよび/または速度倍率のインジケータは、FPSおよび/または録画速度をユーザに警告するために、アニメーション化されるか、または目立つように点滅させることができる。別の実施形態では、インジケータ750が動画セグメントの最大時間長である。
いくつかの実施形態では、GUI30が、、破線で垂直に表示されて利用される「速度ガイドライン」752を含むこともできる。ガイドライン752は、ユーザの指またはポインティングデバイスをガイドして、ユーザのタッチポイントが速度変更の境界に近づいたり、境界を越えたりするタイミングを示すように構成される、または構成することができる。
ユーザが所望の速度倍率までスライドまたはタップすると、本技術のアプリケーションプログラムは、適切なサブルーチンおよび/または必要なアルゴリズムを開始して、GUIによって受信された選択された速度倍率に関連するファストモーションまたはスローモーション特殊効果を生成する。
図33は、システムが「スローモーション解像度」設定画面を表示している間の、本技術のGUI30を採用する装置の例示的な実施形態「スクリーンショット」を示す。この例では、スローモーション解像度は、フレームを追加することなく、ハードウェアによってサポートされるスローモーション倍率である。
いくつかの実施形態では、GUI30が複数の速度倍率値のスクロール可能な選択754を含むことができる。スクロール可能な選択754における選択可能な速度倍率値は(例えば、スライドジェスチャを介して)、装置がサポートする最大動画品質に対する設定である。選択された速度倍率は、どの速度倍率が選択されたかを示すために強調表示することができる。
図34は、システムが代替の高度な「スローモーション解像度」設定画面を表示している間の、本技術のGUI30を採用する装置の例示的な実施形態「スクリーンショット」を示す。この例では、GUI30が複数のスライドバーを表示し、利用することができ、各々は(例えば、スライドジェスチャを介して)さまざまな態様または操作を制御する。あるスライドの値が調整されると、他のスライドの対応する値がそれに応じて変更される。
いくつかの実施態様において、スライドバーは、水平に重ねることができ、または垂直に間隔をあけて配置することもできる。スライドバーは、「動画解像度」アフォーダンス756に関連付けることができ、これは、(例えば、スライドジェスチャを介して)起動されると、ユーザが結果として得られる動画の解像度サイズを設定することを可能にする。解像度が高いほどファイルは大きくなり、ファイルを提供するために必要な帯域幅も大きくなる。所望の解像度に応じた料金をユーザに請求することによって収益を得ることができる。動画の解像度が高いほど、ホスティング及び帯域幅のコストに対してより高いレートを請求することができる。
別のスライドバーは、「最大スローモーション(Max Slow Motion)」アフォーダンス758に関連付けることができ、これは、(例えば、スライドジェスチャを介して)起動されると、ユーザが最大値スローモーション速度倍率を設定することを可能にする。動画解像度が増加するにつれて、最大スローモーション効果(Max SlowMo)は減少し、1秒あたりの録画フレーム数(録画FPS)は比例して減少する。1秒あたりの再生フレーム数(再生FPS)は独立した変数であり、変更されない。
別のスライドバーは、「1秒あたりの録画フレーム数」アフォーダンス760に関連付けることができ、これは、(例えば、スライドジェスチャを介して)起動されると、ユーザが録画FPSを設定することを可能にする。録画FPSは、カメラによってフレームが撮影されるレートである。フレームレートが高いほど、一定の再生FPSに対するスローモーション効果は高くなる。録画FPSが増加するにつれて、最大スローモーション効果は増加し、動画解像度は相対的に減少する。
録画FPSが減少するにつれて、最大スローモーション効果は減少し、動画解像度は相対的に増加する。ユーザが録画FPS758を上下に調整すると、それに応じて最大スローモーション効果および動画解像度の値が自動的に調整される。1秒あたりの再生フレーム数(再生FPS)は変更されない。ユーザは、動画解像度および最大スローモーション効果を手動で上書きおよび調整して、ソフトウェアによって選択された最大値を下げることができる。
さらに別のスライドを「1秒あたりの再生フレーム数」アフォーダンス762に関連付けることができ、これは、(例えば、スライドジェスチャを介して)起動されると、ユーザが再生FPSを設定することを可能にする。再生FPSは、装置によって再生されるフレームのレートである。再生FPSが高ければ高いほど、一定の録画FPSに対するスローモーション効果は低くなる。
再生FPSは、1秒あたりの録画フレーム数や動画解像度のいずれにも影響を及ぼすことなく、独立して設定することができる。
再生FPSが増加するにつれて、最大スローモーション効果は相対的に減少する。
再生FPSが減少するにつれて、最大スローモーション効果は相対的に増加する。
ユーザが再生FPS762を上下に調整すると、それに応じて最大スローモーション効果の値が自動的に調整される。録画FPSおよび動画解像度は変更されない。
動画解像度が減少するにつれて、最大スローモーション効果は増加し、録画FPSは比例して増加する。1秒あたりの再生フレーム数(再生FPS)は変更されない。
ユーザが動画解像度756を上下に調整すると、それに応じて最大スローモーション効果および録画FPSの値が自動的に調整される。再生FPSは変更されない。
ユーザは、オリジナルの映像を高解像度で作成し、帯域幅とストレージコストを節約するために低解像度の動画をアップロードすることを選択することができる。ユーザは、高解像度のオリジナル動画をローカル装置に保存したり、クラウドにアップロードして保存したりするオプションがある。アップロードが完了すると、高解像度の動画ファイルを適切なフォーマットにリサイズして、視聴デバイスに最適な速度とサイズにできる。
最大スローモーション効果(Max Slow Motion758)は、録画FPSと再生FPSの比率である。最大スローモーション効果は、指定された再生FPSで「リアルタイム」で再生したときに、既存のフレームのみを使用して、スローモーション効果を生成する。フレーム加算または他のデジタル補正、あるいは補間および外挿されたフレームは使用しない。
最大スローモーション効果は、ユーザが使用できるスローモーション効果の範囲の最大値である。ユーザは、最大スローモーション効果の値未満のより小さいスローモーション範囲を使用することを選択することができる。
最大スローモーション効果=録画FPS/再生FPS
ユーザは、再生FPS762を他のすべての変数とは無関係に設定することができる。この例では、再生FPSを一定に保つことで、特徴の機能を説明する。
最大スローモーション効果が増加するにつれて、録画FPSは増加し、動画解像度は相対的に減少する。
最大スローモーション効果が減少するにつれて、録画FPSは減少し、動画解像度は相対的に増加する。
ユーザがMax Slow Motion758を上下に調整すると、それに応じて、録画FPSおよび動画解像度の値が自動的に調整される。1秒あたりの再生フレーム数(再生FPS)は変更されない。
たとえば、録画fps=120、再生fps=30である。
最大値スローモーション効果=通常速度の4倍の遅さ。
GUI30はさらに、「最適化」アフォーダンス764を含むことができ、これは、(例えば、スライドジェスチャを介して)起動されると、ユーザがカメラおよび/または再生設定を最適化して、装置が配信することができる最良の動画品質を最大化することを可能にする。ユーザは、動画品質、ファイルサイズ、最大スローモーション効果、およびそれらの組み合わせを最適化するように選択することができる。
「最適化」764操作の値は、装置がサポートする最大動画画質及び最小サイズの設定とすることができる。これらは、ユーザが選択できる値の範囲の「限界」である。
本技術のサブルーチンの少なくとも一部を実装するGUI30の利用を理解しやすくするために、以下の例が提供される。以下では、装置がサポートする録画フレームレートを仮定している。
240fpsで8K
480fpsで4k
960fpsで2K
1920fpsで1080
UIは、選択された最適化ルーチンに基づいて、値のセットから値を自動的に選択する。オプションとして、選択された値は自動的に強調表示され、画面の垂直(左、中央、右)側に整列される。
実施例1
ユーザが次の値を設定する。
動画解像度=8K
再生FPS=30
品質最適化
UIが自動的に選択する。
最大スローモーション効果=8倍
録画FPS=240
実施例2
ユーザが次の値を設定する。
動画解像度=4K
再生FPS=30
品質最適化
UIが自動的に選択する。
最大スローモーション効果=選択可能な値のセット{16倍、32倍}から選択された16
録画FPS=480{240、480}
4Kで動画解像度を「固定」中:
ユーザが録画FPS=240を選択すると、最大スローモーション効果は自動的に32倍に設定される。
ユーザが録画FPS=480を選択すると、最大スローモーション効果は自動的に16倍に設定される。
ユーザが最大スローモーション効果=32倍を選択すると、録画FPSは自動的に240に設定される。
ユーザが最大スローモーション効果=16倍を選択すると、録画FPSは自動的に480に設定される。ユーザが、手動で上書きして録画FPSを240に設定すると、ファイルサイズを小さくすることができるが、フレーム解像度が50%低下する。
実施例3
ユーザが次の値を設定する。
動画解像度=4K
再生FPS=30
サイズ最適化
UIが自動的に選択する。
最大スローモーション効果=選択可能な値のセット{16倍、32倍}から選択された32
録画FPS=240{240、480}
4Kで動画解像度を「固定」中:
ユーザが録画FPS=480を選択すると、最大スローモーション効果は自動的に16倍に設定される。
ユーザが録画FPS=240を選択すると、最大スローモーション効果は自動的に32倍に設定される。
ユーザが最大スローモーション効果=16倍を選択すると、録画FPSは自動的に480に設定される。
ユーザが最大スローモーション効果=32倍を選択すると、録画FPSは自動的に240に設定される。ユーザが、手動で上書きして録画FPSを480に設定すると、フレーム解像度を増加させることができるが、圧縮前にファイルサイズが100%増加する。
実施例4
ユーザが次の値を設定する。
最大スローモーション効果=32倍
再生FPS=30
品質最適化
UIが自動的に選択する。
動画解像度=2K{480、720、1080、2k}
録画FPS=240{240、480、960}
実施例5
ユーザが次の値を設定する。
最大スローモーション=64倍
再生FPS=30
品質を最適化
UIが自動的に選択する。
動画解像度=1080{480、720、1080}
録画FPS=1920{240、480、960、1920}
実施例6:実施例5の続き
ユーザが次の値を設定する。
再生FPS=60
品質最適化
UIが自動的に選択する。
最大スローモーション効果=32倍
動画解像度=1080{480、720、1080}
録画FPS=1920{240、480、960、1920}
実施例7:実施例6の続き
ユーザが次の値を設定する。
再生FPS=120
品質最適化
UIが自動的に選択する。
最大スローモーション効果=16倍
動画解像度=1080{480、720、1080}
録画FPS=1920{240、480、960,1920}
実施例8:実施例7の続き
ユーザが次の値を設定する。
再生FPS=240
品質最適化
UIが自動的に選択する。
最大スローモーション効果=8倍
動画解像度=1080{480、720、1080}
録画FPS=1920{240、480、960、1920}
図35は、システムが、代替の「スローモーション解像度」設定画面を表示しているときの、本技術のGUI30を採用する装置の例示的な実施形態「スクリーンショット」を示している。この例では、GUI30は、図34に示す実施形態と同じ特徴をすべて有する。違いは、エンドユーザへのコントロールの表示である。すべての機能は、どちらの実施形態からもアクセス可能である。
いくつかの実施形態では、UIは、選択された最適化ルーチンに基づいて、値のセットから値を自動的に選択する。オプションで、選択された値は、自動的に強調表示され、画面の上部、中央、または下部の同じ行に整列される。
図35のこの例では、GUI30が、「動画解像度」、「最大スローモーション」、「録画FPS」および「再生FPS」アフォーダンスに関連する複数のスクロール可能セクションを表示し、利用することができる。各アフォーダンスは、スクロールを所望の値に移動させることによって(例えば、上下スライドジェスチャを介して)アクティブにすることができる。スライドバーは、水平に重ねることも、垂直に間隔を置くこともできる。スクロール可能なセクションでは、選択した値をそれぞれ強調表示できる。
図36は、システムが「スローモーションスケール」画面を表示している間の、本技術のGUI30を採用する装置の例示的な実施形態「スクリーンショット」を示す。いくつかの実施形態では、ユーザは、スローモーションスケール制御がどのようにアプリ上に表示されるか、およびユーザの入力(例えば、左右のスライドジェスチャ)に応じたプログラムの動作について、カスタム設定を設定することができる。
この例では、スライドバーまたは数直線766は、ユーザが利用できるスローモーション倍率レベルを表す。表示される範囲は「通常」から「7倍」までである。この場合は「7倍」という最後のスケール値のほかに「>」記号があり、追加のスローモーション倍率があるが、表示されていないことを示す。次いで、ユーザは、利用できるスローモーション倍率をスクロールし、録画中にスローモーション倍率の範囲をどれだけ制限するか、またはどれだけ制限しないかを選択することができる。
ユーザは、数直線をつまんで、ライブ録画画面に含めるスローモーションの範囲を広げることができる。
ユーザは、速度を制御するために、ボタンの向きを数直線766上で左右に移動するように設定することができる。例示的に示されるように、「通常」は左側にあり、「最大」は右側にある。次に、ユーザは、スローモーション倍率を増加させるために、録画コントロール上で指を左から右にスライドさせる。
「リバース」アフォーダンス768は、利用されて、GUI上に表示されることができ、(例えば、タップジェスチャを介して)起動されると、ユーザはスライドベア766の表示を反転することができる。ユーザが「リバース」オプションを選択した場合、「通常」が右側、「最大」が左側になる。ユーザの動作は、数直線766上で右から左にスライドすることで、スローモーション倍率を増加させる。
図37は、システムが、代替のスローモーションスケール画面を表示しているときの、本技術のGUI30を採用する装置の例示的な実施形態「スクリーンショット」を示している。この例では、GUI30は、図36に示す実施形態と同じ特徴をすべて有する。違いは、エンドユーザへのスライドバーまたは直線768の表示である。この例では、スライドバー768は、GUI30の左側または右側に沿って垂直な構成で方向づけられている。すべての機能は、両方の実施形態を通じてアクセス可能である。ユーザは、スローモーションスケール制御がどのようにアプリ上に表示されるか、およびユーザの入力に応じたプログラムの動作について、カスタム設定を設定できる。
いくつかの実施形態では、最後のスケール値、この場合は「11倍」より上に「∧」記号を表示して、利用可能であるが表示されていない追加のスローモーション倍率が存在することを表すことができる。ユーザは、利用可能なスローモーション倍率をスクロールし、録画中にスローモーション倍率の範囲をどれだけ制限するか、またはどれだけ制限しないかを選択することができる。
GUIの実施形態のいずれにおいても、ユーザは、画面を左右にスライドさせるジェスチャや、画面の進行方向を示すアイコンまたはアフォーダンスをタップするジェスチャによって、前の画面に戻る、または次の画面に進むことができる。
あるいは、GUI30は、本技術を実施する装置に関連する追加のユーザフィードバックを利用するように構成される、または構成可能である。このフィードバックは、振動周波数および強度、ならびにズーム、速度倍率、および/または他の操作ファクタを示すための3D触覚を利用することができる。
使用時に、ユーザは、本技術のソフトウェアアプリケーションを含むか、または操作可能に関連付けられた電子装置を使用してカメラ操作を開始することができ、またはユーザは、カメラと操作可能に関連付けられた本技術のソフトウェアアプリケーションを使用してカメラ操作を開始することができることが理解できる。
本技術のソフトウェアアプリケーションを操作すると、本技術のソフトウェアアプリケーションおよび/またはカメラの機能を制御するためのユーザインターフェースがユーザに提供される。
ユーザは、インターフェースを使用してカメラの録画機能を開始することができる。このとき、本技術のソフトウェアアプリケーションは、マイクまたは周辺機器のマイクに関連付けることができる、カメラまたはリモートビデオフィードから任意の未処理の動画データを受信する。この動作の間、カメラおよび/またはマイクからの未処理の動画データは、通常はカメラから未処理のデータを受信するメモリユニットの代わりに、本技術のソフトウェアアプリケーションに転送される。
インターフェースは、カメラから受信した未処理の動画データの録画速度レートを制御するために、ユーザからの単純な入力を提供する。例示的な目的のために、インターフェース上のユーザによるこの入力は、タッチスクリーンの一部を横切る動き、またはタッチスクリーンの一部に加えられる圧力であることもできる。この入力は、限定はしないが、カーソルの移動、音声コマンド、アイコンの起動、スイッチまたはボタンの操作、画面上のジェスチャ、超低周波装置など、さまざまな形態で入力することができることを理解されたい。
ユーザが速度レートを変更するための入力を提供しない場合、カメラからの未処理の動画データが表示され、メモリに書き込まれる。
あるいは、ユーザが速度レートを変更するための入力を提供する場合、未処理の動画データは、本技術のソフトウェアアプリケーションおよびその関連アルゴリズムを使用してリアルタイムで処理される。未処理の動画データは1つまたは複数のフレームを含み、これらのフレームは、ユーザが入力した速度レートに対応する最終的な動画データストリームを作成するために処理される。
これは、修正された動画データストリームを作成するために、本技術のソフトウェアアプリケーションを利用して達成される。この修正された動画データストリームは、未処理の動画データから特定のフレームをドロップすることにより、または特定のフレームをコピーして、コピーされたフレームを元のフレームに隣接して追加することにより、または2つの参照フレーム間に1つまたは複数のフレームを補間する「フレームブレンド」によって、作成することができる。ドロップされたフレームまたは追加されたフレームの数は、本技術のソフトウェアアプリケーションによって決定され、所望の速度レートが達成されるまで繰り返される。
次に、本技術のソフトウェアアプリケーションは、未処理の動画データまたは修正された動画データストリームをメモリに書き込むことができ、それによって、表示されるべき動画を、通常速度レート、ファストモーション速度レート、またはスローモーション速度レートで提供することができる。
動画の速度レートはメモリに書き込んだ後に変更されず、それによって、特殊効果の有無にかかわらず、リアルタイムで動画を録画し、動画速度レートを変更するためのポストプロダクション編集の必要性を省略することができることを理解されたい。
本技術は、アルゴリズムが動画データストリームのよりスムーズな時間修正を生成するように構成される、または構成することができる。例えば、ユーザがある速度から別の速度にジャンプするときに、アルゴリズムは、動画ギャップを埋めることができる。アルゴリズムは、2つ以上のデータポイント間でデータを補間することができるため、例えば、-3倍の速度から4倍の速度に変化するときに、さらにより滑らかにすることができる。
再生中、動画は非常に急激になることがる。これをアルゴリズムで補正し、動画を滑らかにすることで、各特殊効果の開始への移行時、各特殊効果中、および特殊効果から通常時間への移行時など、アクティブなスポーツイベントにおいて特別な瞬間(ピークモーメント)を撮影するときに、ユーザが動き回ったり、必要に応じてカメラをパンする際に、より高い解像度で視聴者の体験を向上させることができる。
例えば、動画撮影されている対象がジャンプしたとき、上向きの勢いはなくなったが、まだ落下し始めていない瞬間が、「ピークモーメント」にあたる。人工知能(AI)を利用して、録画中のシーンのアクションの「ピークモーメント」を算出し、「ピークモーメント」の少し前と少し後にスローモーションを使用するなど、予め設定した所望のアクションを実行することができる。
本技術は、カメラ上のGoPro(登録商標)のようなアクションカメラ、デジタル一眼レフカメラ、ミラーレスカメラ、プロレベルの動画機器、ジンバル、三脚、カメラ上のリモートトリガーフラッシュライト、アイグラスカメラ、ドローン、ウェブカメラなど、あらゆるカメラ機器に組み込むことができる。本技術は、リモコンに組み込まれ、Bluetooth(登録商標)または他のプロトコルを介して、本技術が組み込まれていない既存の電子機器に接続することができる。
本技術のユーザインターフェースは、3Dまたは2Dで表現することができる。ユーザは、電子装置のタッチスクリーン上で、指またはスタイラスを1つの動作面で左右にスライドさせることができる。3Dユーザインターフェースでは、電子装置は、ユーザのコントローラの深さの変化、ユーザが加えている圧力の量を感知し、特殊効果を適切に調整することができる。ジョイスティックは、本技術で使用および利用することができる。
ユーザインターフェースは感圧式であってもよく、ユーザが装置をより強くまたはより弱く押すことで、装置はこれらを、早送り及びスローモーション特殊効果を用いて再生速度を変更するための制御として解釈する。
本技術により、十分に高いフレーム/秒での録画が可能になり、結果として得られる「未処理の」編集されていない動画(特殊効果を適用せずに録画された動画)を録画後に編集することができ、また、遅い再生fpsに対して高い録画フレームレートがサポートするため、スローモーションは、滑らかなままである。
脳波感知装置、埋め込み式または表面取り付け装置、または無線リモートセンシングを本技術と共に利用して、時間速度の特殊効果を思考で直接制御できることを理解されたい。
圧縮技術を本技術と共に利用して、より高いフレームレートでの録画を改善し、より細かな風景録画や、ファイルサイズの縮小が可能になる。装置の性能は改善され、したがって、ユーザはより高いフレームレートで録画が可能になり、ファイルサイズを縮小しながら、より詳細な風景を録画することができる。
音声処理アルゴリズムを本技術と共に利用して、シーンが高速化及び低速化するセグメント中に、動画に最も明瞭で理解しやすい音声を提供することができる。Dolby Labs、DTS、Inc.、Fraunhofer Institut、Philips、Technicolor、IMAX、Sonyなどのサードパーティ企業のAPIを利用して音声処理を行うことができる。
データ暗号化アルゴリズムを本技術と共に利用して、動画の安全な伝送と保存を提供することができる。
暗号化およびブロックチェーン技術アルゴリズムを本技術と共に利用して、本技術を用いて作成された動画のオリジナルコンテンツ制作者を記録するための分散型台帳を作成することができる。動画にアクセスするには、アクセス許可を得るために暗号化されたトークンを「交換」する必要がある。
図面における操作を説明した特定の順序は単なる例示であり、記載された順序は本操作を実行できる唯一の順序であることを示すことを意図するものではないことが理解されるべきである。当業者は、本明細書に記載された操作を並べ替えるためのさまざまな方法を認識するのであろう。さらに、他の方法および/または処理に関して本明細書に記載される他の方法および/または処理の詳細も、図面に関して上述した方法に類似の方法で適用可能であることに留意されたい。
上述のシステム、インターフェースおよび/または方法がユーザに関する情報を収集する場合、ユーザには、個人情報を収集する可能性のあるプログラムまたは機能(例えば、ユーザの好みまたはスマートデバイスの使用に関する情報、生体データ、および場所などの環境データ)をオプトイン/オプトアウトする機会を提供されてもよい。さらに、いくつかの実装では、特定のデータが保存または使用される前に、1つまたは複数の方法で匿名化され、個人を特定できる情報を削除することができる。例えば、ユーザの身元を匿名にすることで、個人を特定できる情報そのユーザに関連付けることができないようにしたり、ユーザの好みやユーザのインタラクションが特定のユーザに関連付けられるのではなく、一般化される(例えば、ユーザ層に基づいて一般化される)ようにする。また、データ暗号化を利用し、ブロックチェーン技術を用いた「トークン化」アクセスを利用して、ユーザの身元をさらに難読化することもできる。
いくつかの図面は特定の順序で多数の論理ステージを示しているが、順序に依存しないステージは順序を変更することができ、他のステージは組み合わされてもよく、または分割されてもよい。いくつかの並べ替えまたは他のグループ化が具体的に言及されているが、当業者には他のものも明らかであり、したがって、本明細書で提示される順序付けおよびグループ分けは代替案の網羅的なリストではない。さらに、ステージは、ハードウェア、ファームウェア、ミドルウェア、ソフトウェア、API、またはそれらの任意の組み合わせで実装可能であることが認識されるべきである。
リアルタイム動画特殊効果システムおよび方法の実施形態を詳細に説明してきたが、これらに対する修正および変形が可能であり、それらのすべてが本技術の真の精神および範囲内にあることは明らかであろう。以上の記載に関して、本技術の部品の最適な寸法関係が寸法、材料、形状、形態、機能および動作、組立および使用方法のバリエーションを含むように、当業者には容易に明白かつ自明であると見なされ、図面に図示され明細書に記載されているものと同等の関係はすべて、本技術によって包含されることが意図されていることを理解されたい。例えば、上述したものに代えて、任意の適切な丈夫な材料を使用することができる。また、録画中の録画に特殊効果を生成することについて説明したが、本明細書で説明したリアルタイム動画特殊効果システムおよび方法は、フレーム属性の変更、録画フレームレートの変更、再生フレームレートの変更、および時間圧縮および伸長、ならびに任意のデータストリームに関連する他のリアルタイム特殊効果にも適していることを理解されたい。
したがって、上述の内容は、本技術の原理の例示にすぎないと考えられる。さらに、多数の修正および変更が当業者には容易に想起されるため、本技術を図示および説明した正確な構成および操作に限定することは望ましくなく、したがって、本技術の範囲内にあるすべての適切な修正および等価物に頼ることができる。
本技術の原理に従って構成されたリアルタイム動画特殊効果システムの一実施形態のブロック図である。 本技術のリアルタイム録画速度制御方法のブロック図である。 本技術の教示によるネイティブフレームレートの一例を示す一連の動画フレームの描写である。 ネイティブフレームレートの2倍のファストモーション速度に従ったフレームドロップの例を示す一連の動画フレームの描写である。 ネイティブフレームレートの3倍のファストモーション速度に従ったフレームドロップの例を示す一連の動画フレームの描写である。 ネイティブフレームレートの-2倍のスローモーション速度に従ってフレームコピーを使用してフレームを追加する例を示す一連の動画フレームの描写である。 ネイティブフレームレートの-3倍のスローモーション速度に従ってフレームコピーを使用してフレームを追加する例を示す一連の動画フレームの描写である。 ネイティブフレームレートの-2倍のスローモーション速度に従ってフレームブレンドを使用してフレームを追加する例を示す一連の動画フレームの描写である。 ネイティブフレームレートの-3倍のスローモーション速度によるフレームブレンドを使用してフレームを追加する例を示す一連の動画フレームの描写である。 本技術の実施形態を実施するために使用され得る電子計算装置に組み込まれた例示的な集積回路チップを示す図である。 本発明の実施形態を実施するために使用され得る例示的な電子計算装置を示す図である。 利用可能なサブルーチンを含むプロセス全体の一例を示すフローチャートである。 高速化および/または低速化の特殊効果をリアルタイムで利用するべきかどうかを最初に判定するメインプロセスの一例を示すフローチャートである。 本技術に関連する書き込み動画ストリームサブルーチンの一例を示すフローチャートである。 本技術に係る特殊効果適用サブルーチンの一例を示すフローチャートである。 本技術に係る高速化サブルーチンの一例を示すフローチャートである。 本技術に関連するファストモーションをシミュレートするためのフレームドロップサブルーチンの一例を示すフローチャートである。 本技術に関連する高度なスローモーションサブルーチンの一例を示すフローチャートである。 本技術に係るスローモーションをシミュレーションするためのフレーム追加サブルーチンの一例を示すフローチャートである。 本技術に関連するスローモーションをシミュレートするための可変高録画fpsサブルーチン(120fps)の一例を示すフローチャートである。 本技術に関連する一定のフレームレートのスローモーションサブルーチンの一例を示すフローチャートである。 本技術に関連するスローモーションをシミュレートするための一定の高録画fpsサブルーチン(60fps)の一例を示すフローチャートである。 本技術に関連するスローモーションをシミュレートするための一定の高 録画fpsサブルーチン(120fps)の一例を示すフローチャートである。 本技術に関連するスローモーションをシミュレートするための一定の高 録画fpsサブルーチン(120fps)の一例を示すフローチャートである。 本技術に関連するスローモーションをシミュレートするための一定の高 録画fpsサブルーチン(240fps)の一例を示すフローチャートである。 本技術に関連するスローモーションをシミュレートするための一定の高 録画fpsサブルーチン(240fps)の一例を示すフローチャートである。 本技術に関連するエクストリームスローモーションサブルーチンの一例 を示すフローチャートである。 本技術に関連するエクストリームスローモーションサブルーチンの一例 を示すフローチャートである。 本技術に関連するスローモーションおよびファストモーションをシミュレートするための時間伸長および圧縮サブルーチンの一例のフローチャートである。 図20の時間圧縮の例を示す、秒単位の時間あたりの一連の関連する録画および再生動画セグメントの描写である。 本技術に関連するスローモーション及びファストモーションをシミュレートするための可変再生レートを用いた録画の一例のフローチャートである。 本技術に関連するスローモーションおよびファストモーションをシミュレートするために、図22のアルゴリズムを使用するアプリケーションによって作成された動画ファイルを再生する再生装置の一例のフローチャートである。 本技術に関連するユーザインターフェースを利用するユーザによる可能な処理の一例を示すフローチャートである。 本技術のインターフェースシステムのサンプルグラフィカルユーザインターフェース(GUI)スクリーンショットである。 本技術のプロセスを利用して通常の「1倍」速度で録画しているときの、GUIを採用する装置の「カメラビュー」のサンプルGUIスクリーンショットである。 本技術のプロセスを利用してスローモーション「-2倍」速度で録画しているときの、GUIを採用する装置の「カメラビュー」のサンプルGUIスクリーンショットである。 本技術のプロセスを利用してファストモーション「3倍」速度で録画しているときの、GUIを採用する装置の「カメラビュー」のサンプルGUIスクリーンショットである。 ユーザが本技術のプロセスを利用して録画を停止している間の、GUIを採用する装置の「レビュー画面」のサンプルGUIスクリーンショットである。 本技術のプロセスを利用して撮影された動画をレビューするための、図29の「レビュー画面」のサンプルGUIスクリーンショットである。 本技術のプロセスを利用して録画を開始する前の、GUIを採用する装置の「構成画面」のサンプルGUIスクリーンショットである。 本技術のプロセスを利用してファストモーション「2倍」速度での録画が開始されたときの、GUIを採用する装置の「録画画面」のサンプルGUIスクリーンショットである。 本技術のプロセスを利用するスクロール可能なセクションを含むGUIを採用する装置の「スローモーション解像度」画面のサンプルGUIスクリーンショットである。 本技術のプロセスを利用するスライドバーを含むGUIを採用する装置の「スローモーション解像度」画面のサンプルGUIスクリーンショットである。 本技術のプロセスを利用するスクロール可能なセクションを含むGUIを採用する装置の代替的な「スローモーション解像度」画面のサンプルGUIスクリーンショットである。 本技術のプロセスを利用してスローモーション倍率レベルを設定するためのスライドバーを含むGUIを採用する装置の「スローモーションスケール」画面のサンプルGUIスクリーンショットである。 本技術のプロセスを利用する垂直スライドバーを含むGUIを採用する装置の代替的な「スローモーション解像度」画面のサンプルGUIスクリーンショットである。
recording_fps=playback_fps*2でない場合、このサブルーチンはステップ356に進み、recording_fps=playback_fps*4であるかどうかを判定する。そうであれば、ステップ358に進み、図17A及び図17Bに最も良く示されているように、120fpsで一定の高フレームレートサブルーチンを開始する。その後、このサブルーチンは停止または終了する(ステップ368)。
recording_fps=playback_fps*4でない場合、このサブルーチンはステップ360に進み、recording_fps=playback_fps*8であるかどうかを判定する。そうであれば、ステップ362に進み、図18A及び図18Bに最も良く示されているように、240fpsで一定の高フレームレートサブルーチンを開始する。その後、このサブルーチンは停止または終了する(ステップ368)。
図17A及び図17Bを参照して、図15の一定の高フレームレートサブルーチンに関連する一定の高録画fpsサブルーチン(120FPS)の例を説明する。この一定の高フレームレートサブルーチンは、スローモーションをシミュレートするために利用することができ、例えば、スローモーション範囲=録画速度/再生fps=120fps/30fps=4に限定される。
図18A及び図18Bを参照して、図15の一定の高フレームレートサブルーチンに関連する一定の高録画fpsサブルーチン(240FPS)の例を説明する。この一定の高フレームレートサブルーチンは、スローモーションをシミュレートするために利用することができ、例えば、スローモーション範囲=録画速度/再生fps=240fps/30fps=8に限定される。
図19A及び図19Bを参照して、図15の一定の高フレームレートサブルーチンに関連する一定の高録画fpsサブルーチン(240FPS)におけるエクストリームスローモーションの例を説明する。この一定の高フレームレートサブルーチンは、極端なスローモーションをシミュレートするために利用することができ、例えば、-8倍から-128倍速のスローモーション範囲に限定される。図19A及び図19Bのフレーム追加サブルーチンを有する一定の高録画FPSは、1秒あたりの高フレーム録画レート、「通常の」毎秒の再生フレーム、およびスローモーション特殊効果を高めるためのフレーム追加の組み合わせのための例示的なフローチャートアルゴリズムを示す。このサブルーチンは速度が≧-8倍と2の完全な倍数である場合を例示しており、-8倍よりも遅い速度は、図18A及び図18Bに最も良く示されている。

Claims (30)

  1. 実世界のシーンの動画を撮影するように構成された1つまたは複数のカメラと、
    前記カメラに動作可能に接続された、または接続可能な少なくとも1つの処理ユニットと、少なくとも1つのメモリとを含む電子装置と、
    前記電子装置に動作可能に実装された、または実装可能であり、前記処理ユニットによって実行可能なグラフィカルユーザインターフェースと、
    を備え、
    前記グラフィカルユーザインターフェースは、
    前記電子デバイスの処理ユニットによって実行または実行可能な少なくとも1つの動作に1つまたは複数の入力を提供するように構成される、または構成可能である、1つまたは複数のアフォーダンスをユーザに提供し、
    撮影された動画を通常の速度で前記グラフィカルユーザインターフェースに表示するように構成される、または構成可能であり、
    前記グラフィカルユーザインターフェースによって受信された入力の少なくとも1つに応答して、撮影されている動画のグラフィカルインターフェース上の動画再生速度を、通常再生速度から修正された再生速度に変更するように構成される、または構成可能である、リアルタイムでライブ動画録画データの特殊効果操作を制御するための動画撮影および表示システム。
  2. 前記グラフィカルユーザインターフェースは、撮影されている動画を修正された再生速度でのグラフィカルユーザインターフェース上の表示から、通常速度で撮影されている動画の表示に戻るように、前記処理ユニットによって構成される、または構成可能である、請求項1に記載のシステム。
  3. 前記グラフィカルユーザインターフェースは、前記グラフィカルユーザインターフェースによって受信されたユーザ入力に応じて、前記グラフィカルユーザインターフェース上の修正された速度での表示から前記撮影されている動画の通常再生速度での表示に戻るように、前記処理ユニットによって構成される、または構成可能である、請求項2に記載のシステム。
  4. 前記グラフィカルユーザインターフェースは、録画されている動画の前記グラフィカルユーザインターフェース上での再生速度を、前記通常再生速度から修正された再生速度にシームレスに変更するように、前記処理ユニットによって構成される、または構成可能である、請求項1に記載のシステム。
  5. 前記カメラおよび前記グラフィカルユーザインターフェースは、同じ電子装置に組み込まれるか、または前記カメラは前記電子装置から離れている、請求項1に記載のシステム。
  6. 前記電子装置は、スマートフォン、コンピュータ、携帯情報端末(pda)またはタブレット装置を含む、請求項5に記載のシステム。
  7. 前記グラフィカルユーザインターフェースは、前記電子装置のディスプレイに表示され、
    前記グラフィカルユーザインターフェースは、前記通常再生速度で撮影されている前記動画を表示するように構成される、または構成可能である第1の領域と、前記修正された再生速度で撮影されている前記動画を表示するように構成される、または構成可能である第2の領域とを含む複数の領域を含む、請求項1に記載のシステム。
  8. 前記グラフィカルユーザインターフェースは、現在のセッション内で先に撮影された動画の少なくとも1つの静止フレームを表示するように構成される、または構成可能である第3の領域を含む、請求項7に記載のシステム。
  9. 未処理の動画データをリアルタイムで撮影するように構成されたカメラに動作可能に通信する少なくとも1つの処理ユニットと、少なくとも1つのメモリとを含む電子装置と、
    前記電子装置に関連付けられ、前記電子装置上に表示可能なグラフィカルユーザインターフェースと、
    を備え、
    前記グラフィカルユーザインターフェースは、動画表示領域と、前記入力が前記未処理の動画データのネイティブ速度レートを変更することに関連付けられているどうかを判定し、関連付けられている場合には、前記カメラから前記未処理の動画データを受信しながら、リアルタイムで前記ネイティブ速度レートとは異なる修正された速度レートの修正された動画データを作成するために、前記未処理の動画データの少なくとも1つのフレームを修正するために、前記処理ユニットによって受信可能かつ使用可能な少なくとも1つの入力を提供するように構成される、または構成可能である、少なくとも1つの第1のアフォーダンスと、を含み、
    前記グラフィカルユーザインターフェースは、前記処理ユニットから修正された動画データを受信し、前記修正された動画データを前記動画表示領域に表示するように構成される、ライブ録画データの特殊効果操作をリアルタイムで制御する、録画インターフェースシステム。
  10. 前記グラフィカルユーザインターフェースの前記第1のアフォーダンスは、複数の値から少なくとも1つの選択可能な値を含む、請求項9に記載の録画インターフェースシステム。
  11. 前記選択可能な値は、前記電子デバイスのディスプレイ上でのタップ、マルチタップ、長押し、スライド、ピンチ、および長押しとスライドからなる群から選択されるジェスチャによって選択される、請求項10に記載の録画インターフェースシステム。
  12. 前記第1のアフォーダンスの前記複数の値は、スローモーション速度、ファストモーション速度、および通常速度に関連する速度レートの変化を含む、請求項10に記載の録画インターフェースシステム。
  13. 前記第1のアフォーダンスは、前記速度レートの変化に関連付けられたスライドバーである、請求項12に記載の録画インターフェースシステム。
  14. 前記グラフィカルユーザインターフェースは、前記動画の録画動作を開始または中止するために、前記処理ユニットに第2の入力を提供するように構成される、または構成可能である第2のアフォーダンスと、前記未処理の動画データのズーム倍率の変化を判定する際に使用可能な第3のアフォーダンスと、を含む、請求項10に記載の録画インターフェースシステム。
  15. 前記第1のアフォーダンスおよび前記第2のアフォーダンスの少なくとも一方が、前記動画表示領域上に部分的に配置される、請求項14に記載の録画インターフェースシステム。
  16. 前記表示領域に表示される修正された動画データとは異なる第2のビデオフィードを表示するように構成された第2の動画表示領域をさらに備え、前記第2のビデオフィードはネイティブ速度での未処理の動画データ、修正された速度での修正された動画データ、および未処理の動画データと修正された動画データとの組み合わせのうちの1つである、請求項9に記載の録画インターフェースシステム。
  17. 前記グラフィカルユーザインターフェースは、少なくとも録画動作が開始または停止するかどうかを判定する際に、前記処理ユニットによって受信可能かつ使用可能な少なくとも1つの録画入力を提供するように構成される、または構成可能である録画アフォーダンスをさらに含む、請求項9に記載の録画インターフェースシステム。
  18. 前記グラフィカルユーザインターフェースは、前記処理ユニットによって追加の操作を開始する際に受信可能かつ使用可能な少なくとも1つの追加の入力を提供するように構成される、または構成可能である1つまたは複数の追加のアフォーダンスをさらに含む、請求項9に記載のライブ録画インターフェースシステム。
  19. 前記追加の操作は、フラッシュ、ハンズフリーまたはハンズオン操作、タイマ、ミュート操作、リヤおよびセルフィーカメラまたはリモートフィード操作、前記電子装置に関連する設定操作、前記カメラに関連する設定操作、編集操作、フィルタ操作、拡張現実(AR)操作、書き込み操作、および送信動作からなる群から選択される、請求項18に記載のライブ録画インターフェースシステム。
  20. A)少なくとも1つの処理ユニットと、前記処理ユニットと動作可能に通信する少なくとも1つのメモリと、を含む電子装置に動作可能に関連付けられたディスプレイ上に、少なくとも1つのアフォーダンスを含むグラフィカルユーザインターフェースを表示すること、
    b)前記処理ユニットによって、カメラまたはビデオフィードからリアルタイムで撮影された画像に少なくとも部分的に対応する未処理の動画データを、前記カメラまたはビデオフィードからネイティブ速度レートで受信すること、
    c)前記処理ユニットによって、ユーザによるアフォーダンスの起動時にアフォーダンスから少なくとも1つの入力を受信すること、
    d)前記処理ユニットによって、入力が未処理の動画データのネイティブ速度レートを変更することに関連しているかどうかを判定し、関連する場合には、未処理の動画データを修正して、前記カメラまたはビデオフィードから未処理の動画データを受信しながらリアルタイムでネイティブ速度レートとは異なる1つまたは複数の修正された速度レートの修正された動画データを作成すること、
    e)前記処理ユニットによって、グラフィカルユーザインターフェースの少なくとも第1の領域に、出力録動画画データをディスプレイに表示すること、を含み、
    前記出力動画録画データは、ネイティブ速度での未処理の動画データ、修正された速度での修正された動画データ、および未処理の動画データと修正された動画データとの組み合わせのうちの1つである、ライブ録画データの特殊効果操作をリアルタイムに制御する方法。
  21. 未処理の動画データがカメラまたはビデオフィードからメモリに書き込まれることを防止することをさらに含む、請求項20に記載の方法。
  22. 前記グラフィカルユーザインターフェースからの前記入力が、前記ネイティブ速度レートの変更に関連付けられていない場合は、前記コマンドを処理し、前記未処理の動画データを前記メモリに書き込む、請求項20に記載の方法。
  23. グラフィカルユーザインターフェースからの入力がネイティブ速度レートを変更するものであるかどうかを判定すること、次に、修正された速度レートが前記ネイティブ速度レート未満であるかどうかを判定することをさらに含み、そうであれば、未処理の動画データを修正することは、少なくとも1つの新しいフレームを未処理の動画データに追加して、修正された動画データを作成することを含む、請求項20に記載の方法。
  24. 前記新しいフレームを追加することは、前記新しいフレームを作成するために少なくとも1つの未処理のフレームをコピーすること、または、前記新しいフレームを作成するために少なくとも1つの未処理のフレームを隣接する未処理のフレームとブレンドすること、および、前記未処理のフレームに隣接する前記未処理の動画データに前記新しいフレームを追加することと、を含む、請求項23に記載の方法。
  25. 前記新しいフレームは、各々が前記未処理の動画データからの少なくとも1つの未処理のフレームのコピーである複数の新しいフレームである、請求項23に記載の方法。
  26. 前記新しいフレームの各々は、前記未処理のフレームに隣接して、または前記未処理の動画データの第2の未処理のフレームに隣接して、前記未処理の動画データに追加される、請求項25に記載の方法。
  27. グラフィカルユーザインターフェースからの入力がネイティブ速度レートを変更するものであるかどうかを判定すること、次に、修正された速度レートがネイティブ速度レートよりも大きいかどうかを判定することをさらに含み、そうである場合、未処理の動画データを修正することは、未処理の動画データから少なくとも1つの第1の未処理フレームを削除して、修正された動画データを作成することを含む、請求項20に記載の方法。
  28. 前記第1の未処理のフレームを削除することは、削除される第1の未処理のフレームを選択すること、次に、前記未処理の動画データから前記第1の未処理のフレームを削除して、前記修正された動画データを作成すること、を含む、請求項27に記載の方法。
  29. 前記第1の表示領域は、前記修正された動画データを表示するように構成される、または構成することができ、前記グラフィカルユーザインターフェースは、前記未処理の動画データストリームまたは現在のセッション内で先に撮影された前記動画の少なくとも1つの静止フレームを表示するように構成される、または構成することができる第2の表示領域を含む、請求項20に記載の方法。
  30. 前記グラフィカルユーザインターフェースの前記第1の領域に表示される前記出力動画録画データは、前記未処理の動画データと前記修正された動画データとの組み合わせであり、前記修正された動画データは、それぞれが入力に依存する速度レートを有する複数のサブセットを含むように構成される、または構成することができ、前記未処理の動画データと前記サブセットのいずれかとの間、またはサ前記ブセットのいずれかの間で入力に依存する遷移を伴い、前記出力動画録画データは、前記カメラまたは前記ビデオフィードから前記未処理の動画データを受信している間、リアルタイムで前記グラフィカルユーザインターフェースに表示される、請求項20に記載の方法。
JP2021548526A 2018-10-29 2019-10-29 リアルタイム動画特殊効果システム及び方法 Pending JP2022509504A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/173,066 2018-10-29
US16/173,066 US10404923B1 (en) 2018-10-29 2018-10-29 Real time video special effects system and method
PCT/US2019/058503 WO2020092326A1 (en) 2018-10-29 2019-10-29 Real time video special effects system and method

Publications (1)

Publication Number Publication Date
JP2022509504A true JP2022509504A (ja) 2022-01-20

Family

ID=67770130

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021548526A Pending JP2022509504A (ja) 2018-10-29 2019-10-29 リアルタイム動画特殊効果システム及び方法

Country Status (7)

Country Link
US (4) US10404923B1 (ja)
EP (1) EP3874736A4 (ja)
JP (1) JP2022509504A (ja)
KR (1) KR20210092220A (ja)
CN (1) CN113767618A (ja)
CA (1) CA3118103A1 (ja)
WO (1) WO2020092326A1 (ja)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USD910046S1 (en) * 2017-09-29 2021-02-09 Apple Inc. Electronic device with graphical user interface
USD962953S1 (en) * 2018-08-03 2022-09-06 Kilpatrick Townsend & Stockton Llp Display screen or portion thereof having an icon
US11641439B2 (en) 2018-10-29 2023-05-02 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
US10388322B1 (en) 2018-10-29 2019-08-20 Henry M. Pena Real time video special effects system and method
EP3660848A1 (en) * 2018-11-29 2020-06-03 Ricoh Company, Ltd. Apparatus, system, and method of display control, and carrier means
US11194461B2 (en) * 2019-01-15 2021-12-07 Fujifilm Medical Systems U.S.A., Inc. Smooth image scrolling with dynamic scroll extension
US11579763B2 (en) * 2019-01-15 2023-02-14 Fujifilm Medical Systems U.S.A., Inc. Smooth image scrolling with disk I/O activity optimization and enhancement to memory consumption
GB2582422B (en) * 2019-02-05 2022-01-26 Canon Kk Video processing progress bar, indicating which parts have already been processed and which are yet to be processed
USD907061S1 (en) * 2019-05-07 2021-01-05 Salesforce.Com, Inc. Display screen or portion thereof with graphical user interface
CN110838166B (zh) * 2019-10-21 2024-02-13 腾讯科技(深圳)有限公司 特效数据检测方法、装置、设备及存储介质
CN111225150B (zh) * 2020-01-20 2021-08-10 Oppo广东移动通信有限公司 插帧处理方法及相关产品
WO2021167595A1 (en) * 2020-02-18 2021-08-26 Pena Henry M Real time video special effects system and method
USD941842S1 (en) * 2020-03-16 2022-01-25 Beijing Dajia Internet Information Technology Co., Ltd. Display screen or portion thereof with graphical user interface
USD941843S1 (en) * 2020-03-31 2022-01-25 Beijing Dajia Internet Information Technology Co., Ltd. Display screen or portion thereof with graphical user interface
CN111629253A (zh) * 2020-06-11 2020-09-04 网易(杭州)网络有限公司 视频处理方法及装置、计算机可读存储介质、电子设备
CN111757135B (zh) 2020-06-24 2022-08-23 北京字节跳动网络技术有限公司 直播互动方法、装置、可读介质及电子设备
USD971241S1 (en) 2020-06-30 2022-11-29 Salesforce.Com, Inc. Display screen or portion thereof with graphical user interface
USD971243S1 (en) * 2020-06-30 2022-11-29 Salesforce.Com, Inc. Display screen or portion thereof with graphical user interface
USD971242S1 (en) * 2020-06-30 2022-11-29 Satesforce.com, Inc. Display screen or portion thereof with graphical user interface
US20220028425A1 (en) * 2020-07-22 2022-01-27 Idomoo Ltd System and Method to Customizing Video
WO2022040308A1 (en) * 2020-08-18 2022-02-24 Pena Henry M Real time video special effects system and method
USD971932S1 (en) * 2020-08-25 2022-12-06 Hiho, Inc. Display screen or portion thereof having a graphical user interface
USD981445S1 (en) * 2020-09-21 2023-03-21 Beijing Dajia Internet Information Technology Co., Ltd. Display screen or portion thereof with graphical user interface
KR102377081B1 (ko) * 2021-07-30 2022-03-22 아이디아이디 주식회사 멀티 트랙에 대한 기록 동작에 기반하는 디지털 컨텐츠 생성장치 및 그 방법
CN117014686A (zh) * 2022-04-29 2023-11-07 荣耀终端有限公司 一种视频处理方法及电子设备
CN115065855A (zh) * 2022-08-04 2022-09-16 广州市千钧网络科技有限公司 一种直播间动态封面生成方法及装置
US11836337B1 (en) * 2023-01-06 2023-12-05 Motorola Mobility Llc Automated static or dynamic format selection of screen shot capture responsive to size of a display

Family Cites Families (81)

* 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
WO2006127951A2 (en) 2005-05-23 2006-11-30 Gilley Thomas S 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
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
CN102598657B (zh) 2009-10-27 2015-03-25 佳能株式会社 视频回放设备和用于控制视频回放设备的方法
KR101319264B1 (ko) 2010-01-22 2013-10-18 전자부품연구원 멀티 터치 압력에 기반한 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
US8935611B2 (en) * 2011-10-10 2015-01-13 Vivoom, Inc. Network-based rendering and steering of visual effects
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 キヤノン株式会社 電子機器、その制御方法、プログラム、及び記録媒体
WO2013113985A1 (en) * 2012-01-31 2013-08-08 Nokia Corporation Method, apparatus and computer program product for generation of motion images
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 キヤノン株式会社 動画再生装置、表示制御方法、プログラム及び記憶媒体
WO2014179466A1 (en) 2013-04-30 2014-11-06 General Instrument Corporation 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
US20140359448A1 (en) 2013-05-31 2014-12-04 Microsoft Corporation Adding captions and emphasis to video
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
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
WO2016028522A1 (en) 2014-08-20 2016-02-25 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
EP3243331A4 (en) 2015-01-09 2018-08-08 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 엘지전자 주식회사 이동단말기 및 그 제어방법
US10593084B2 (en) 2016-08-01 2020-03-17 Facebook, Inc. Systems and methods for content interaction
CN109845245B (zh) 2016-08-19 2021-10-22 韩国斯诺有限公司 动态影像处理方法及计算机可读记录介质
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
EP3343561B1 (en) * 2016-12-29 2020-06-24 Axis AB Method and system for playing back recorded video
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
US10404923B1 (en) 2018-10-29 2019-09-03 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
US11689686B2 (en) 2018-10-29 2023-06-27 Henry M. Pena Fast and/or slowmotion compensating timer display
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
US10388322B1 (en) 2018-10-29 2019-08-20 Henry M. Pena Real time video special effects system and method
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

Also Published As

Publication number Publication date
US10863109B2 (en) 2020-12-08
CN113767618A (zh) 2021-12-07
KR20210092220A (ko) 2021-07-23
US10404923B1 (en) 2019-09-03
US20210051278A1 (en) 2021-02-18
CA3118103A1 (en) 2020-05-07
US20230344954A1 (en) 2023-10-26
EP3874736A4 (en) 2022-07-27
EP3874736A1 (en) 2021-09-08
US11743414B2 (en) 2023-08-29
US20200137319A1 (en) 2020-04-30
WO2020092326A1 (en) 2020-05-07

Similar Documents

Publication Publication Date Title
US11743414B2 (en) Real time video special effects system and method
US11218646B2 (en) Real time video special effects system and method
US11727958B2 (en) Real time video special effects system and method
US11044420B2 (en) Real time video special effects system and method
US11689686B2 (en) Fast and/or slowmotion compensating timer display
US11641439B2 (en) Real time video special effects system and method
US8744249B2 (en) Picture selection for video skimming
CN109275028B (zh) 视频获取方法、装置、终端和介质
WO2017014800A1 (en) Video editing on mobile platform
WO2022040308A1 (en) Real time video special effects system and method
US11570415B2 (en) Methods, systems, and media for generating a summarized video using frame rate modification
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
US20240040068A1 (en) Fast and/or slow motion compensating timer display
US11765333B1 (en) Systems and methods for improved transitions in immersive media

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210701