JP7769112B2 - ビデオ処理方法、装置、電子機器及び読み取り可能な記憶媒体 - Google Patents

ビデオ処理方法、装置、電子機器及び読み取り可能な記憶媒体

Info

Publication number
JP7769112B2
JP7769112B2 JP2024529213A JP2024529213A JP7769112B2 JP 7769112 B2 JP7769112 B2 JP 7769112B2 JP 2024529213 A JP2024529213 A JP 2024529213A JP 2024529213 A JP2024529213 A JP 2024529213A JP 7769112 B2 JP7769112 B2 JP 7769112B2
Authority
JP
Japan
Prior art keywords
video
video frame
target video
target
processing mode
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.)
Active
Application number
JP2024529213A
Other languages
English (en)
Other versions
JP2024545005A (ja
Inventor
ホ,スユイ
ルエン,シボ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Zitiao Network Technology Co Ltd
Original Assignee
Beijing Zitiao Network Technology Co Ltd
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 Beijing Zitiao Network Technology Co Ltd filed Critical Beijing Zitiao Network Technology Co Ltd
Publication of JP2024545005A publication Critical patent/JP2024545005A/ja
Application granted granted Critical
Publication of JP7769112B2 publication Critical patent/JP7769112B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/426Internal components of the client ; Characteristics thereof
    • H04N21/42653Internal components of the client ; Characteristics thereof for processing graphics
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • 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/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
    • G11B27/034Electronic editing of digitised analogue information signals, e.g. audio or video signals on discs
    • 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
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/431Generation of visual interfaces for content selection or interaction; Content or additional data rendering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44012Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving rendering scenes according to scene graphs, e.g. MPEG-4 scene graphs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44016Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving splicing one content stream with another content stream, e.g. for substituting a video clip
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/482Application
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Description

[関連出願の相互参照]
この出願は、出願番号が202111347351.6であり、出願日が2021年11月15日である中国出願を基礎としており、その優先権を主張し、この中国出願の開示内容の全てが参照によって本出願に取り込まれる。
[技術分野]
本開示は、インターネット技術分野に関し、特にビデオ処理方法、装置、電子機器及び読み取り可能な記憶媒体に関する。
インターネット技術の発展に伴い、様々なアプリケーション(application、APP)が開発されており、その中には、ビデオ編集機能を有するアプリケーションが特に人々に好まれている。現在では、ビデオ編集機能を提供可能なアプリケーションは、多くのビデオ編集操作、例えば、インテリジェントマッティングを実現することができ、このようなビデオ編集操作は、ビデオの各ビデオフレーム画像に対して相応な処理を行う必要がある。
関連技術では、このようなビデオ編集操作に対して、一般的にストリーミング処理フレームワークが採用されている。例えば、インテリジェントマッティングを行う際に、フレーム毎に符号化、マッティング処理、レンダリング及び表示を行う。
上記技術課題を解決し、又は少なくとも部分的に上記技術課題を解決するために、本開示は、ビデオ処理方法、装置、電子機器及び読み取り可能な記憶媒体を提供する。
第1の側面によれば、本開示は、
第1のスレッドにより、指定されたビデオフレーム位置から、処理対象ビデオにおける前記指定されたビデオフレーム位置のビデオフレームに対して目標ビデオ編集操作を実行し、前記指定されたビデオフレーム位置の後の各ビデオフレームに対して前記目標ビデオ編集操作を予め実行して、前記目標ビデオ編集操作を実行して得られた各目標ビデオフレームを取得することと、
再生命令に応答して、第2のスレッドにより、各前記目標ビデオフレームに対してレンダリングを行い、各前記目標ビデオフレームを提示することと、を含み、前記目標ビデオ編集操作が実行されているビデオフレーム位置は、提示されている前記目標ビデオフレームの、前記処理対象ビデオにおける対応するビデオフレーム位置よりも先行する、ビデオ処理方法を提供する。
可能な一実施形態として、前記指定されたビデオフレーム位置は、ビデオ編集命令を取得した時に位置決めされたビデオフレーム位置に基づいて決定され、前記ビデオ編集命令は、前記処理対象ビデオに対して前記目標ビデオ編集操作を実行することを指示するためのものであり、前記ビデオ編集命令を取得した時に位置決めされたビデオフレーム位置は、予め設定されたビデオフレーム位置又は第1のジャンプ命令で指定されたビデオフレーム位置である。
可能な一実施形態として、前記指定されたビデオフレーム位置は、第2のジャンプ命令で指定されたビデオフレーム位置に基づいて決定され、且つ、前記第2のジャンプ命令は、前記処理対象ビデオに対して前記目標ビデオ編集操作を実行するためのビデオ編集命令の後の命令である。
可能な一実施形態として、前記指定されたビデオフレーム位置がビデオ編集命令を取得した時に位置決めされたビデオフレーム位置に基づいて決定された場合、前述した、第1のスレッドにより、指定されたビデオフレーム位置から、処理対象ビデオにおける前記指定されたビデオフレーム位置のビデオフレームに対して目標ビデオ編集操作を実行し、前記指定されたビデオフレーム位置の後の各ビデオフレームに対して前記目標ビデオ編集操作を予め実行して、前記目標ビデオ編集操作を実行して得られた各目標ビデオフレームを取得する前に、前記方法は、
前記指定されたビデオフレーム位置に基づいて、前記第1のスレッドに対応するビデオ編集処理モードを決定することをさらに含み、前記ビデオ編集処理モードは、キーフレームに対して前記目標ビデオ編集操作を実行するモードである第1の処理モード、又はフレーム毎に前記目標ビデオ編集操作を実行するモードである第2の処理モードである。
可能な一実施形態として、前述した、前記指定されたビデオフレーム位置に基づいて、前記第1のスレッドに対応するビデオ編集処理モードを決定することは、
前記指定されたビデオフレーム位置が前記予め設定されたビデオフレーム位置である場合、前記第1のスレッドに対応するビデオ編集処理モードを前記第1の処理モードとして決定することと、
前記指定されたビデオフレーム位置が第1のジャンプ命令で指定されたビデオフレーム位置である場合、前記第1のスレッドに対応するビデオ編集処理モードを前記第1の処理モード又は前記第2の処理モードとして決定することとを含む。
可能な一実施形態として、前述した、前記指定されたビデオフレーム位置に基づいて、前記第1のスレッドに対応するビデオ編集処理モードを決定することは、
前記指定されたビデオフレーム位置において相応な目標ビデオフレームが存在するか否かを決定することと、
前記指定されたビデオフレーム位置において相応な目標ビデオフレームが存在しない場合、前記指定されたビデオフレーム位置が前記予め設定されたビデオフレーム位置であるか、前記第1のジャンプ命令で指定されたビデオフレーム位置であるかに応じて、前記第1のスレッドに対応するビデオ編集処理モードを決定することと、を含む。
可能な一実施形態として、前記方法は、
前記指定されたビデオフレーム位置において相応な目標ビデオフレームが存在する場合、前記第1のスレッドに対応するビデオ編集処理モードを前記第2の処理モードとして決定することをさらに含み、
前述した、第1のスレッドにより、指定されたビデオフレーム位置から、処理対象ビデオにおける前記指定されたビデオフレーム位置のビデオフレームに対して目標ビデオ編集操作を実行し、前記指定されたビデオフレーム位置の後の各ビデオフレームに対して前記目標ビデオ編集操作を予め実行して、前記目標ビデオ編集操作を実行して得られた各目標ビデオフレームを取得することは、
相応な目標ビデオフレームが存在しない最初のビデオフレーム位置が決定されるまで、前記指定されたビデオフレーム位置から後へフレーム毎に相応な目標ビデオフレームが存在するか否かを決定することと、
前記第1のスレッドにより、前記第2の処理モードに従って、相応な目標ビデオフレームが存在しない前記最初のビデオフレーム位置から、前記処理対象ビデオのビデオフレームに対して、前記目標ビデオ編集操作を実行することとを含む。
可能な一実施形態として、前記指定されたビデオフレーム位置が第2のジャンプ命令で指定されたビデオフレーム位置に基づいて決定された場合、前述した、第1のスレッドにより、指定されたビデオフレーム位置から、処理対象ビデオにおける前記指定されたビデオフレーム位置のビデオフレームに対して目標ビデオ編集操作を実行し、前記指定されたビデオフレーム位置の後の各ビデオフレームに対して前記目標ビデオ編集操作を予め実行して、前記目標ビデオ編集操作を実行して得られた各目標ビデオフレームを取得する前に、前記方法は、
前記指定されたビデオフレーム位置において相応な目標ビデオフレームが存在しない場合、前記第1のスレッドに対応するビデオ編集処理モードを第2の処理モードとして決定することをさらに含む。
可能な一実施形態として、前記方法は、
前記指定されたビデオフレーム位置において相応な目標ビデオフレームが存在し、且つ現在で前記第1のスレッドが前記処理対象ビデオに対して前記目標ビデオ編集操作を実行している場合、前記第1のスレッドを中断せず、前記第1のスレッドが前記処理対象ビデオに対して前記目標ビデオ編集操作を実行し続けるようにすることをさらに含む。
可能な一実施形態として、前記方法は、
前記再生命令に応答して、前記ビデオ編集処理モードを、前記目標ビデオ編集操作を実行するビデオフレーム位置を再生速度に応じて決定するモードである第3の処理モードに切り替え、前記第1のスレッドにより、前記第3の処理モードに従って前記処理対象ビデオのビデオフレームに対して前記目標ビデオ編集操作を実行することをさらに含む。
可能な一実施形態として、前述した、前記再生命令に応答して、前記ビデオ編集処理モードを第3の処理モードに切り替え、前記第1のスレッドにより、前記第3の処理モードに従って前記処理対象ビデオのビデオフレームに対して前記目標ビデオ編集操作を実行することは、
前記再生命令に応答して、再生しようとする次の目標ビデオフレームが存在するか否かをリアルタイムで検出することと、
再生しようとする次の目標ビデオフレームが存在しないことを検出すると、前記第1のスレッドにより、前記再生しようとする次の目標ビデオフレームの位置から、前記第3の処理モードに従って前記処理対象ビデオのビデオフレームに対して前記目標ビデオ編集操作を実行することとを含む。
可能な一実施形態として、前述した、前記再生命令に応答して、前記ビデオ編集処理モードを第3の処理モードに切り替え、前記第1のスレッドにより、前記第3の処理モードに従って前記処理対象ビデオのビデオフレームに対して前記目標ビデオ編集操作を実行することは、
前記再生命令に応答して、前記第1のスレッドにより、前記再生命令を取得した時に前記目標ビデオ編集操作が実行されているビデオフレーム位置から、前記第3の処理モードに従って前記処理対象ビデオのビデオフレームに対して前記目標ビデオ編集操作を実行することを含む。
可能な一実施形態として、前述した、前記再生命令に応答して、前記ビデオ編集処理モードを第3の処理モードに切り替え、前記第1のスレッドにより、前記第3の処理モードに従って前記処理対象ビデオのビデオフレームに対して前記目標ビデオ編集操作を実行することは、
前記再生命令に応答して、予め設定された単一のビデオフレームに対して前記目標ビデオ編集操作を実行する処理時間長、再生速度、及び現在で前記目標ビデオ編集操作が実行されているビデオフレーム位置に基づいて、前記第3の処理モードに対応する切替位置を決定することと、
前記第1のスレッドにより、前記切替位置から、前記第3の処理モードに従って前記処理対象ビデオのビデオフレームに対して前記目標ビデオ編集操作を実行することとを含む。
可能な一実施形態として、前記方法は、
再生一時停止命令を取得することと、
前記再生一時停止命令に応答して、前記第2のスレッドによる前記目標ビデオフレームに対するレンダリングを一時停止し、且つ、前記第1のスレッドは、前記第3の処理モードに従って前記処理対象ビデオのビデオフレームに対して前記目標ビデオ編集操作を実行し続けることとをさらに含む。
可能な一実施形態として、前記方法は、
前記処理対象ビデオの最後のビデオフレームに対して前記目標ビデオ編集操作を実行した後、前記第1のスレッドにより、前記処理対象ビデオの先頭ビデオフレームの位置から、第4の処理モードに従って前記処理対象ビデオのビデオフレームに対して、前記目標ビデオ編集操作を実行することをさらに含み、
前記第4の処理モードは、前記処理対象ビデオにおける、相応な目標ビデオフレームが存在しないビデオフレームに対して前記目標ビデオ編集操作を順次実行するモードである。
第2の側面によれば、本開示は、
第1のスレッドにより、指定されたビデオフレーム位置から、処理対象ビデオにおける前記指定されたビデオフレーム位置のビデオフレームに対して目標ビデオ編集操作を実行し、前記指定されたビデオフレーム位置の後の各ビデオフレームに対して前記目標ビデオ編集操作を予め実行して、前記目標ビデオ編集操作を実行して得られた各目標ビデオフレームを取得するための第1の処理モジュールと、
再生命令に応答して、第2のスレッドにより、各前記目標ビデオフレームに対してレンダリングを行い、各前記目標ビデオフレームを提示するための第2の処理モジュールと、を含み、前記目標ビデオ編集操作が実行されているビデオフレーム位置は、提示されている前記目標ビデオフレームの、前記処理対象ビデオにおける対応するビデオフレーム位置よりも先行する、ビデオ処理装置を提供する。
第3の側面によれば、本開示は、メモリと、プロセッサとを含む電子機器であって、
前記メモリは、コンピュータプログラム命令を記憶するように構成され、
前記プロセッサは、前記コンピュータプログラム命令を実行して、前記電子機器に第1の側面のいずれか1項に記載のビデオ処理方法を実現させるように構成された、電子機器を提供する。
第4の側面によれば、本開示は、電子機器の少なくとも1つのプロセッサによって実行されると、前記電子機器に第1の側面のいずれか1項に記載のビデオ処理方法を実現させるコンピュータプログラム命令を含む、読み取り可能な記憶媒体を提供する。
第5の側面によれば、本開示は、コンピュータによって実行されると、前記コンピュータに第1の側面のいずれか1項に記載のビデオ処理方法を実現させるコンピュータプログラム製品を提供する。
本開示は、ビデオ処理方法、装置、電子機器及び読み取り可能な記憶媒体を提供し、該方法は、第1のスレッドにより、指定されたビデオフレーム位置から、処理対象ビデオに対して目標ビデオ編集操作を実行し、目標ビデオ編集操作を実行して得られた各目標ビデオフレームを取得することと、再生命令に応答して、第2のスレッドにより、各目標ビデオフレームに対してレンダリングを行い、各目標ビデオフレームを提示することと、を含む。
ここでの図面は、明細書に組み込まれ、本明細書の一部を構成し、本開示に適合する実施例を示しており、明細書とともに本開示の原理を説明するために用いられる。
本開示の実施例又は関連技術における技術案をより明確に説明するために、以下は、実施例又は関連技術の説明において使用される必要がある図面を簡単に説明する。自明なことに、当業者であれば、創造的な労力を払うことなく、それらの図面に基づき、他の図面を取得することもできる。
本開示の一実施例によるビデオ処理方法のフローチャートである。 本開示の別の実施例によるビデオ処理方法のフローチャートである。 本開示の別の実施例によるビデオ処理方法のフローチャートである。 本開示の別の実施例によるビデオ処理方法のフローチャートである。 本開示の別の実施例によるビデオ処理方法のフローチャートである。 本開示の別の実施例によるビデオ処理方法のフローチャートである。 本開示の別の実施例によるビデオ処理方法のフローチャートである。 本開示の別の実施例によるビデオ処理方法のフローチャートである。 本開示の別の実施例によるビデオ処理方法のフローチャートである。 本開示の一実施例によるビデオ処理装置のフレームワーク概略図である。 本開示の一実施例による、図10に示す実施例における各モジュールのライフサイクル概略図である。 本開示の一実施例によるビデオ処理装置の構成概略図である。 本開示の一実施例による電子機器の構成概略図である。
本開示の上記目的、特徴及び利点をより明確に理解できるように、以下は、本開示の方案についてさらに説明する。なお、矛盾しない限り、本開示の実施例及び実施例における特徴は、互いに組み合わせることができる。
本開示を十分に理解するために、以下の説明において、多くの具体的な詳細が説明されているが、本開示は、ここで説明されている形態と異なる他の形態で実施されてもよい。明らかに、明細書における実施例は、本開示の一部の実施例に過ぎず、全ての実施例ではない。
関連技術では、ストリーミング処理フレームワークを採用してインテリジェントマッティングを行うプロセスにおいて、ユーザがプレビュー再生を行うと、重大な表示フリーズという問題が発生しやすく、ユーザ体験に重大な影響を与える。
本開示によるビデオ処理方法は、ビデオ処理装置によって実行されることができ、ビデオ処理装置は、任意のソフトウェア及び/又はハードウェアにて実現され得る。例示的に、ビデオ処理装置は、タブレット、携帯電話(例えば、折り畳みスマホ、大画面スマホなど)、ウェアラブルデバイス、車載機器、拡張現実(augmented reality、AR)/仮想現実(virtual reality、VR)機器、ノートパソコン、ウルトラモバイルパソコン(ultra-mobile personal computer、UMPC)、ネットブック、パーソナルディジタルアシスタント(personal digital assistant、PDA)、スマートテレビ、スマートスクリーン、ハイビジョンテレビ、4Kテレビ、スマートスピーカ、スマートプロジェクターなどのモノのインターネット(the internet of things、IOT)機器であってもよく、本開示は、電子機器の具体的なタイプを何らか制限するものではない。
なお、本開示によるビデオ処理方法は、少なくとも、以下の特性を有するシナリオに適用可能である。
1、処理対象ビデオの各ビデオフレームに対してビデオ編集操作を行い、相応な目標ビデオフレーム(即ち、ビデオ編集処理結果)を生成して保存し、レンダリング表示に用いる必要がある。
2、ビデオ編集操作に時間がかかるが、より高いプレビュー再生効果を提供する必要がある。
3、ビデオ編集操作は、ユーザが入力した操作命令、例えば、ユーザが入力したジャンプ命令(seek命令と呼ばれてもよい)、更新命令(refresh命令と呼ばれてもよい)、再生命令、変速再生命令、再生一時停止命令などにリアルタイムで追従、整合する必要がある。
上記の特性を有するシナリオに対して、何れも本開示によるビデオ編集処理方法を採用してユーザのプレビュー効果を確保することができる。
本開示によるビデオ処理方法をより明確に説明するために、以下の実施例は、電子機器にビデオ編集アプリケーション(以下、アプリケーションと略称)がインストールされる場合を例にして、本開示によるビデオ処理方法を詳細に説明する。
図1は、本開示の一実施例によるビデオ処理方法のフローチャートである。図1に示すように、本実施例による方法は、以下のステップを含む。
S101:第1のスレッドにより、指定されたビデオフレーム位置から、処理対象ビデオにおける前記指定されたビデオフレーム位置のビデオフレームに対して目標ビデオ編集操作を実行し、前記指定されたビデオフレーム位置の後の各ビデオフレームに対して目標ビデオ編集操作を予め実行して、目標ビデオ編集操作を実行して得られた各目標ビデオフレームを取得する。
処理対象ビデオは、目標ビデオ編集操作を実行する必要がある素材である。本開示は、処理対象ビデオの時間長、記憶フォーマット、解像度、ビデオコンテンツ、及び取得方式などが限定されない。
第1のスレッドは、処理対象ビデオに対して目標ビデオ編集操作を実行するためのスレッドである。第1のスレッドは、アルゴリズムスレッドと呼ばれてもよい。アルゴリズムスレッドは、目標ビデオ編集操作に対応するアルゴリズムインスタンスを呼び出して、処理対象ビデオへの目標ビデオ編集操作の実行を実現することができる。また、本開示は、第1のスレッドを決定する方式を限定しない。
ここで、本開示は、目標ビデオ編集操作のタイプを限定しない。例示的に、目標ビデオ編集操作は、インテリジェントマッティング、ステッカー、フィルタの付加などを含んでもよいが、これらに限定されない。
指定されたビデオフレーム位置は、処理対象ビデオにおけるいずれか1つのビデオフレームの位置であってもよい。例示的に、指定されたビデオフレーム位置は、ビデオ編集命令を取得した時に位置決めされたビデオフレーム位置であってもよいし、ユーザがトリガ操作により指定されたビデオフレーム位置であってもよい。
ビデオ編集命令は、処理対象ビデオの各ビデオフレームに対して目標ビデオ編集操作を実行することを指示するためのものである。本開示は、ビデオ編集命令を取得する実装形態を限定しなく、例えば、ユーザは、アプリケーションから提供された相応なコントロールを操作することによってアプリケーションにビデオ編集命令を入力してもよい。
以下、異なるシナリオを例にして、本ステップの実装形態を例示的に説明する。
可能な一実施形態では、ユーザは、アプリケーションに表示される素材選択ページを介して、処理対象ビデオを選択し、アプリケーションに導入してビデオ編集を行ってもよい。アプリケーションは、ユーザインタフェースにビデオ編集ページを表示してもよい。ビデオ編集ページには、複数の異なるビデオ編集操作に対応するコントロールが含まれてもよく、その中には、目標ビデオ編集操作(例えば、インテリジェントマッティング)に対応する目標コントロールが含まれる。アプリケーションは、ユーザによる目標コントロールに対するトリガ操作(例えば、タップ操作)を受け付けると、処理対象ビデオの各ビデオフレームに対してインテリジェントマッティングを実行することを指示するビデオ編集命令を生成する。アプリケーションは、該ビデオ編集命令に応答して、指定されたビデオフレーム位置から処理対象ビデオに対して目標ビデオ編集操作を実行する。
このシナリオでは、処理対象ビデオを導入する時、アプリケーションは、デフォルトで予め設定されたビデオフレーム位置に位置決めしてもよい。後でユーザが何らかのトリガ操作を入力していないため、位置決めされたビデオフレーム位置も変化していなく、ビデオ編集命令を取得する時、位置決めされたビデオフレーム位置は、依然として上記のように予め設定されたビデオフレーム位置である。即ち、指定されたビデオフレーム位置は、予め設定されたビデオフレーム位置である。ここで、予め設定されたビデオフレーム位置は、処理対象ビデオのいずれか1つのビデオフレームの位置でもよい。例えば、予め設定されたビデオフレーム位置は、処理対象ビデオの先頭ビデオフレームの位置である。
別の可能な実施形態では、ユーザは、アプリケーションに表示される素材選択ページを介して、処理対象ビデオを選択し、アプリケーションに導入してビデオ編集を行ってもよい。アプリケーションは、ユーザインタフェースにビデオ編集ページを表示してもよい。ビデオ編集ページには、複数の異なるビデオ編集操作に対応するコントロールが含まれてもよく、その中には、目標ビデオ編集操作(例えば、インテリジェントマッティング)に対応する目標コントロールが含まれる。アプリケーションは、ユーザによる目標コントロールに対するトリガ操作(例えば、タップ操作)を受け付けると、処理対象ビデオの各ビデオフレームに対してインテリジェントマッティングを実行することを指示するビデオ編集命令を生成する。アプリケーションは、該ビデオ編集命令に応答して、指定されたビデオフレーム位置から処理対象ビデオに対して目標ビデオ編集操作を実行する。ここで、ユーザが目標コントロールに対するトリガ操作を入力する前に、第1のジャンプ命令を入力して、位置決めされた位置を、予め設定されたビデオフレーム位置から、第1のジャンプ命令により指示されたビデオフレーム位置にジャンプさせてもよい。
このシナリオでは、指定されたビデオフレーム位置は、第1のジャンプ命令により指示されたビデオフレーム位置である。なお、ユーザは、1つ又は複数の第1のジャンプ命令を入力してもよく、通常、最後のジャンプ命令により指示されたビデオフレーム位置を、指定されたビデオフレーム位置とする。
別の可能な実施形態では、上記の第1の可能な実施形態に基づいて、第1のスレッドは、既に予め設定されたビデオフレーム位置から目標ビデオ編集操作を実行して、目標ビデオ編集操作を実行している間に、ユーザは、第2のジャンプ命令を入力してもよい。すると、アプリケーションは、第2のジャンプ命令に応答して、第1のスレッドでは、第2のジャンプ命令により指示されたビデオフレーム位置から目標ビデオ編集操作を実行する必要がある。
このシナリオでは、指定されたビデオフレーム位置は、第2のジャンプ命令により指示されたビデオフレーム位置である。ここで、ユーザは、複数の第2のジャンプ命令を入力してもよい。第1のスレッドは、各第2のジャンプ命令にそれぞれ応答して、第2のジャンプ命令により指示されたビデオフレーム位置から目標ビデオ編集操作を実行する必要がある。
S102:再生命令に応答して、第2のスレッドにより、各前記目標ビデオフレームに対してレンダリングを行い、各前記目標ビデオフレームを提示する。前記目標ビデオ編集操作が実行されているビデオフレーム位置は、提示されている前記目標ビデオフレームの、前記処理対象ビデオにおける対応するビデオフレーム位置よりも先行する。
第1のスレッドでは、処理対象ビデオに対して目標ビデオ編集操作を実行している間に、アプリケーションは、ユーザが目標ビデオ編集操作を実行して得られた各目標ビデオフレームをプレビューすることをサポートする。即ち、アプリケーションは、ユーザが各目標ビデオフレームをプレビュー再生することをサポートする。
可能な一実施形態では、アプリケーションは、再生命令を受信すると、該再生命令に応答して、第2のスレッドにより、再生速度に応じて各目標ビデオフレームに対してレンダリングを行い、各目標ビデオフレームを再生する。
なお、第1のスレッドが処理対象ビデオに対して目標ビデオ編集操作を実行している間に、該指定されたビデオフレーム位置のビデオフレームに対して目標ビデオ編集操作を実行して、指定されたビデオフレーム位置に対応する目標ビデオフレームを得ると、第2のスレッドは、指定されたビデオフレーム位置に対応する目標ビデオフレームに対して自動的にレンダリングを行い、指定されたビデオフレーム位置に対応する目標ビデオフレームを提示してもよい。これにより、アプリケーションが再生命令を受信する前に、指定されたビデオフレーム位置に対応する処理効果をユーザがプレビューできることを確保する。
別の可能な実施形態では、第1のスレッドが処理対象ビデオに対して目標ビデオ編集操作を実行している間に、該指定されたビデオフレーム位置のビデオフレームに対して目標ビデオ編集操作を実行して、指定されたビデオフレーム位置に対応する目標ビデオフレームを得ると、第2のスレッドは、指定されたビデオフレーム位置から各目標ビデオフレームに対して自動的にレンダリングを行ってもよい。即ち、ユーザは再生命令をトリガする必要がない。
上記のいずれの形態を採用しても、本実施例による方法は、目標ビデオ編集操作が実行されているビデオフレーム位置が常に、提示されている目標ビデオフレームの処理対象ビデオにおける位置よりも先行することを確保することによって、プレビューのために目標ビデオ編集操作が実行された目標ビデオフレームがあることを確保する。従って、ユーザのプレビューがフリーズする問題を解決することができる。
本技術案をより明確にするために、一例によって、目標ビデオ編集操作が実行されているビデオフレーム位置が、提示されている目標ビデオフレームの処理対象ビデオにおける位置よりも先行することの意味について説明する。処理対象ビデオが100フレームあり、早い順に第1のフレームから第100のフレームであり、提示されているのが第20のフレームに対応する目標ビデオフレームであり、目標ビデオ編集操作が実行されているビデオフレーム位置が第30のフレームであると仮定すると、目標ビデオ編集操作が実行されているビデオフレーム位置が、提示されている目標ビデオフレームの処理対象ビデオにおける位置よりも先行することを示す。
本実施例による方法は、第1のスレッドにより、指定されたビデオフレーム位置から、処理対象ビデオに対して目標ビデオ編集操作を実行し、目標ビデオ編集操作を実行して得られた各目標ビデオフレームを取得し、再生命令に応答して、第2のスレッドにより、各目標ビデオフレームに対してレンダリングを行い、各目標ビデオフレームを提示する。本開示は、指定されたビデオフレーム位置の後の各ビデオフレームに対して目標ビデオ編集操作を予め実行することにより、目標ビデオ編集操作が実行されているビデオフレーム位置が常に提示されている目標ビデオフレームの処理対象ビデオにおけるビデオフレーム位置よりも先行することを確保する。それにより、処理対象ビデオに対して目標ビデオ編集操作を実行している間に、プレビューがフリーズする問題を解決し、ユーザのプレビューニーズを確保する。また、目標ビデオ編集操作の実行には時間がかかるため、アルゴリズム処理にかかる時間とレンダリングスレッドにかかる時間とが整合しないと、レンダリングスレッドがブロックされやすくなる。このため、本開示は、実行されているビデオ編集処理とレンダリングとを分離し、異なるスレッドにより実行することで、ストリーミングフレームワークにおいて目標ビデオ編集操作が実行されることに起因してレンダリングスレッドがブロックされる問題を解決し、プレビュー効果の向上に有利である。
図1に示す実施例に基づいて、本開示によるビデオ処理方法は、少なくとも以下の幾つかのビデオ編集処理モードを提供することができる。アプリケーションがビデオ編集命令を受信すると、予め設定されたポリシーに基づいて、第1のスレッドに対応するビデオ編集処理モードを決定してもよい。ここで、予め設定されたポリシーは、処理対象ビデオの現在のビデオフレーム位置、処理対象ビデオに対して目標ビデオ編集操作を実行する全体的な進捗、再生状態(再生一時停止状態又は再生状態)、及びユーザのトリガ操作など1つ又は複数の要因に関連してもよいが、これらに限らない。
ここで、アプリケーションは、少なくとも、第1の処理モード、第2の処理モード、第3の処理モード、及び第4の処理モードという4つのビデオ編集処理モードをサポートする。
ここで、第1の処理モードは、処理対象ビデオのキーフレームに対して目標ビデオ編集操作を実行するモードである。第1の処理モードは、前処理モード、アンカーモード又はancher modeなどの他の名称と呼ばれてもよい。
第2の処理モードは、フレーム毎に目標ビデオ編集操作を実行するモードである。第2の処理モードは、ジャンプ処理モード、seek modeなどの他の名称と呼ばれてもよい。
第3の処理モードは、再生進捗に基づいて、目標ビデオ編集操作を実行するビデオフレーム位置を決定するモードである。第3の処理モードは、再生処理モード、playback modeなどの他の名称と呼ばれてもよい。
第4の処理モードは、処理対象ビデオにおける、相応な目標ビデオフレームが存在しないビデオフレームに対して、目標ビデオ編集操作を順次実行するモードである。即ち、第4の処理モードは、処理対象ビデオの先頭ビデオフレームから最後のビデオフレームへの方向に従って、目標ビデオ編集操作が実行されていないビデオフレームに対して、目標ビデオ編集操作を順次実行するモードである。第4の処理モードは、自己拡張処理モード、adaptive modeなどの他の名称と呼ばれてもよい。
アプリケーションは、上記の予め設定されたポリシーに基づいて、異なるシナリオで第1のスレッドが目標ビデオ編集操作を実行することに対応するビデオ編集処理モードを決定することができる。
以下、幾つかの具体的な実施例によって、異なるシナリオにおいて、第1のスレッドがどのようなビデオ編集処理モードで処理対象ビデオに対して目標ビデオ編集操作を実行するかを詳細に説明する。
図2は、本開示の一実施例によるビデオ処理方法のフローチャートである。図2に示すように、本実施例による方法は、以下のステップを含む。
S201:指定されたビデオフレーム位置に基づいて、第1のスレッドに対応するビデオ編集処理モードを決定する。前記ビデオ編集処理モードは、第1の処理モード又は第2の処理モードである。
図1に示す実施例を参照して、指定されたビデオフレーム位置は、予め設定されたビデオフレーム位置であってもよいし、第1のジャンプ命令により指示されたビデオフレーム位置であってもよく、又は第2のジャンプ命令により指示されたビデオフレーム位置であってもよい。第1のスレッドに対応するビデオ編集処理モードは、場合によって異なる。
ここで、第1の処理モードは、キーフレーム(即ち、Iフレーム)に対して目標ビデオ編集操作を実行するモードである。Iフレーム(I frame)は、内部画面(intra picture)とも呼ばれ、フレーム内圧縮符号化における重要なフレームである。符号化している間に、一部のビデオフレーム系列がIフレームに圧縮され、一部がPフレームに圧縮され、さらに一部がBフレームに圧縮される。復号化する際、Iフレームのデータのみに基づいて全体画像を再構築することができ、他のビデオフレームのデータを参照する必要がない。
第2の処理モードは、フレーム毎に処理対象ビデオに対して目標ビデオ編集操作を実行するモードである。ここで、第2の処理モードは、本開示による、ユーザが入力したseek命令に応答するためのビデオ編集処理モードである。
可能な一実施形態では、指定されたビデオフレーム位置が予め設定されたビデオフレーム位置(例えば、処理対象ビデオの先頭ビデオフレームの位置)である場合、第1のスレッドに対応するビデオ編集処理モードを第1の処理モードとして決定する。
処理対象ビデオのキーフレームに対して目標ビデオ編集操作を実行することにより、ユーザがエフェクト処理結果をプレビューする場合、キーフレームに対応する目標ビデオフレームから全体画像を再構築できるので、ユーザが実行するプレビュー効果を良好に確保することができる。
別の可能な実施形態では、指定されたビデオフレーム位置がジャンプ命令により指示されたビデオフレーム位置である場合、第1のスレッドに対応するビデオ編集処理モードは、第1の処理モード又は第2の処理モードである。例示的に、指定されたビデオフレーム位置が第1のジャンプ命令により指示されたビデオフレーム位置である場合、第1のスレッドに対応するビデオ編集処理モードは、第1の処理モード又は第2の処理モードであってもよい。指定されたビデオフレーム位置が第1のジャンプ命令により指示されたビデオフレーム位置である場合、第1のスレッドに対応するビデオ編集処理モードは、第2の処理モードであってもよい。
S202:第1のスレッドにより、決定されたビデオ編集処理モードに従って、指定されたビデオフレーム位置から、処理対象ビデオにおける前記指定されたビデオフレーム位置のビデオフレームに対して目標ビデオ編集操作を実行し、前記指定されたビデオフレーム位置の後の各ビデオフレームに対して前記目標ビデオ編集操作を予め実行して、前記目標ビデオ編集操作を実行して得られた各目標ビデオフレームを取得する。
決定されたビデオ編集処理モードが第1の処理モードである場合、アプリケーションは、指定されたビデオフレーム位置から、処理対象ビデオにおける各キーフレームに対して目標ビデオ編集操作を順次実行し、各キーフレームに対して目標ビデオ編集操作を実行して得られた目標ビデオフレームを記憶する。
決定されたビデオ編集処理モードが第2の処理モードである場合、アプリケーションは、指定されたビデオフレーム位置から、フレーム毎に処理対象ビデオに対して目標ビデオ編集操作を実行し、各ビデオフレームに対して目標ビデオ編集操作を実行して得られた目標ビデオフレームを記憶する。
S203:再生命令に応答して、第2のスレッドにより、各前記目標ビデオフレームに対してレンダリングを行い、各前記目標ビデオフレームを提示する。前記目標ビデオ編集操作が実行されているビデオフレーム位置は、提示されている前記目標ビデオフレームの、前記処理対象ビデオにおける対応するビデオフレーム位置よりも先行する。
本実施例におけるステップS203は、図1に示す実施例におけるステップS102と類似しており、図1に示す実施例の詳細な説明を参照すればよく、簡明のため、ここではこれ以上説明しない。
本実施例による方法は、ビデオ編集シナリオにおいて、指定されたビデオフレーム位置を取得、分析することにより、第1のスレッドに対応するビデオ編集処理モードを決定し、決定されたビデオ編集処理モードに従って処理対象ビデオにおける相応なビデオフレームに対して目標ビデオ編集操作を実行することで、目標ビデオ編集操作が実行されているビデオフレーム位置が常に提示されている目標ビデオフレームの処理対象ビデオにおけるビデオフレーム位置よりも先行することを確保する。それにより、処理対象ビデオに対して目標ビデオ編集操作を実行している間に、プレビューがフリーズする問題を解決し、ユーザのプレビューニーズを確保する。また、目標ビデオ編集操作の実行には時間がかかるため、アルゴリズム処理にかかる時間とレンダリングスレッドにかかる時間とが整合しないと、レンダリングスレッドがブロックされやすくなる。このため、本開示は、実行されているビデオ編集処理とレンダリングとを分離し、異なるスレッドにより実行することで、ストリーミングフレームワークにおいて目標ビデオ編集操作が実行されることに起因してレンダリングスレッドがブロックされる問題を解決し、プレビュー効果の向上に有利である。
図3は、本開示の別の実施例によるビデオ処理方法のフローチャートである。図3に示すように、本実施例の方法は、以下のステップを含む。
図2に示す実施例に基づいて、図2に示す実施例におけるS201は、本実施例におけるS301~S306によって実現され得る。
S301:指定されたビデオフレーム位置において相応な目標ビデオフレームが存在するか否かを決定する。
指定されたビデオフレーム位置において相応な目標ビデオフレームが存在しない場合、S302を実行する。指定されたビデオフレーム位置において相応な目標ビデオフレームが存在する場合、S303を実行する。
S302:指定されたビデオフレーム位置に基づいて、第1のスレッドに対応するビデオ編集処理モードを決定する。
ここで、第1のスレッドに対応するビデオ編集処理モードを決定した後、S305を実行する。
S303:現在の第1のスレッドが処理対象ビデオに対して目標ビデオ編集操作を実行するか否かを決定する。
現在の第1のスレッドが処理対象ビデオに対して目標ビデオ編集操作を実行していない場合、S304とS305を実行する。第1のスレッドが処理対象ビデオに対して目標ビデオ編集操作を実行している場合、S306を実行する。
S304:ビデオ編集処理モードを第2の処理モードとして決定する。
S305:第1のスレッドにより、決定されたビデオ編集処理モードに従って、処理対象ビデオに対して目標ビデオ編集操作を実行し、目標ビデオ編集操作を実行して得られた各目標ビデオフレームを取得する。
S306:第1のスレッドにより、処理対象ビデオに対して目標ビデオ編集操作を実行し続ける。
実際のシナリオでは、第1のスレッドが1つのビデオ編集処理モードに従って目標ビデオ編集操作を実行し始めるか、又は、ビデオ編集処理モードを切り替える際に、いずれもデコーダを更新する必要があり、デコーダの更新に多くの計算リソースが必要である。このため、本実施例による方法は、指定されたビデオフレーム位置において対応する目標ビデオフレームが存在するか否か、及び現在で処理対象ビデオに対して目標ビデオ編集操作を実行しているプロセスが存在するか否か(即ち、現在の第1のスレッドが処理対象ビデオに対して目標ビデオ編集操作を実行しているか否か)を分析することにより、ビデオ編集処理モードを切り替えるか否かを決定することで、デコーダの頻繁な更新に伴う計算リソースの浪費を減し、さらに目標ビデオ編集操作を実行する処理効率を向上させる。
ここで、指定されたビデオフレーム位置において相応な目標ビデオフレームが存在するか否かを分析するのは、その前に処理対象ビデオに対して既に目標ビデオ編集操作が実行された場合があるため、処理対象ビデオにおける一部のビデオフレーム又は全部のビデオフレームにおいて相応な目標ビデオフレームが存在する場合があるからである。目標ビデオ編集操作がインテリジェントマッティングである場合を例にして、ユーザが処理対象ビデオを導入した後、インテリジェントマッティングに対応するコントロールを操作することによって、ビデオ編集命令を生成すると仮定すると、アプリケーションは、ビデオ編集命令に従って処理対象ビデオに対してインテリジェントマッティングを行う。インテリジェントマッティングが完全に完了していない場合、ユーザは、取消命令を入力して、処理対象ビデオに対するインテリジェントマッティングを取り消す。インテリジェントマッティングを取り消す時、処理対象ビデオに対するインテリジェントマッティングが完全に完了していないので、一部のビデオフレームには相応な目標ビデオフレーム(即ち、マッティング結果)が存在する。
1つの可能な場合において、指定されたビデオフレーム位置において相応な目標ビデオフレームが存在しない場合、現在の第1のスレッドが処理対象ビデオに対して目標ビデオ編集操作を実行しているか否かに関わらず、指定されたビデオフレーム位置に基づいて、第1のスレッドに対応するビデオ編集処理モードを決定する必要があり、第1のスレッドは、決定されたビデオ編集処理モードに従って、指定されたビデオフレーム位置から処理対象ビデオに対して目標ビデオ編集操作を実行する。
ここで、指定されたビデオフレーム位置に基づいて、第1のスレッドに対応するビデオ編集処理モードを決定する実装形態は、前述した内容を参照すればよく、ここではこれ以上説明しない。
別の可能な場合では、指定されたビデオフレーム位置において相応な目標ビデオフレームが存在し、且つ現在で処理対象ビデオに対して目標エフェクトを実行しているプロセスが存在しない場合、ビデオ符号化はビデオフレームの早い順に実行されるので、相応な目標ビデオフレームが存在しない最初のビデオフレーム位置が決定されるまで、指定されたビデオフレーム位置の次のフレームから、フレーム毎に相応な目標ビデオフレームが存在するか否かを決定し、第1のスレッドにより、第1の処理モード又は第2の処理モードに従って、相応な目標ビデオフレームが存在しない最初のビデオフレーム位置から処理対象ビデオに対して目標ビデオ編集操作を実行することができる。
このシナリオでは、第1のスレッドが第1の処理モードを採用するか、又は第2の処理モードを採用するかは、指定されたビデオフレーム位置が予め設定されたビデオフレーム位置であるか、又は第1のジャンプ命令により指示されたビデオフレーム位置であるかに応じて決定されてもよい。
別の可能な場合では、指定されたビデオフレーム位置において相応な目標ビデオフレームが存在し、且つ現在で処理対象ビデオに対して目標エフェクトを実行しているプロセスが存在すると仮定すると、そのプロセスを実行し続けることができる。これにより、デコーダの更新が不要となり、エフェクト処理モードの切り替えに起因するデコーダの更新に伴うリソース消費を減すことができる。例えば、上記指定されたビデオフレーム位置が第2のジャンプ命令により指示されたビデオフレーム位置である場合、第1のスレッドは、1つのビデオ編集処理モードに従って処理対象ビデオに対して目標ビデオ編集操作を実行しており、第2のジャンプ命令により指示されたビデオフレーム位置において相応な目標ビデオフレームが存在する可能性があるため、ビデオ編集処理モードを切り替える必要がなく、即ち、第1のスレッドを中断しない。
ここで、指定されたビデオフレーム位置が予め設定されたビデオフレーム位置又は第1のジャンプ命令により指示されたビデオフレーム位置である場合、ビデオ編集処理モードの決定は、前述した方式を参照して実現することができる。指定されたビデオフレーム位置が第2のジャンプ命令により指示されたビデオフレーム位置である場合、ビデオ編集処理モードを第2の処理モードとして決定することができる。
S307:再生命令に応答して、第2のスレッドにより、各前記目標ビデオフレームに対してレンダリングを行い、各前記目標ビデオフレームを提示する。前記目標ビデオ編集操作が実行されているビデオフレーム位置は、提示されている前記目標ビデオフレームの、前記処理対象ビデオにおける対応するビデオフレーム位置よりも先行する。
S305又はS306に基づき、第1のスレッドが処理対象ビデオに対して目標ビデオ編集操作を実行している間に、アプリケーションは、再生命令に応答して、第2のスレッドにより再生を行うことができる。具体的に、本実施例におけるステップS307は、図2に示す実施例におけるステップS203と類似しており、図2に示す実施例の詳細な説明を参照すればよく、簡明のため、ここではこれ以上説明しない。
本実施例による方法は、ビデオ編集シナリオにおいて、指定されたビデオフレーム位置において対応する目標ビデオフレームが存在するか否か、及び現在で処理対象ビデオに対して目標ビデオ編集操作を実行しているプロセスが存在するか否かを分析することにより、ビデオ編集処理モードを切り替えるか否かを決定することで、ユーザのプレビューニーズを満たすことを実現し、ユーザのプレビューがフリーズする問題を解決できるだけでなく、デコーダの頻繁な更新に伴うリソースの浪費を減し、目標ビデオ編集を実行する処理効率を向上させた。
図4は、本開示の別の実施例によるビデオ処理方法のフローチャートである。図4に示すように、本実施例による方法は、以下のステップを含む。
S401:第1のスレッドにより、指定されたビデオフレーム位置から、処理対象ビデオにおける前記指定されたビデオフレーム位置のビデオフレームに対して目標ビデオ編集操作を実行し、前記指定されたビデオフレーム位置の後の各ビデオフレームに対して目標ビデオ編集操作を予め実行して、目標ビデオ編集操作を実行して得られた各目標ビデオフレームを取得する。
S402:再生命令に応答して、第2のスレッドにより、各前記目標ビデオフレームに対してレンダリングを行い、各前記目標ビデオフレームを提示する。前記目標ビデオ編集操作が実行されているビデオフレーム位置は、提示されている前記目標ビデオフレームの、前記処理対象ビデオにおける対応するビデオフレーム位置よりも先行する。
本実施例におけるステップS401、S402は、それぞれ図1に示す実施例におけるステップS101、S102と類似しており、図1に示す実施例の詳細な説明を参照すればよく、簡明のため、ここではこれ以上説明しない。
S403:前記再生命令に応答して、ビデオ編集処理モードを第3の処理モードに切り替え、第1のスレッドにより、第3の処理モードに従って前記処理対象ビデオに対して目標ビデオ編集操作を実行する。
第3の処理モードは、プレビュー再生速度に応じて、目標エフェクトを実行するビデオフレーム位置を決定するモードである。
例示的に、処理対象ビデオに100フレームがあると仮定すると、ステップS401~S402では、決定されたビデオ編集処理モードに従って第1~第10のビデオフレームに対して既に目標ビデオ編集操作が実行され、相応な目標ビデオフレームが得られた。アプリケーションが再生命令を受信すると、第2のスレッドは、第1から第10のビデオフレームに対応する目標ビデオフレームに対してレンダリングを順次行い、設定された再生速度に応じて、第1から第10のビデオフレームにそれぞれ対応する目標ビデオフレームを再生する。現在第10のフレームまで再生されたと仮定すると、再生しようとする次のビデオフレーム(即ち、第11のフレーム)において対応する目標ビデオフレームが存在しないことを検出した。目標ビデオ編集操作の実行にかかる時間が再生速度より大きくなる場合、ビデオフレームの早い順に第11のビデオフレームに対して目標ビデオ編集操作を実行すると、再生ニーズを満たすことができず、必然的に再生のフリーズが重大になり、さらに画面が崩れるなどの問題が生じる。このため、ビデオ編集処理モードを第3の処理モードに切り替えて、第1のスレッドが、再生速度に応じて、目標ビデオ編集操作を実行するビデオフレーム位置を決定することにより、目標ビデオ編集操作が実行されているビデオフレーム位置が常に、提示されている目標ビデオフレームの処理対象ビデオにおける対応するビデオフレーム位置よりも先行することを確保し、プレビュー再生進捗よりも先行するビデオフレームに対して目標ビデオ編集操作を行うことで、プレビュー再生ニーズを満たし、プレビュー再生のフリーズが重大になり、画面が崩れるなどの問題を解決する。
なお、ビデオ編集処理モードが第3の処理モードである場合、プレビュー再生速度、予め設定された単一のビデオフレームに対して目標ビデオ編集操作を実行する処理時間長(即ち、目標ビデオ編集操作にかかる平均時間)、現在で目標ビデオ編集操作が実行されているビデオフレーム位置、既に目標ビデオ編集操作が実行されたビデオフレームなどの1つ又は複数の要因と合わせて、再生進捗よりも先行するどのビデオフレームに対して目標ビデオ編集操作を実行するかを動的に決定してもよい。
引き続き前の段落の例を参照して、例えば、第3の処理モードに従って、第1のスレッドにより第15のビデオフレームに対して目標ビデオ編集操作を実行すると決定したが、第15のフレームに対して既に目標エフェクトが実行された場合、ビデオフレームの早い順に第16のビデオフレームに対して目標ビデオ編集操作を実行してもよい(もちろん、第16のフレームに限らず、第15のフレームから一定間隔を有する後の他のビデオフレーム、例えば、第18のフレームであってもよい)。第16のビデオフレームにおいて相応な目標ビデオフレームが存在しないと決定した場合、第16のビデオフレームに対して目標ビデオ編集操作を実行する。第16のビデオフレームに対して目標ビデオ編集操作を実行した後、引き続き第3の処理モードに従って目標ビデオ編集操作を実行しようとするビデオフレーム位置を柔軟に決定する。
第3の処理モードに関する上記の説明及び例から分かるように、第3の処理モードは、再生命令に応答したビデオ編集処理モードである。目標ビデオフレームを再生している間に、第3の処理モードにより、目標ビデオ編集操作が実行されているビデオフレーム位置が常に、再生されている目標ビデオフレームの処理対象ビデオにおける対応するビデオフレーム位置よりも先行し、即ち、再生進捗よりも先行することを確保することができる。
本実施例では、ビデオ編集処理モードを第3の処理モードに切り替え、以下の1つ又は複数の要因で切替タイミングを決定してもよい。
1、ユーザ操作のランダム性であり、例えば、ユーザは、再生命令や再生一時停止命令を連続して入力する可能性がある。2、現在では、処理対象ビデオに対して目標ビデオ編集操作を実行しているプロセスが存在するか否か。3、目標ビデオ編集操作を実行して得られた目標ビデオフレーム。
上記の要因の影響を例示的に説明する。
処理対象ビデオに100フレームがあると仮定すると、ステップS401~S402では、決定されたビデオ編集処理モードに従って第1~第10のビデオフレームに対して既に目標ビデオ編集操作が実行され、第1~第10のビデオフレームにそれぞれ対応する目標ビデオフレームが得られた。
ケース(1):アプリケーションが再生命令を受信し、デコーダを更新し、直ちにビデオ編集処理モードを第3の処理モードに切り替え、且つ第1のフレームの位置から目標ビデオフレームを再生すると仮定する。次に、アプリケーションは、再生一時停止命令を受信する。再生命令と再生一時停止命令という2つの命令の間隔時間が短いため、第2のスレッドは、第10のフレームまでレンダリングされていない可能性がある。現在のビデオ編集処理モードのプロセスを中断し、即ち、第1のスレッドを中断し、デコーダを再更新し、ビデオ編集処理モードを切り替えると、計算リソースの消費が大きくなるため、ビデオ処理効率が低下する。
ケース(2):再生している間に、再生しようとする次のビデオフレーム位置において、相応な目標ビデオフレームが存在するか否かをリアルタイムで検出する。再生しようとする次のビデオフレーム位置において、相応な目標ビデオフレームが存在しないと決定した後、ビデオ編集処理モードを切り替える場合、第1のフレームから第10のフレームまで再生している間に、引き続き元のビデオ編集処理モードに従って処理対象ビデオに対して目標ビデオ編集操作を実行することができ、即ち、現在で目標ビデオ編集操作を実行しているプロセスを中断せず、計算リソースの利用率を向上させることができる。
さらに、ケース(2)に基づいて、アプリケーションが再生一時停止命令を受信すると、再生進捗が目標ビデオ編集操作の進捗に達していない。例えば、第8のフレームまで再生する時、アプリケーションが再生一時停止命令を受信する場合、第1のフレームから第8のフレームまで再生している間に、アプリケーションも、元のビデオ編集処理モードに従って第11のフレーム及び第12のフレームに対して目標ビデオ編集操作を実行した。
上記のケース(2)では、アプリケーションが再生命令と再生一時停止命令を受信したが、再生しようとするこの部分には相応な目標ビデオフレームが存在するため、第1のスレッドに対応するビデオ編集処理モードを切り替える必要がなく、同様に再生のスムーズさを確保でき、これにより、ビデオ編集処理モードを切り替えることによる計算リソースの大きな消費を減すこともできる。一方、再生している間に、第1のスレッドは、元のビデオ編集処理モードに従って一部のビデオフレームに対しても目標ビデオ編集操作を実行したので、ビデオ処理効率を向上させた。
上記の説明から明らかなように、本ステップにおいて、アプリケーションは、再生命令に応答して、上記1つ又は複数の要因に基づいて、ビデオ編集処理モードの切替タイミングを決定してもよい。
本実施例による方法は、第1のスレッドにより、処理対象ビデオに対して目標ビデオ編集操作を実行している間に、再生命令を受信し、該再生命令に応答して、ビデオ編集処理モードを第3の処理モードに切り替えて、処理対象ビデオのビデオフレームに対して目標ビデオ編集操作を実行することができ、第3の処理モードにより、再生している間に目標ビデオ編集操作が実行されているビデオフレーム位置が常に再生進捗よりも先行することを確保できる。これにより、ユーザのプレビュー再生のフリーズが重大になり、画面が崩れるなどの問題を解決し、ビデオ処理効率を向上させ、ユーザ体験の向上に有利である。
選択的に、図4に示す実施例に基づいて、以下のステップをさらに含む。
S404:再生一時停止命令を受信する。
S405:再生一時停止命令に応答して、第2のスレッドは、再生を一時停止し、且つ、第1のスレッドは、第3の処理モードに従って前記処理対象ビデオのビデオフレームに対して目標ビデオ編集操作を実行し続ける。
具体的に、アプリケーションが再生一時停止命令を受信すると、第2のスレッドは、目標ビデオフレームのレンダリングを停止し、即ち、目標ビデオフレームの再生を一時停止する。
再生一時停止命令を受信する時、処理対象ビデオに対して目標エフェクトを実行しているプロセスが存在するため、該プロセスを中断しなくてもよい。即ち、第1のスレッドは、処理対象ビデオに対して目標ビデオ編集操作を実行し続ける。つまり、第3の処理モードに従って処理対象ビデオのビデオフレームに対して目標ビデオ編集操作を実行し続ける。このように、電子機器の計算リソースを有効に利用してビデオ編集を実行することができ、計算リソースの利用率を向上させた。それにより、ビデオ処理効率を向上させた。
以下、図5~図7に示す実施例によって、ステップS403に対応する幾つかの可能な実装形態を説明する。
図5は、本開示の別の実施例によるビデオ処理方法のフローチャートである。図5に示すように、本実施例の方法は、以下のステップを含む。
S501:第1のスレッドにより、指定されたビデオフレーム位置から、処理対象ビデオにおける前記指定されたビデオフレーム位置のビデオフレームに対して目標ビデオ編集操作を実行し、前記指定されたビデオフレーム位置の後の各ビデオフレームに対して目標ビデオ編集操作を予め実行して、目標ビデオ編集操作を実行して得られた各目標ビデオフレームを取得する。
S502:再生命令に応答して、第2のスレッドにより、各前記目標ビデオフレームに対してレンダリングを行い、各前記目標ビデオフレームを提示する。前記目標ビデオ編集操作が実行されているビデオフレーム位置は、提示されている前記目標ビデオフレームの、前記処理対象ビデオにおける対応するビデオフレーム位置よりも先行する。
本実施例におけるステップS501、S502は、それぞれ図4に示す実施例におけるステップS401、S402と類似しており、図4に示す実施例の詳細な説明を参照すればよく、簡明のため、ここではこれ以上説明しない。
S503:再生命令に応答して、プレビュー再生命令を取得した時に目標ビデオ編集操作が実行されているビデオフレーム位置から、第3の処理モードに従って処理対象ビデオのビデオフレームに対して目標ビデオ編集操作を実行する。
本ステップにおいて、再生命令を取得する時、第1のスレッドは、あるビデオフレームに対して目標ビデオ編集操作を実行している可能性がある。このような場合、ビデオ編集処理モードを切り替えるビデオフレームの位置は、目標ビデオ編集操作が実行されているビデオフレーム位置である。アプリケーションは、あるビデオフレームに対して目標ビデオ編集操作を行った直後であるが、次のビデオフレームに対しては目標ビデオ編集操作の実行を開始していない場合もある。このような場合、ビデオ編集処理モードを切り替えるビデオフレームの位置は、目標ビデオ編集操作を実行しようとする次のビデオフレームの位置である。
ここで、アプリケーションが再生命令を取得すると、直ちに第1のスレッドに対応するビデオ編集処理モードを第3の処理モードに切り替え、ビデオ編集処理モードを切り替えると決定されたビデオフレームの位置から、第3の処理モードに従って処理対象ビデオのビデオフレームに対して、目標ビデオ編集操作を実行してもよい。
なお、S502とS503の実行順序は先後を問わない。
本実施例による方法は、処理対象ビデオに対して目標ビデオ編集操作を実行している間に、再生命令を取得し、再生命令に応答して、第1のスレッドにより、再生命令を取得した時に目標ビデオ編集操作が実行されているビデオフレーム位置から、第3の処理モードに従って処理対象ビデオのビデオフレームに対して目標ビデオ編集操作を実行する。本実施例による実装形態は、ロジックが簡単であり、複雑な判断を必要としない。また、第3の処理モードにより、再生している間に目標ビデオ編集操作が実行されているビデオフレーム位置が常に再生進捗よりも先行することを確保できる。それにより、ユーザが実行するプレビュー再生のフリーズは重大になり、画面が崩れるなどの問題を解決し、ビデオ処理効率を向上させ、ユーザ体験の向上に有利である。
選択的に、図5に示す実施例に基づいて、以下のステップをさらに含む。
S504:再生一時停止命令を取得する。
S505:再生一時停止命令に応答して、第2のスレッドは、再生を一時停止し、且つ、第1のスレッドは、第3の処理モードに従って前記処理対象ビデオのビデオフレームに対して目標ビデオ編集操作を実行し続ける。
具体的に、アプリケーションが再生一時停止命令を受信すると、第2のスレッドは、目標ビデオフレームのレンダリングを停止し、即ち、目標ビデオフレームの再生を一時停止する。
再生一時停止命令を受信する時、処理対象ビデオに対して目標エフェクトを実行しているプロセスが存在するため、該プロセスを中断しなくてもよい。即ち、第1のスレッドは、処理対象ビデオに対して目標ビデオ編集操作を実行し続ける。つまり、第3の処理モードに従って処理対象ビデオのビデオフレームに対して目標ビデオ編集操作を実行し続ける。このように、電子機器の計算リソースを有効に利用してビデオ編集を実行することができ、計算リソースの利用率を向上させた。それにより、ビデオ処理効率を向上させた。
図6は、本開示の別の実施例によるビデオ処理方法のフローチャートである。図6に示すように、本実施例による方法は、以下のステップを含む。
S601:第1のスレッドにより、指定されたビデオフレーム位置から、処理対象ビデオにおける前記指定されたビデオフレーム位置のビデオフレームに対して目標ビデオ編集操作を実行し、前記指定されたビデオフレーム位置の後の各ビデオフレームに対して目標ビデオ編集操作を予め実行して、目標ビデオ編集操作を実行して得られた各目標ビデオフレームを取得する。
S602:再生命令に応答して、第2のスレッドにより、各前記目標ビデオフレームに対してレンダリングを行い、各前記目標ビデオフレームを提示する。前記目標ビデオ編集操作が実行されているビデオフレーム位置は、提示されている前記目標ビデオフレームの、前記処理対象ビデオにおける対応するビデオフレーム位置よりも先行する。
本実施例におけるステップS601、S602は、それぞれ図4に示す実施例におけるステップS401、S402と類似しており、図4に示す実施例の詳細な説明を参照すればよく、簡明のため、ここではこれ以上説明しない。
S603:再生命令に応答して、予め設定された単一のビデオフレームに対して目標ビデオ編集操作を実行する処理時間長、再生速度、及び現在で目標ビデオ編集操作が実行されているビデオフレーム位置に基づいて、第3の処理モードに対応する切替位置を決定する。
例示的に、現在で目標ビデオ編集操作が実行されているビデオフレームの位置と再生速度とに基づいて、現在のビデオ編集処理モードが継続的に実行され得る最大時間長を決定してもよい。そして、決定された最大時間長と、予め設定された単一のビデオフレームに対して目標ビデオ編集操作が実行される処理時間長とに基づいて、最大時間長内に、現在のビデオ編集処理モードで処理可能なビデオフレームの数Sを決定する。次に、現在で目標ビデオ編集操作が実行されているビデオフレーム位置から連続するS個のビデオフレームの中から、ビデオ編集処理モードの切替位置を決定する。ここで、ビデオ編集処理モードの切替位置は、現在で目標ビデオ編集操作が実行されているビデオフレーム位置から連続するS個のビデオフレームのうちのいずれか1つのビデオフレームであってもよい。
幾つかの可能な実装形態では、ビデオ編集処理モードの切替にエラーが生じること、例えば、切替タイミングが遅すぎて、目標ビデオ編集操作の処理進捗がレンダリング進捗を満たさないことを減すために、連続するS個のビデオフレームのうち、現在で目標ビデオ編集操作が実行されているビデオフレームに近いビデオフレームを切替位置として設定してもよい。
理解すべきであることは、上記最大時間長を決定する際に、現在で目標ビデオ編集操作が実行されているビデオフレームに対する目標ビデオ編集操作が完了していないので、現在で目標ビデオ編集操作が実行されているビデオフレームの1つ前のフレームから最大時間長を算出してもよい。これにより、計算結果の精度を向上させた。
なお、S602とS603の実行順序は先後を問わない。
S604:第1のスレッドにより、切替位置から、第3の処理モードに従って処理対象ビデオのビデオフレームに対して、前記目標ビデオ編集操作を実行する。
ここで、第3の処理モードの詳細については、図4に示す実施例における説明を参照すればよい。簡明のため、ここではこれ以上説明しない。
本実施例による方法は、処理対象ビデオに対して目標ビデオ編集操作を実行している間に、再生命令を取得する。再生命令に応答して、単一のビデオフレームに対して目標ビデオ編集操作を実行するために要する時間長、再生速度、及び現在で目標ビデオ編集操作が実行されているビデオフレーム位置に基づいて、ビデオ編集処理モードの切替位置を柔軟に決定する。目標ビデオ編集操作の進捗が切替位置に達したら、ビデオ編集処理モードを第3の処理モードに切り替え、ビデオ編集処理モードの切替の柔軟性を向上させた。また、第3の処理モードにより、再生している間に目標ビデオ編集操作が実行されているビデオフレーム位置が常に再生進捗よりも先行することを確保できる。それにより、ユーザが実行するプレビュー再生のフリーズは重大になり、画面が崩れるなどの問題を解決し、ビデオ処理効率を向上させ、ユーザ体験の向上に有利である。
選択的に、図6に示す実施例に基づいて、以下のステップをさらに含む。
S605:再生一時停止命令を取得する。
S606:再生一時停止命令に応答して、第2のスレッドは、再生を一時停止し、且つ、第1のスレッドは、第3の処理モードに従って前記処理対象ビデオのビデオフレームに対して目標ビデオ編集操作を実行し続ける。
具体的に、アプリケーションが再生一時停止命令を受信すると、第2のスレッドは、目標ビデオフレームのレンダリングを停止し、即ち、目標ビデオフレームの再生を一時停止する。
再生一時停止命令を受信する時、処理対象ビデオに対して目標エフェクトを実行しているプロセスが存在するため、該プロセスを中断しなくてもよい。即ち、第1のスレッドは、処理対象ビデオに対して目標ビデオ編集操作を実行し続ける。つまり、第3の処理モードに従って処理対象ビデオのビデオフレームに対して目標ビデオ編集操作を実行し続ける。このように、電子機器の計算リソースを有効に利用してビデオ編集を実行することができ、計算リソースの利用率を向上させた。それにより、ビデオ処理効率を向上させた。
図7は、本開示の別の実施例によるビデオ処理方法のフローチャートである。図7に示すように、本実施例による方法は、以下のステップを含む。
S701:第1のスレッドにより、指定されたビデオフレーム位置から、処理対象ビデオにおける前記指定されたビデオフレーム位置のビデオフレームに対して目標ビデオ編集操作を実行し、前記指定されたビデオフレーム位置の後の各ビデオフレームに対して目標ビデオ編集操作を予め実行して、目標ビデオ編集操作を実行して得られた各目標ビデオフレームを取得する。
S702:再生命令に応答して、第2のスレッドにより、各前記目標ビデオフレームに対してレンダリングを行い、各前記目標ビデオフレームを提示する。前記目標ビデオ編集操作が実行されているビデオフレーム位置は、提示されている前記目標ビデオフレームの、前記処理対象ビデオにおける対応するビデオフレーム位置よりも先行する。
本実施例におけるステップS701、S702は、それぞれ図4に示す実施例におけるステップS401、S402と類似しており、図4に示す実施例の詳細な説明を参照すればよく、簡明のため、ここではこれ以上説明しない。
S703:再生命令に応答して、再生しようとする次のビデオフレームにおいて相応な目標ビデオフレームが存在するか否かをリアルタイムで検出する。
再生しようとする次のビデオフレームにおいて相応な目標ビデオフレームが存在しないことを検出すると、S704を実行する。
なお、S702とS703の実行順序は先後を問わない。
S704:前記第1のスレッドにより、前記再生しようとする次の目標ビデオフレームの位置から、第3の処理モードに従って処理対象ビデオのビデオフレームに対して目標ビデオ編集操作を実行する。
なお、再生しようとする次の目標ビデオフレームの位置から、第3の処理モードに従って目標ビデオ編集操作を実行することは、目標ビデオ編集操作を実行しようとする次のビデオフレームが、再生しようとする次のビデオフレーム位置に対応するビデオフレームであることを意味するものではない。例えば、再生しようとする次のビデオフレームが処理対象ビデオフレームの第10のフレームであるが、第10のフレームにおいて相応な目標ビデオフレームが存在しない場合、第1のスレッドは、第10のフレームから、第3の処理モードに従って目標ビデオ編集操作を実行する。しかし、目標ビデオ編集操作を実行しようとする決定されたビデオフレーム位置は、処理対象ビデオにおける第13のフレーム、第15のフレームなどである可能性がある。これにより、目標ビデオ編集操作が実行されているビデオフレーム位置が再生進捗よりも先行することを確保する。
本実施例では、処理対象ビデオに対して目標ビデオ編集操作を実行している間に、再生命令を受信する。プレビュー再生命令に応答して、再生しようとする次のビデオフレームにおいて相応な目標ビデオフレームが存在しないことを検出すると、ビデオ編集処理モードを切り替える。これにより、ユーザの頻繁な操作により、ビデオ編集処理モードを頻繁に切り替える必要があることに起因するリソース消費をできる限り減すことができる。また、再生処理モードにより、再生している間に目標ビデオ編集操作が実行されているビデオフレーム位置が常に再生進捗よりも先行することを確保できる。それにより、ユーザが実行するプレビュー再生のフリーズは重大になり、画面が崩れるなどの問題を解決し、ビデオ処理効率を向上させ、ユーザ体験の向上に有利である。
選択的に、図7に示す実施例に基づいて、以下のステップをさらに含む。
S705:再生一時停止命令を取得する。
S706:再生一時停止命令に応答して、第2のスレッドは、再生を一時停止し、且つ、第1のスレッドは、第3の処理モードに従って前記処理対象ビデオのビデオフレームに対して目標ビデオ編集操作を実行し続ける。
具体的に、アプリケーションが再生一時停止命令を受信すると、第2のスレッドは、目標ビデオフレームのレンダリングを停止し、即ち、目標ビデオフレームの再生を一時停止する。
再生一時停止命令を受信する時、処理対象ビデオに対して目標エフェクトを実行しているプロセスが存在するため、該プロセスを中断しなくてもよい。即ち、第1のスレッドは、処理対象ビデオに対して目標ビデオ編集操作を実行し続ける。つまり、第3の処理モードに従って処理対象ビデオのビデオフレームに対して目標ビデオ編集操作を実行し続ける。このように、電子機器の計算リソースを有効に利用してビデオ編集を実行することができ、計算リソースの利用率を向上させた。それにより、ビデオ処理効率を向上させた。
図8は、本開示の別の実施例によるビデオ処理方法のフローチャートである。
ここで、アプリケーションは、ビデオフレーム位置ジャンプをサポートするため、アプリケーションが各目標ビデオフレームを再生している間に、ジャンプ命令を取得することもでき、即ち、上記図1~図7のいずれか1つの実施例に基づいて、本実施例の方法を実行することもできる。
図8に示すように、本実施例の方法は、以下のステップを含む。
S801:第3のジャンプ命令を取得する。
S802:前記第3のジャンプ命令に応答して、前記第3のジャンプ命令により指示されたビデオフレーム位置において相応な目標ビデオが存在するか否か、前記第1のスレッドが処理対象ビデオに対して前記目標ビデオ編集操作を実行しているか否かに応じて、ビデオ編集処理モードを再決定する。
S803:前記第1のスレッドにより、再決定されたビデオ編集処理モードに従って、前記処理対象ビデオのビデオフレームに対して目標ビデオ編集操作を実行する。
第2のスレッドにより、前記ジャンプ命令により指示されたビデオフレーム位置に対応する目標ビデオフレームに対してレンダリングを行い、第3のジャンプ命令により指示されたビデオフレーム位置に対応する目標ビデオフレームを提示する。
幾つかの場合において、再生している間に、ユーザが第3のジャンプ命令を入力すると、アプリケーションは、再生状態を再生一時停止に切り替えてもよい。別の幾つかの場合において、再生している間に、ユーザが第3のジャンプ命令を入力すると、アプリケーションは、第3のジャンプ命令により指示されたビデオフレーム位置から目標ビデオフレームを再生してもよい。
本実施例では、第3のジャンプ命令に応答して、アプリケーションが再生状態を再生一時停止状態に切り替える場合、以下の幾つかのケースが存在し得る:
ケース(a):第3のジャンプ命令により指示されたビデオフレーム位置において相応な目標ビデオフレームが存在し、且つ現在で処理対象ビデオに対して目標ビデオ編集操作を実行しているプロセスが存在する場合、現在のプロセスを中断せず、第1のスレッドにより、元のビデオ編集処理モードに従って処理対象ビデオに対して目標ビデオ編集操作を実行し続ける。
第3のジャンプ命令により指示されたビデオフレーム位置において相応な目標ビデオフレームが存在するため、アプリケーションは、第3のジャンプ命令により指示されたビデオフレーム位置に対応する目標ビデオフレームを提示することができる。アプリケーションがプレビュー再生一時停止状態にあり得るので、フリーズ現象は発生しない。これに基づいて、アプリケーションは、進行しているプロセスを実行し続けることができる。
ケース(b):第3のジャンプ命令により指示されたビデオフレーム位置において相応な目標ビデオフレームが存在するが、現在で処理対象ビデオに対して目標エフェクトを実行しているプロセスが存在しないため、第3のジャンプ命令により指示されたビデオフレーム位置の次のフレームから、フレーム毎に相応な目標ビデオフレームが存在するか否かを決定し、決定された相応な目標ビデオフレームが存在しない最初のビデオフレーム位置から、第2の処理モードに従って処理対象ビデオに対して目標ビデオ編集操作を実行してもよい。
ケース(c):第3のジャンプ命令により指示されたビデオフレーム位置において相応な目標ビデオフレームが存在しない場合、第2の処理モードに従って、第3のジャンプ命令により指示されたビデオフレーム位置から、処理対象ビデオのビデオフレームに対して目標ビデオ編集操作を実行する。
第3のジャンプ命令に応答して、アプリケーションが第3のジャンプ命令により指示されたビデオフレーム位置から目標ビデオフレームの再生を開始すると、ビデオ編集処理モードを第3の処理モードに切り替え、第3のジャンプ命令により指示されたビデオフレーム位置から目標ビデオフレームの再生を開始する時、目標ビデオ編集操作が実行されているビデオフレーム位置が常に現在の再生進捗よりも先行することを確保する。それにより、再生にフリーズが発生しないことを実現し、ユーザのプレビューのニーズを満たすことができる。
ここで、ビデオ編集処理モードの切替タイミングを決定する実装形態は、前述した図5~図7のいずれか1つの実施例に示す形態を採用してもよく、前述した図5~図7に示す実施例の詳細な説明を参照すればよく、簡明のため、ここではこれ以上説明しない。
本実施例による方法は、第3のジャンプ命令により指示されたビデオフレーム位置において相応な目標ビデオフレームが存在するか否か、現在で目標ビデオ編集操作が実行されているプロセスが存在するか否かを分析することにより、ビデオ編集処理モードの切り替えの要否を決定する。また、ビデオ編集処理モードを切り替えるか否かを決定する際に、再生状態をも考慮し、リアルタイムの表示効果を確保する。
図9は、本開示の別の実施例によるビデオ処理方法のフローチャートである。図9に示すように、本実施例の方法は、以下のステップを含む。
S901:第1のスレッドにより、指定されたビデオフレーム位置から、処理対象ビデオにおける前記指定されたビデオフレーム位置のビデオフレームに対して目標ビデオ編集操作を実行し、前記指定されたビデオフレーム位置の後の各ビデオフレームに対して目標ビデオ編集操作を予め実行して、目標ビデオ編集操作を実行して得られた各目標ビデオフレームを取得する。
S902:再生命令に応答して、第2のスレッドにより、各前記目標ビデオフレームに対してレンダリングを行い、各前記目標ビデオフレームを提示する。前記目標ビデオ編集操作が実行されているビデオフレーム位置は、提示されている前記目標ビデオフレームの、前記処理対象ビデオにおける対応するビデオフレーム位置よりも先行する。
本実施例におけるステップS901、S902は、それぞれ図1に示す実施例におけるステップS101、S102と類似しており、図1に示す実施例の詳細な説明を参照すればよく、簡明のため、ここではこれ以上説明しない。
S903:前記処理対象ビデオの最後のビデオフレームに対して前記目標ビデオ編集操作を実行した後、第1のスレッドにより、処理対象ビデオの先頭ビデオフレームの位置から、第4の処理モードに従って処理対象ビデオのビデオフレームに対して目標ビデオ編集操作を実行する。
ここで、第4の処理モードは、処理対象ビデオにおける、相応な目標ビデオフレームが存在しないビデオフレームに対して、目標ビデオ編集操作を順次実行するモードである。第4の処理モードは、適応的なビデオ編集処理モードである。
アプリケーションが第1の処理モードから第3の処理モードのうちのいずれか1つ又は複数のビデオ編集処理モードに従って処理対象ビデオの最後のビデオフレーム位置まで実行すると、第4の処理モードに切り替え、計算リソースを十分に利用して、処理対象ビデオにおける、相応な目標ビデオフレームが存在しないビデオフレームに対して目標ビデオ編集操作を順次実行してもよい。
次に、処理対象ビデオが1つのビデオクリップを含む場合と、処理対象ビデオが複数のビデオクリップを含む場合とに分けて、それぞれ説明する。
1、処理対象ビデオが1つのビデオクリップを含む。
処理対象ビデオが1つのビデオクリップを含むと仮定すると、該ビデオクリップをビデオクリップAと記す。ビデオクリップAの最後のビデオフレームに対して目標ビデオ編集操作が実行されたことを検出すると、ビデオ編集処理モードを第4の処理モードに切り替え、ビデオクリップAの先頭ビデオフレーム位置から、ビデオクリップAにおけるビデオフレームの早い順に、目標ビデオ編集操作が実行されていないビデオフレームに対して目標ビデオ編集操作を順次実行する。
例示的に、ビデオクリップAは100フレームを含む。第2の処理モードに従って第50のフレームから第100のフレームに対して目標ビデオ編集操作を実行したと仮定する。第100のフレームに対する目標ビデオ編集操作の完了を受け付けると、第4の処理モードに切り替え、第1のフレームから、フレーム毎に第1のフレーム~第49のフレームに対して目標ビデオ編集操作を実行する。
また例えば、ビデオクリップAは100フレームを含む。第1の処理モードに従って、第1のフレーム、第5のフレーム、第10のフレーム、第15のフレーム、第20のフレームに対して目標ビデオ編集操作を実行し、第30のフレームから、第2の処理モードに切り替え、第30のフレーム~第100のフレームに対して目標ビデオ編集操作を実行したと仮定する。第100のフレームに対する目標ビデオ編集操作の実行の完了を検出すると、第4の処理モードに切り替え、第1のフレームから、目標ビデオ編集操作が実行されていない第2のフレーム~第4のフレーム、第6のフレーム~第9のフレーム、第11のフレーム~第14のフレーム、第16のフレーム~第19のフレームに対して目標ビデオ編集操作を順次実行する。
2、処理対象ビデオが複数のビデオクリップを含む。
処理対象ビデオが複数のビデオクリップを含むと仮定すると、複数のビデオクリップをそれぞれビデオクリップB~Bと記す。ビデオクリップBの最後のビデオフレームに対して目標ビデオ編集操作が実行されたことを検出すると、ビデオ編集処理モードを第4の処理モードに切り替え、ビデオクリップBの先頭ビデオフレーム位置から、ビデオクリップBにおけるビデオフレームの早い順に、目標ビデオ編集操作が実行されていないビデオフレームに対して目標ビデオ編集操作を順次実行する。そのうち、Nは、2以上の整数である。nは、1以上、N以下の整数である。
つまり、処理対象ビデオが複数のビデオクリップを含む場合、あるビデオクリップの最後のビデオフレームに対して目標ビデオ編集操作が実行されたことを検出すると、ビデオクリップ内で第4の処理モードのエフェクト処理タスクを優先的に実行してもよい。
実際の応用では、各ビデオクリップは1つのデコーダに対応し、ビデオクリップ内で第4の処理モードの目標ビデオ編集操作タスクを実行する。それにより、ビデオクリップの切り替えによるデコーダの更新に伴う計算リソースの消費を減すことができる。また、ビデオクリップ内で第4の処理モードの目標ビデオ編集操作タスクを実行することで、計算リソースを十分に利用して、ビデオ処理効率を向上させることができる。
例示的に、処理対象ビデオが3つのビデオクリップを含み、それぞれビデオクリップB、B、Bであると仮定する。現在では、ビデオクリップBに対して第2の処理モードに従って目標ビデオ編集操作が実行されている。ビデオクリップBの最後のビデオフレームに対して目標ビデオ編集操作が実行されたことを検出すると、第4の処理モードに切り替え、ビデオクリップBの先頭ビデオフレーム位置から、ビデオクリップBにおける、相応な目標ビデオフレームが存在しないビデオフレームに対して目標ビデオ編集操作を順次実行する。
ビデオクリップBにおける全てのビデオフレームにおいて相応な目標ビデオフレームが存在する場合、ビデオクリップBを「完了済み」とマークしてもよい。他の操作命令を受信していない場合、ビデオクリップBとビデオクリップBに対して目標ビデオ編集操作を実行してもよい。
ここでは、ビデオクリップBに対する目標ビデオ編集操作が完了し、次に処理しようとする次のビデオクリップがビデオクリップBである場合を例にして説明する。
ビデオクリップBに対して目標ビデオ編集操作が実行されたことがない可能性がある。よって、ビデオクリップBにおけるいずれのビデオフレームにおいても相応な目標ビデオフレームが存在しない。このような場合、ビデオクリップBに対して、ビデオクリップBの先頭ビデオフレーム位置から、まず、第1の処理モードに従って、ビデオクリップBの各ビデオフレームに対して目標ビデオ編集操作を順次実行してもよい。これに基づいて、ビデオクリップBの最後のビデオフレームに対して目標ビデオ編集操作が実行されたことを検出した後、第4の処理モードに切り替え、ビデオクリップBにおける、相応な目標ビデオフレームが存在しないビデオフレームに対して目標ビデオ編集操作を順次実行する。
ビデオクリップBに対して目標ビデオ編集操作が実行された可能性がある。よって、ビデオクリップBにおける一部のビデオフレームにおいて相応な目標ビデオフレームが存在する。このような場合、ビデオクリップBに対して、ビデオクリップBの先頭ビデオフレーム位置から、第4の処理モードに従って、ビデオクリップBにおける、相応な目標ビデオフレームが存在しないビデオフレームに対して目標ビデオ編集操作を順次実行する。
なお、ビデオクリップBにおける全てのビデオフレームにおいて相応な目標ビデオフレームが存在する場合、ビデオクリップBを「完了済み」とマークする。上記のマークに基づいて、ビデオクリップBに対して目標ビデオ編集操作を実行する必要がないと決定することができる。
次に処理しようとするビデオクリップがビデオクリップBである場合、その実装形態は、次に処理しようとするビデオクリップがビデオクリップBである場合の実装形態と類似しており、前述した詳細な説明を参照すればよく、ここではこれ以上説明しない。
本実施例による方法は、処理対象ビデオのビデオフレームに対して目標ビデオ編集操作を実行している間に、処理対象ビデオの最後のビデオフレームに対して目標ビデオ編集操作が実行されたことを検出すると、ビデオ編集処理モードを第4の処理モードに切り替え、処理対象ビデオにおける、相応な目標ビデオフレームが存在しないビデオフレームに対して目標ビデオ編集操作を順次実行する。
図10は、本開示の一実施例によるビデオ処理装置のフレームワーク概略図である。図10に示すビデオ処理装置を参照して、3つのエンティティ層を含み、それぞれがグラフ層(graph層)、インタラクション層、及びアルゴリズム処理層である。
グラフ層は、復号スレッドと、レンダリングスレッドとを含み、復号スレッドは、復号制御ユニット(decoder reader unit)を含み、レンダリングスレッドは、ビデオ前処理ユニット(clip preprocess unit)を含む。
復号制御ユニットは、ユーザが入力した操作命令、例えば、ジャンプ命令、再生命令などに応じて、アルゴリズム処理層において実行されているアルゴリズム処理タスクを更新し、レンダリング位置を同期的に更新するためのものである。
ビデオ前処理ユニットは、現在のビデオフレーム位置において相応な目標ビデオフレームが存在するか否かを判断し、存在する場合、目標ビデオフレームを読み取り、テクスチャをアップロードし、レンダリングを行い、スクリーンに表示し、存在しない場合、目標ビデオ編集操作が実行された1つ前のビデオフレームから、その対応する目標ビデオフレームのデータを読み取り、テクスチャをアップロードし、レンダリングを行い、スクリーンに表示するためのものである。
インタラクション層は、タスクスケジューリングモジュールとキャッシュ制御モジュールとを含む。
ここで、タスクスケジューリングモジュールは、ビデオ編集タスクを生成し、アルゴリズム処理層にビデオ編集タスクを配信するためのものである。
なお、タスクスケジューリングモジュールは、ユーザが入力した操作命令に基づいてビデオ編集タスクを生成してもよいし、アルゴリズム処理層から返された指示に従いビデオ編集処理モードを自己拡張処理モードに切り替える情報に基づいてビデオ編集タスクを生成してもよい。従って、タスクスケジューリングモジュールは、外部トリガポリシー及び自己拡張ポリシーを通じてタスクスケジューリングを行うものと見なされてもよい。
ビデオ処理装置全体のフレームワークにおいて、アルゴリズムタスクを最小処理単位とする。あるクリップ(clip)のビデオ編集操作が追加されるたびに、1つのアルゴリズムタスク、即ち、アルゴリズムタスク(task Param)オブジェクトを作成し、1つのタスク識別子(task ID)を返す。1つのアルゴリズムタスクオブジェクトは、1つのタスク識別子(task ID)に一意に対応する。
アルゴリズムタスク(task Param)オブジェクトは、1つの構造体であり、アルゴリズムタスクには、1つのクリップにおけるアルゴリズム処理に必要な全てのパラメータが記録されており、1つのアルゴリズム処理インスタンス(task Process wrapper)参照を持つ。
アルゴリズム処理インスタンス(task Process wrapper)は、これと一対一に対応するLabアルゴリズムモデルインスタンスを持ち、これに対応するコンテンツを管理する。アルゴリズム処理インスタンスは、1つのメインファイル(MANE File)を保持し、このパスファイルの全てのアルゴリズム結果(即ち、目標ビデオフレーム)に関する情報(例えば、ビデオフレーム位置を示すタイムスタンプ情報、例えば、PTS情報)を記録し、インタフェースへのクエリを提供するためのものである。
実際の応用では、Labアルゴリズムモデルインスタンスは、データ量が大きい。例えば、インテリジェントマッティングでは、Labアルゴリズムモデルインスタンスは、約100Mである。メモリ空間の不足(out of memory、OOM)の発生を減すために、Labアルゴリズムモデルインスタンスは、使用後で直ちに破棄される。
キャッシュ制御モジュールは、キャッシュに記憶された目標ビデオフレームに基づいて、レンダリングスレッドに目標ビデオフレームを返し、キャッシュ領域において相応な目標ビデオフレームが存在しない場合、レンダリングスレッドに目標ビデオフレームの外部メモリ空間におけるアクセス経路を返し、外部メモリ空間において目標ビデオフレームが存在しない場合、レンダリングスレッドにヌルを戻す(return NULL)ためのものである。
アルゴリズム層は、アルゴリズムのインタラクション層、中間層など他の名称と呼ばれてもよく、本開示はこれについて制限されない。
アルゴリズム処理層は、アルゴリズムタスク管理モジュールを含み、アルゴリズムタスク管理モジュールは、外部にアクセスインタフェースを提供し、例えば、アルゴリズムタスク管理モジュールは、エフェクト処理タスク及び進捗を追加、削除、及びクエリするインタフェースを提供する。
アルゴリズムタスク管理モジュール自体は、アルゴリズムタスク(task Param)オブジェクト、アルゴリズム処理インスタンス、及びアルゴリズムスレッドをさらに持つ。
ここで、アルゴリズムスレッドの本質は、スレッドオブジェクトであり、スレッドプールから選択されたスレッドであり、相応なメッセージキューにおけるエフェクト処理タスクを実行する。
アルゴリズムスレッドがビデオ編集タスクを実行する際に、以下のステップを含んでもよい。
ステップ1:相応なデコーダを更新する。
ステップ2:ビデオ編集タスクに対応する総フレーム数を補正する。
ステップ3:処理済フレーム数が総フレーム数と等しいか否かを判断し、又は、目標ビデオ編集操作の開始位置が処理対象ビデオの最後のビデオフレームであるか否かを判断する。
なお、処理済フレーム数が総フレーム数と等しいか否かは、図10における条件1に対応し、目標ビデオ編集操作の開始位置が処理対象ビデオの最後のビデオフレームであるか否かは、図10における条件2に対応する。
ステップ4:上記の条件がいずれも満たされない場合、該ビデオフレームにおいて相応な目標ビデオフレームが既に存在するか否かを決定し、存在する場合、該ビデオフレームに対する目標ビデオ編集操作の実行をジャンプし、存在しない場合、ステップ5を実行する。
ステップ5:相応なビデオ編集処理モードに応じて、該ビデオフレームが廃棄すべきであるビデオフレームであるか否かを決定する。
なお、ここでいうビデオ編集処理モードは、再生処理モード、ジャンプ処理モード、前処理モード、及び、自己拡張処理モードのうちのいずれか1つであってもよい。上記の各種のビデオ編集処理モードの意味については前述した説明を参照すればよい。
なお、ビデオ編集処理モードが再生処理モードである場合、再生速度に応じて、該ビデオフレームが廃棄すべきであるビデオフレームであるか否かを決定する。廃棄すべきであるビデオフレームである場合、それに対して目標ビデオ編集操作を実行する必要がなく、廃棄すべきであるビデオフレームでない場合、ステップ6を実行する。
ビデオ編集処理モードがジャンプ処理モードである場合、各ビデオフレームは、何れも廃棄すべきでないビデオフレームである。
ビデオ編集処理モードが前処理モードである場合、キーフレームは、廃棄すべきでないビデオフレームであり、ステップ6を実行する。他のフレームは、廃棄すべきであるビデオフレームである。
ビデオ編集処理モードが自己拡張モードである場合、相応な目標ビデオフレームが存在しないビデオフレームは、何れも廃棄すべきでないビデオフレームであり、相応な目標ビデオフレームが存在するビデオフレームは、何れも廃棄すべきであるビデオフレームである。
ステップ6:ビデオフレームに対して目標ビデオ編集操作を実行して、相応な目標ビデオフレームを取得する。
ステップ7:ビデオフレームに対応する目標ビデオフレームを記憶する。
ここで、ビデオフレームに対応する目標ビデオフレームは、外部メモリ空間及びキャッシュに同時に記憶されてもよい。レンダリングスレッドでレンダリングを行う際に、キャッシュにおいて相応な目標ビデオフレームが存在する場合、直接的にキャッシュからデータを読み取ってもよい。キャッシュにおいて相応な目標ビデオフレームがない場合、外部メモリ空間から相応な目標ビデオフレームを読み取る。このようにして、データの入力/出力回数を減らし、ビデオ処理効率を向上させることができる。
さらに、ビデオフレームに対応する目標ビデオフレームを記憶する時、目標ビデオフレームに関する情報をコールバックサービスに渡して、コールバックサービスがサービススレッドを呼び出して関連操作を実行するようにしてもよい。例えば、目標ビデオ編集を実行している間に、コールバックサービスにより、サービススレッドに現在の目標ビデオ編集の実行進捗をフィードバックしてもよい。
上記の図10に示すフレームワークを採用して、アルゴリズムスレッドは、複数のビデオ編集処理モードに従って処理対象ビデオに対して目標ビデオ編集操作を実行して、アルゴリズムスレッドの実行進捗が常にレンダリングスレッドの進捗よりも先行することを確保することができる。それにより、ユーザのプレビューがフリーズする問題を解決した。また、アルゴリズムスレッドは、処理対象ビデオのビデオフレームに対して目標ビデオ編集操作を実行するタスクを受け付けた後、独立して実行されてもよく、且つ、上層の符号化スレッドとレンダリングスレッドに影響を与えず、符号化スレッド、アルゴリズムスレッド、及びレンダリングスレッドの間の並列処理を実現し、アルゴリズムスレッドの処理に時間がかかるため、レンダリングスレッドをブロックする問題を解決し、ユーザのプレビューがフリーズする問題を解決した。
図11は、本開示の一実施例による、図10に示す実施例における各スレッドのライフサイクル概略図である。図11に示すように、フレーム間引きスレッド、レンダリングスレッド、サービススレッド、及びアルゴリズムスレッドが含まれる。
フレーム間引きスレッドは、同期フレーム間引きを実行するためのものである。レンダリングスレッドは、目標ビデオフレームをレンダリングして再生に用いるためのものである。サービススレッドは、アルゴリズムスレッドを制御し、処理対象ビデオの各ビデオフレームに対して、決定されたビデオ編集処理モードに従って目標ビデオ編集操作を実行させるためのものであり、再生の一時停止及び開始を制御するためのものである。アルゴリズムスレッドは、サービススレッドの指示に従って相応なビデオフレームに対して目標ビデオ編集操作を実行するためのものである。
処理対象ビデオの各ビデオフレームに対して目標ビデオ編集操作を実行するビデオ編集命令を受信すると、まず、サービススレッドは、ビデオ編集処理モードを前処理モード又はジャンプ処理モードに設定し、アルゴリズムスレッドを起動するように制御して、設定されたビデオ編集処理モードに従ってアルゴリズムを運行して、処理対象ビデオのビデオフレームに対して目標ビデオ編集操作を実行する。図11に示すように、このプロセスでは、相応な目標ビデオフレームを順次バッファリングする必要がある。
再生が必要な場合、サービススレッドは、まず、アルゴリズムスレッドを中断し、ビデオ編集処理モードを再生処理モードに設定し、アルゴリズムスレッドを制御し再生処理モードに従ってアルゴリズムを運行して、処理対象ビデオのビデオフレームに対して目標ビデオ編集操作を実行する。図11に示すように、このプロセスでは、依然として相応な目標ビデオフレームを順次バッファリングする必要がある。同期的に、サービススレッドは、レンダリングスレッドを制御し、キャッシュから相応な目標ビデオフレームを読み取り、レンダリング表示することにより、ユーザにプレビューさせる。
プレビュー再生を一時停止すると、サービススレッドは、レンダリングスレッドを制御し、再生を一時停止する。
ビデオフレーム位置をジャンプさせる場合、サービススレッドは、まず、アルゴリズムスレッドを中断し、ビデオ編集処理モードをジャンプ処理モードに設定し、アルゴリズムスレッドを制御し、ジャンプ処理モードに従ってアルゴリズムを運行して、最終的にジャンプされたビデオフレーム位置から、処理対象ビデオのビデオフレームに対して目標ビデオ編集操作を実行する。図11に示すように、このプロセスでは、依然として最終的にジャンプされたビデオフレーム位置から相応な目標ビデオフレームを同期的にバッファリングする必要がある。同期的に、サービススレッドは、レンダリングスレッドを制御し、相応なビデオフレーム位置の目標ビデオフレームを提示する。
処理対象ビデオの最後のビデオフレームに対して目標ビデオ編集操作が実行された後、サービススレッドは、ビデオ編集処理モードを自己拡張処理モードに設定し、アルゴリズムスレッドを制御し、処理対象ビデオの最初のビデオフレーム位置から、目標ビデオ編集操作が実行されていないビデオフレームに対して目標ビデオ編集操作を順次実行するように制御する。図11に示すように、このプロセスでは、依然として相応な目標ビデオフレームを順次バッファリングする必要がある。
処理対象ビデオフレームに対する目標ビデオ編集操作の実行を取り消し又は停止する場合、サービススレッドは、アルゴリズムスレッドを制御し、アルゴリズムの運行を停止し、アルゴリズムスレッドが占有するリソースを回収する。その後、レンダリングスレッドとアルゴリズムスレッドを回収する。
図10と図11に示すように、図10に示すフレームワークを通じて、図11に示すスレッド間のインタラクションと合せて、処理対象ビデオの各ビデオフレームに対する目標ビデオ編集操作の実行を実現し、ユーザのプレビュー再生がフリーズする問題を有効に解決した。
図12は、本開示の一実施例によるビデオ処理装置の構成概略図である。図12に示すように、本実施例によるビデオ処理装置1200は、
第1のスレッドにより、指定されたビデオフレーム位置から、処理対象ビデオにおける前記指定されたビデオフレーム位置のビデオフレームに対して目標ビデオ編集操作を実行し、前記指定されたビデオフレーム位置の後の各ビデオフレームに対して前記目標ビデオ編集操作を予め実行して、前記目標ビデオ編集操作を実行して得られた各目標ビデオフレームを取得するための第1の処理モジュール1210と、
再生命令に応答して、第2のスレッドにより、各前記目標ビデオフレームに対してレンダリングを行い、各前記目標ビデオフレームを提示するための第2の処理モジュール1220と、を含み、前記目標ビデオ編集操作が実行されているビデオフレーム位置は、提示されている前記目標ビデオフレームの、前記処理対象ビデオにおける対応するビデオフレーム位置よりも先行する。
可能な一実施形態として、ビデオ処理装置1200は、表示モジュール1240をさらに含んでもよい。表示モジュール1240は、各目標ビデオフレームを提示するためのものである。
可能な一実施形態として、前記指定されたビデオフレーム位置は、ビデオ編集命令を取得した時に位置決めされたビデオフレーム位置に基づいて決定され、前記ビデオ編集命令は、前記処理対象ビデオに対して前記目標ビデオ編集操作を実行することを指示するためのものであり、前記ビデオ編集命令を取得した時に位置決めされたビデオフレーム位置は、予め設定されたビデオフレーム位置又は第1のジャンプ命令で指定されたビデオフレーム位置である。
それに応じて、前記ビデオ処理装置1200は、取得モジュール1230をさらに含んでもよい。
取得モジュール1230は、ビデオ編集命令を取得し、第1のジャンプ命令を取得するためのものである。
可能な一実施形態として、前記指定されたビデオフレーム位置は、第2のジャンプ命令で指定されたビデオフレーム位置に基づいて決定され、且つ、前記第2のジャンプ命令は、前記処理対象ビデオに対して前記目標ビデオ編集操作を実行するためのビデオ編集命令の後の命令である。
それに応じて、取得モジュール1230は、さらに第2のジャンプ命令を取得することに用いられる。
可能な一実施形態として、前記指定されたビデオフレーム位置がビデオ編集命令を取得した時に位置決めされたビデオフレーム位置に基づいて決定された場合、第1の処理モジュール1210は、第1のスレッドにより、指定されたビデオフレーム位置から、処理対象ビデオにおける前記指定されたビデオフレーム位置のビデオフレームに対して目標ビデオ編集操作を実行し、前記指定されたビデオフレーム位置の後の各ビデオフレームに対して前記目標ビデオ編集操作を予め実行して、前記目標ビデオ編集操作を実行して得られた各目標ビデオフレームを取得する前に、さらに、前記指定されたビデオフレーム位置に基づいて、前記第1のスレッドに対応するビデオ編集処理モードを決定することに用いられ、前記ビデオ編集処理モードは、キーフレームに対して前記目標ビデオ編集操作を実行するモードである第1の処理モード、又はフレーム毎に前記目標ビデオ編集操作を実行するモードである第2の処理モードである。
可能な一実施形態として、第1の処理モジュール1210は、具体的には、前記指定されたビデオフレーム位置が前記予め設定されたビデオフレーム位置である場合、前記第1のスレッドに対応するビデオ編集処理モードを前記第1の処理モードとして決定し、前記指定されたビデオフレーム位置が第1のジャンプ命令で指定されたビデオフレーム位置である場合、前記第1のスレッドに対応するビデオ編集処理モードを前記第1の処理モード又は前記第2の処理モードとして決定することに用いられる。
可能な一実施形態として、第1の処理モジュール1210は、具体的には、前記指定されたビデオフレーム位置において相応な目標ビデオフレームが存在するか否かを決定し、前記指定されたビデオフレーム位置において相応な目標ビデオフレームが存在しない場合、前記指定されたビデオフレーム位置が前記予め設定されたビデオフレーム位置であるか、前記第1のジャンプ命令で指定されたビデオフレーム位置であるかに応じて、前記第1のスレッドに対応するビデオ編集処理モードを決定することに用いられる。
可能な一実施形態として、第1の処理モジュール1210は、具体的には、前記指定されたビデオフレーム位置において相応な目標ビデオフレームが存在する場合、前記第1のスレッドに対応するビデオ編集処理モードを前記第2の処理モードとして決定することに用いられる。
それに応じて、第2の処理モジュール1220は、具体的には、相応な目標ビデオフレームが存在しない最初のビデオフレーム位置が決定されるまで、前記指定されたビデオフレーム位置から後へフレーム毎に相応な目標ビデオフレームが存在するか否かを決定し、前記第1のスレッドにより、前記第2の処理モードに従って、相応な目標ビデオフレームが存在しない前記最初のビデオフレーム位置から、前記処理対象ビデオのビデオフレームに対して前記目標ビデオ編集操作を実行することに用いられる。
可能な一実施形態として、前記指定されたビデオフレーム位置が第2のジャンプ命令で指定されたビデオフレーム位置に基づいて決定された場合、第1の処理モジュール1210は、第1のスレッドにより、指定されたビデオフレーム位置から、処理対象ビデオにおける前記指定されたビデオフレーム位置のビデオフレームに対して目標ビデオ編集操作を実行し、前記指定されたビデオフレーム位置の後の各ビデオフレームに対して前記目標ビデオ編集操作を予め実行して、前記目標ビデオ編集操作を実行して得られた各目標ビデオフレームを取得する前に、さらに、前記指定されたビデオフレーム位置において相応な目標ビデオフレームが存在しないと決定すると、前記第1のスレッドに対応するビデオ編集処理モードを第2の処理モードとして決定することに用いられる。
可能な一実施形態として、前記指定されたビデオフレーム位置において相応な目標ビデオフレームが存在し、且つ前記第1のスレッドが前記処理対象ビデオに対して前記目標ビデオ編集操作を実行している場合、前記第1の処理モジュール1210は、前記第1のスレッドを中断せず、前記第1のスレッドが前記処理対象ビデオに対して前記目標ビデオ編集操作を実行し続けるようにする。
可能な一実施形態として、第1の処理モジュール1210は、さらに、前記再生命令に応答して、前記ビデオ編集処理モードを、前記目標ビデオ編集操作を実行するビデオフレーム位置を再生速度に応じて決定するモードである第3の処理モードに切り替え、前記第1のスレッドにより、前記第3の処理モードに従って前記処理対象ビデオのビデオフレームに対して前記目標ビデオ編集操作を実行することに用いられる。
可能な一実施形態として、第1の処理モジュール1210は、具体的には、前記再生命令に応答して、再生しようとする次の目標ビデオフレームが存在するか否かをリアルタイムで検出し、再生しようとする次の目標ビデオフレームが存在しないことを検出すると、前記第1のスレッドにより、前記再生しようとする次の目標ビデオフレームの位置から、前記第3の処理モードに従って前記処理対象ビデオのビデオフレームに対して前記目標ビデオ編集操作を実行することに用いられる。
可能な一実施形態として、第1の処理モジュール1210は、具体的には、前記再生命令に応答して、前記第1のスレッドにより、前記再生命令を取得した時に前記目標ビデオ編集操作が実行されているビデオフレーム位置から、前記第3の処理モードに従って前記処理対象ビデオのビデオフレームに対して前記目標ビデオ編集操作を実行することに用いられる。
可能な一実施形態として、第1の処理モジュール1210は、具体的には、前記再生命令に応答して、予め設定された単一のビデオフレームに対して前記目標ビデオ編集操作を実行する処理時間長、再生速度、及び現在で前記目標ビデオ編集操作が実行されているビデオフレーム位置に基づいて、前記第3の処理モードに対応する切替位置を決定し、前記第1のスレッドにより、前記切替位置から、前記第3の処理モードに従って前記処理対象ビデオのビデオフレームに対して前記目標ビデオ編集操作を実行することに用いられる。
可能な一実施形態として、第1の処理モジュール1210は、具体的には、さらに、前記再生一時停止命令に応答して、前記第2のスレッドによる前記目標ビデオフレームに対するレンダリングを一時停止し、且つ、前記第1のスレッドは、前記第3の処理モードに従って前記処理対象ビデオのビデオフレームに対して前記目標ビデオ編集操作を実行し続けることに用いられる。
それに応じて、取得モジュール1230は、さらに再生一時停止命令を取得することに用いられる。
可能な一実施形態として、第1の処理モジュール1210は、さらに、前記処理対象ビデオの最後のビデオフレームに対して前記目標ビデオ編集操作を実行した後、前記第1のスレッドにより、前記処理対象ビデオの先頭ビデオフレームの位置から、第4の処理モードに従って前記処理対象ビデオのビデオフレームに対して前記目標ビデオ編集操作を実行することに用いられ、前記第4の処理モードは、前記処理対象ビデオにおける、相応な目標ビデオフレームが存在しないビデオフレームに対して、前記目標ビデオ編集操作を順次実行するモードである。
本実施例によるビデオ処理装置は、上記のいずれか1つの方法の実施例によるの技術案を実行するために用いられることができ、その実現原理及び技術的効果は類似しているため、上記の方法の実施例の詳細の説明を参照すればよく、簡明のため、ここではこれ以上説明しない。
図13は、本開示の一実施例による電子機器の構成概略図である。図13に示すように、本実施例による電子機器1300は、メモリ1301と、プロセッサ1302とを含む。
ここで、メモリ1301は、独立した物理的なユニットであってもよく、バス1303を介してプロセッサ1302と接続されてもよい。メモリ1301、プロセッサ1302は、一体に集積され、ハードウェアなどによって実現されてもよい。
メモリ1301は、プロセッサ1302に呼び出されて、上記のいずれか1つの方法の実施例の操作を実行するプログラム命令を記憶することに用いられる。
選択的に、上述した実施例の方法における一部又は全部がソフトウェアで実現される場合、上述した電子機器1300は、プロセッサ1302のみを含んでもよい。プログラムを記憶するためのメモリ1301は、電子機器1300の外部にあり、プロセッサ1302は、メモリに記憶されたプログラムを読み取って実行するために、回路/配線を介してメモリに接続される。
プロセッサ1302は、中央処理装置(central processing unit、CPU)、ネットワークプロセッサ(network processor、NP)、又はCPUとNPの組み合わせであってもよい。
プロセッサ1302は、ハードウェアチップをさらに含んでもよい。上記のハードウェアチップは、特定用途向け集積回路(application-specific integrated circuit、ASIC)、プログラマブルロジックデバイス(programmable logic device、PLD)、又はこれらの組み合わせであってもよい。上記のPLDは、複雑なプログラマブルロジックデバイス(complex programmable logic device、CPLD)、フィールドプログラマブルゲートアレイ(field-programmable gate array、FPGA)、汎用アレイロジック(generic array logic、GAL)又はこれらの任意の組み合わせであってもよい。
メモリ1301は、揮発性メモリ(volatile memory)、例えば、ランダムアクセスメモリ(random-access memory、RAM)を含んでもよい。また、メモリは、不揮発性メモリ(non-volatile memory)、例えば、フラッシュメモリ(flash memory)、ハードディスク(hard disk drive、HDD)又はソリッドステートハードディスク(solid-state drive、SSD)を含んでもよい。メモリは、上記の種類のメモリの組み合わせをさらに含んでもよい。
本開示は、電子機器の少なくとも1つのプロセッサによって実行されると、上記のいずれか1つの方法実施例に記載のビデオ処理方法を実現させるコンピュータプログラム命令を含む読み取り可能な記憶媒体をさらに提供する。
本開示は、コンピュータによって実行されると、前記コンピュータに上記いずれか1つの方法実施例に記載のビデオ処理方法を実現させるコンピュータプログラム製品をさらに提供する。
なお、本明細書において、「第1」及び「第2」などのような関係用語は、単に一のエンティティ又は操作を他のエンティティ又は操作と区別するためにのみ用いられ、これらのエンティティ又は操作の間にこのような実際的な関係又は順序が存在することを必ずしも要求したり又は示唆したわけではない。さらに、「含む」、「包含する」という用語又はその任意の他の変体は、非排他的な含有を示すものであり、一系列の要素を含む過程、方法、物品又は機器は、それらの要素だけでなく、明示されていない他の要素も含み、又はこのような過程、方法、物品又は機器に固有の要素も含む。もっと多い制限がない場合に、「1つの・・・を含む」という言葉によって限定される要素は、前記要素を含む過程、方法、物品又は機器にほかの同じ要素も含むことを除外しない。
以上は本開示の具体的な実施形態にすぎず、当業者が本開示を理解又は実現することを可能にするために用いられる。これらの実施例に対する様々な修正は、当業者にとって自明なことであり、本明細書で定義される一般原理は、本開示の趣旨又は範囲から逸脱することなく他の実施例において実現され得る。従って、本開示は、本明細書に記載されたこれらの実施例に限定されるものではなく、本明細書で開示される原理及び新規の特徴に適合する最も広い範囲を有する。

Claims (19)

  1. 第1のスレッドにより、指定されたビデオフレーム位置から、処理対象ビデオにおける前記指定されたビデオフレーム位置のビデオフレームに対して目標ビデオ編集操作を実行し、前記指定されたビデオフレーム位置の後の各ビデオフレームに対して前記目標ビデオ編集操作を予め実行して、前記目標ビデオ編集操作を実行して得られた各目標ビデオフレームを取得して記憶することと、
    再生命令に応答して、第2のスレッドにより、各目標ビデオフレームを読み取り、各前記目標ビデオフレームに対してレンダリングを行い、各前記目標ビデオフレームを提示することと、を含み、前記目標ビデオ編集操作が実行されているビデオフレーム位置は、提示されている前記目標ビデオフレームの、前記処理対象ビデオにおける対応するビデオフレーム位置よりも先行する、ビデオ処理方法。
  2. 前記指定されたビデオフレーム位置は、ビデオ編集命令を取得したときに位置決めされたビデオフレーム位置に基づいて決定され、前記ビデオ編集命令は、前記処理対象ビデオに対して前記目標ビデオ編集操作を実行することを指示するためのものであり、前記ビデオ編集命令を取得したときに位置決めされたビデオフレーム位置は、予め設定されたビデオフレーム位置又は第1のジャンプ命令で指定されたビデオフレーム位置である、請求項1に記載の方法。
  3. 前記指定されたビデオフレーム位置は、第2のジャンプ命令で指定されたビデオフレーム位置に基づいて決定され、且つ、前記第2のジャンプ命令は、前記処理対象ビデオに対して前記目標ビデオ編集操作を実行するためのビデオ編集命令の後の命令である、請求項1に記載の方法。
  4. 前記指定されたビデオフレーム位置がビデオ編集命令を取得したときに位置決めされたビデオフレーム位置に基づいて決定される場合、第1のスレッドにより、指定されたビデオフレーム位置から、処理対象ビデオにおける前記指定されたビデオフレーム位置のビデオフレームに対して目標ビデオ編集操作を実行し、前記指定されたビデオフレーム位置の後の各ビデオフレームに対して前記目標ビデオ編集操作を予め実行して、前記目標ビデオ編集操作を実行して得られた各目標ビデオフレームを取得する前に、前記方法は、
    前記指定されたビデオフレーム位置に基づいて、前記第1のスレッドに対応するビデオ編集処理モードを決定することをさらに含み、前記ビデオ編集処理モードは、キーフレームに対して前記目標ビデオ編集操作を実行するモードである第1の処理モード、又はフレーム毎に前記目標ビデオ編集操作を実行するモードである第2の処理モードである、請求項に記載の方法。
  5. 前記指定されたビデオフレーム位置に基づいて、前記第1のスレッドに対応するビデオ編集処理モードを決定することは、
    前記指定されたビデオフレーム位置が前記予め設定されたビデオフレーム位置である場合、前記第1のスレッドに対応するビデオ編集処理モードを前記第1の処理モードとして決定することと、
    前記指定されたビデオフレーム位置が第1のジャンプ命令で指定されたビデオフレーム位置である場合、前記第1のスレッドに対応するビデオ編集処理モードを前記第1の処理モード又は前記第2の処理モードとして決定することとを含む、請求項4に記載の方法。
  6. 前記指定されたビデオフレーム位置に基づいて、前記第1のスレッドに対応するビデオ編集処理モードを決定することは、
    前記指定されたビデオフレーム位置において相応な目標ビデオフレームが存在するか否かを決定することと、
    前記指定されたビデオフレーム位置において相応な目標ビデオフレームが存在しない場合、前記指定されたビデオフレーム位置が前記予め設定されたビデオフレーム位置であるか、前記第1のジャンプ命令で指定されたビデオフレーム位置であるかに応じて、前記第1のスレッドに対応するビデオ編集処理モードを決定することと、を含む、請求項4に記載の方法。
  7. 前記方法は、
    前記指定されたビデオフレーム位置において相応な目標ビデオフレームが存在する場合、前記第1のスレッドに対応するビデオ編集処理モードを前記第2の処理モードとして決定することをさらに含み、
    第1のスレッドにより、指定されたビデオフレーム位置から、処理対象ビデオにおける前記指定されたビデオフレーム位置のビデオフレームに対して目標ビデオ編集操作を実行し、前記指定されたビデオフレーム位置の後の各ビデオフレームに対して前記目標ビデオ編集操作を予め実行して、前記目標ビデオ編集操作を実行して得られた各目標ビデオフレームを取得することは、
    相応な目標ビデオフレームが存在しない最初のビデオフレーム位置が決定されるまで、前記指定されたビデオフレーム位置から後へフレーム毎に相応な目標ビデオフレームが存在するか否かを決定することと、
    前記第1のスレッドにより、前記第2の処理モードに従って、前記相応な目標ビデオフレームが存在しない最初のビデオフレーム位置から、前記処理対象ビデオのビデオフレームに対して、前記目標ビデオ編集操作を実行することとを含む、請求項6に記載の方法。
  8. 前記指定されたビデオフレーム位置が第2のジャンプ命令で指定されたビデオフレーム位置に基づいて決定された場合、第1のスレッドにより、指定されたビデオフレーム位置から、処理対象ビデオにおける前記指定されたビデオフレーム位置のビデオフレームに対して目標ビデオ編集操作を実行し、前記指定されたビデオフレーム位置の後の各ビデオフレームに対して前記目標ビデオ編集操作を予め実行して、前記目標ビデオ編集操作を実行して得られた各目標ビデオフレームを取得する前に、前記方法は、
    前記指定されたビデオフレーム位置において相応な目標ビデオフレームが存在しない場合、前記第1のスレッドに対応するビデオ編集処理モードを第2の処理モードとして決定することをさらに含む、請求項3に記載の方法。
  9. 前記指定されたビデオフレーム位置において相応な目標ビデオフレームが存在し、且つ現在で前記第1のスレッドが前記処理対象ビデオに対して前記目標ビデオ編集操作を実行している場合、前記第1のスレッドを中断せず、前記第1のスレッドが前記処理対象ビデオに対して前記目標ビデオ編集操作を実行し続けるようにすることをさらに含む、請求項8に記載の方法。
  10. 前記再生命令に応答して、ビデオ編集処理モードを、3の処理モードに切り替え、前記第1のスレッドにより、前記第3の処理モードに従って前記処理対象ビデオのビデオフレームに対して前記目標ビデオ編集操作を実行することをさらに含み、前記第3の処理モードでは、前記第1のスレッドが、再生速度に応じて、目標ビデオ編集操作を実行するビデオフレーム位置を決定することにより、目標ビデオ編集操作が実行されているビデオフレーム位置が常に、提示されている目標ビデオフレームの処理対象ビデオにおける対応するビデオフレーム位置よりも先行することを確保する、請求項1~3のいずれか1項に記載の方法。
  11. 前記再生命令に応答して、前記ビデオ編集処理モードを第3の処理モードに切り替え、前記第1のスレッドにより、前記第3の処理モードに従って前記処理対象ビデオのビデオフレームに対して前記目標ビデオ編集操作を実行することは、
    前記再生命令に応答して、再生しようとする次の目標ビデオフレームが存在するか否かをリアルタイムで検出することと、
    再生しようとする次の目標ビデオフレームが存在しないことを検出すると、前記第1のスレッドにより、前記再生しようとする次の目標ビデオフレームの位置から、前記第3の処理モードに従って前記処理対象ビデオのビデオフレームに対して前記目標ビデオ編集操作を実行することとを含む、請求項10に記載の方法。
  12. 前記再生命令に応答して、前記ビデオ編集処理モードを第3の処理モードに切り替え、前記第1のスレッドにより、前記第3の処理モードに従って前記処理対象ビデオのビデオフレームに対して前記目標ビデオ編集操作を実行することは、
    前記再生命令に応答して、前記第1のスレッドにより、前記再生命令を取得したときに前記目標ビデオ編集操作が実行されているビデオフレーム位置から、前記第3の処理モードに従って前記処理対象ビデオのビデオフレームに対して前記目標ビデオ編集操作を実行することを含む、請求項10に記載の方法。
  13. 前記再生命令に応答して、前記ビデオ編集処理モードを第3の処理モードに切り替え、前記第1のスレッドにより、前記第3の処理モードに従って前記処理対象ビデオのビデオフレームに対して前記目標ビデオ編集操作を実行することは、
    前記再生命令に応答して、予め設定された単一のビデオフレームに対して前記目標ビデオ編集操作を実行する処理時間長、再生速度、及び現在で前記目標ビデオ編集操作が実行されているビデオフレーム位置に基づいて、前記第3の処理モードに対応する切替位置を決定することと、
    前記第1のスレッドにより、前記切替位置から、前記第3の処理モードに従って前記処理対象ビデオのビデオフレームに対して前記目標ビデオ編集操作を実行することとを含む、請求項10に記載の方法。
  14. 再生一時停止命令を取得することと、
    前記再生一時停止命令に応答して、前記第2のスレッドによる前記目標ビデオフレームに対するレンダリングを一時停止し、且つ、前記第1のスレッドは、前記第3の処理モードに従って前記処理対象ビデオのビデオフレームに対して前記目標ビデオ編集操作を実行し続けることとをさらに含む、請求項10に記載の方法。
  15. 前記方法は、
    前記処理対象ビデオの最後のビデオフレームに対して前記目標ビデオ編集操作を実行した後、前記第1のスレッドにより、前記処理対象ビデオの先頭ビデオフレームの位置から、第4の処理モードに従って前記処理対象ビデオのビデオフレームに対して前記目標ビデオ編集操作を実行することをさらに含み、
    前記第4の処理モードは、前記処理対象ビデオにおける、相応な目標ビデオフレームが存在しないビデオフレームに対して、前記目標ビデオ編集操作を順次実行するモードである、請求項1~3のいずれか1項に記載の方法。
  16. 第1のスレッドにより、指定されたビデオフレーム位置から、処理対象ビデオにおける前記指定されたビデオフレーム位置のビデオフレームに対して目標ビデオ編集操作を実行し、前記指定されたビデオフレーム位置の後の各ビデオフレームに対して前記目標ビデオ編集操作を予め実行して、前記目標ビデオ編集操作を実行して得られた各目標ビデオフレームを取得して記憶するように構成された第1の処理モジュールと、
    再生命令に応答して、第2のスレッドにより、各目標ビデオフレームを読み取り、各前記目標ビデオフレームに対してレンダリングを行い、各前記目標ビデオフレームを提示するように構成された第2の処理モジュールと、を含み、前記目標ビデオ編集操作が実行されているビデオフレーム位置は、提示されている前記目標ビデオフレームの、前記処理対象ビデオにおける対応するビデオフレーム位置よりも先行する、ビデオ処理装置。
  17. メモリと、プロセッサとを含む電子機器であって、
    前記メモリは、コンピュータプログラム命令を記憶するように構成され、
    前記プロセッサは、前記コンピュータプログラム命令を実行して、前記電子機器に請求項1~3のいずれか1項に記載のビデオ処理方法を実現させるように構成された、電子機器。
  18. コンピュータプログラム命令を含む読み取り可能な記憶媒体であって、
    前記コンピュータプログラム命令が電子機器の少なくとも1つのプロセッサによって実行されると、前記電子機器に請求項1~3のいずれか1項に記載のビデオ処理方法を実現させる、読み取り可能な記憶媒体。
  19. コンピュータによって実行されると、前記コンピュータに請求項1~3のいずれか1項に記載のビデオ処理方法を実現させる、コンピュータプログラム。
JP2024529213A 2021-11-15 2022-11-02 ビデオ処理方法、装置、電子機器及び読み取り可能な記憶媒体 Active JP7769112B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN202111347351.6 2021-11-15
CN202111347351.6A CN116132719B (zh) 2021-11-15 2021-11-15 视频处理方法、装置、电子设备及可读存储介质
PCT/CN2022/129165 WO2023083064A1 (zh) 2021-11-15 2022-11-02 视频处理方法、装置、电子设备及可读存储介质

Publications (2)

Publication Number Publication Date
JP2024545005A JP2024545005A (ja) 2024-12-05
JP7769112B2 true JP7769112B2 (ja) 2025-11-12

Family

ID=86310487

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2024529213A Active JP7769112B2 (ja) 2021-11-15 2022-11-02 ビデオ処理方法、装置、電子機器及び読み取り可能な記憶媒体

Country Status (4)

Country Link
EP (1) EP4418661A4 (ja)
JP (1) JP7769112B2 (ja)
CN (1) CN116132719B (ja)
WO (1) WO2023083064A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116778046B (zh) * 2023-08-28 2023-10-27 乐元素科技(北京)股份有限公司 基于多线程的头发模型处理方法、装置、设备及介质
CN117939241A (zh) * 2024-01-24 2024-04-26 北京字跳网络技术有限公司 视频特效编辑方法、装置、电子设备以及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010252328A (ja) 2009-04-14 2010-11-04 Avid Technology Inc マルチ・ユーザ・ビデオ編集システムにおけるレンダリング
JP2015502678A (ja) 2011-10-10 2015-01-22 ジェンアーツ インコーポレイテッド ビジュアルエフェクトのネットワークに基づくレンダリング及びステアリング
CN104967865A (zh) 2015-03-24 2015-10-07 腾讯科技(北京)有限公司 视频预览方法和装置
CN111459591A (zh) 2020-03-31 2020-07-28 杭州海康威视数字技术股份有限公司 待渲染对象处理方法、装置和终端
CN112954459A (zh) 2021-03-04 2021-06-11 网易(杭州)网络有限公司 一种视频数据的处理方法和装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104994406B (zh) * 2015-04-17 2017-12-29 新奥特(北京)视频技术有限公司 一种基于Silverlight插件的视频编辑方法和装置
US10109319B2 (en) * 2016-01-08 2018-10-23 Gopro, Inc. Digital media editing
CN105933773A (zh) * 2016-05-12 2016-09-07 青岛海信传媒网络技术有限公司 视频编辑方法及系统
CN108062760B (zh) * 2017-12-08 2020-12-08 广州市百果园信息技术有限公司 视频编辑方法、装置及智能移动终端
CN108040265A (zh) * 2017-12-13 2018-05-15 北京奇虎科技有限公司 一种对视频进行处理的方法和装置
CN110636382A (zh) * 2019-09-17 2019-12-31 北京达佳互联信息技术有限公司 在视频中添加可视对象的方法、装置、电子设备及存储介质
CN112995746B (zh) * 2019-12-18 2022-09-09 华为技术有限公司 视频处理方法、装置与终端设备
CN111641838A (zh) * 2020-05-13 2020-09-08 深圳市商汤科技有限公司 一种浏览器视频播放方法、装置以及计算机存储介质
CN111935504B (zh) * 2020-07-29 2023-04-14 广州华多网络科技有限公司 视频制作方法、装置、设备及存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010252328A (ja) 2009-04-14 2010-11-04 Avid Technology Inc マルチ・ユーザ・ビデオ編集システムにおけるレンダリング
JP2015502678A (ja) 2011-10-10 2015-01-22 ジェンアーツ インコーポレイテッド ビジュアルエフェクトのネットワークに基づくレンダリング及びステアリング
US20150117839A1 (en) 2011-10-10 2015-04-30 Vivoom, Inc. Network-based rendering and steering of visual effects
CN104967865A (zh) 2015-03-24 2015-10-07 腾讯科技(北京)有限公司 视频预览方法和装置
CN111459591A (zh) 2020-03-31 2020-07-28 杭州海康威视数字技术股份有限公司 待渲染对象处理方法、装置和终端
CN112954459A (zh) 2021-03-04 2021-06-11 网易(杭州)网络有限公司 一种视频数据的处理方法和装置

Also Published As

Publication number Publication date
EP4418661A4 (en) 2025-01-22
CN116132719A (zh) 2023-05-16
EP4418661A1 (en) 2024-08-21
JP2024545005A (ja) 2024-12-05
WO2023083064A1 (zh) 2023-05-19
CN116132719B (zh) 2025-09-30

Similar Documents

Publication Publication Date Title
CN104243668B (zh) 一种基于安卓操作系统的视频全屏播放方法及装置
JP7769112B2 (ja) ビデオ処理方法、装置、電子機器及び読み取り可能な記憶媒体
CN110496395B (zh) 一种针对虚幻引擎的组件运行方法、系统及设备
CN110418186A (zh) 音视频播放方法、装置、计算机设备和存储介质
KR102147633B1 (ko) 가변 길이 코딩된 파일을 디코딩하는 방법 및 장치
CN115209216A (zh) 视频的播放方法、装置及电子设备
WO2018184436A1 (zh) 图片的显示方法和装置
WO2025201064A1 (zh) 图像渲染方法、装置、电子设备及计算机可读介质
CN113610699B (zh) 一种硬件图层渲染调度方法、装置、设备及储存介质
CN112911390B (zh) 一种视频数据的播放方法及终端设备
CN113923472A (zh) 视频内容分析方法、装置、电子设备及存储介质
CN106940722B (zh) 一种图片显示方法及装置
JP2015029228A (ja) 記録装置およびその制御方法
CN110309079B (zh) 一种数据缓存的方法及装置
CN103761194A (zh) 一种内存管理方法及装置
JP7104327B2 (ja) 情報処理装置、仮想マシン管理プログラムおよび仮想マシン管理方法
CN117557701B (zh) 一种图像渲染方法和电子设备
CN121442171B (zh) 用于安卓操作系统的视频生成方法、设备及介质
JP5120324B2 (ja) 画像復号装置及び画像復号方法
CN118338003B (zh) 视频解码方法、装置、计算机设备、可读存储介质和程序产品
CN121616731B (zh) 图像渲染的方法、装置、设备、存储介质和程序产品
WO2020024197A1 (zh) 视频的处理方法、装置及计算机可读存储介质
JP2011160077A (ja) 復号装置および方法
WO2024235329A1 (zh) 视频跳转展示的处理方法及装置
CN118695028A (zh) 多媒体数据编码方法及相关装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240515

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240515

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20250520

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20250603

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20250901

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20250930

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20251030

R150 Certificate of patent or registration of utility model

Ref document number: 7769112

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150