(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-01-10
(54)【発明の名称】ビデオデータにおける静止フレーム検出
(51)【国際特許分類】
H04N 19/85 20140101AFI20231227BHJP
H04N 19/124 20140101ALI20231227BHJP
H04N 19/176 20140101ALI20231227BHJP
【FI】
H04N19/85
H04N19/124
H04N19/176
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023537495
(86)(22)【出願日】2021-12-21
(85)【翻訳文提出日】2023-08-08
(86)【国際出願番号】 US2021064759
(87)【国際公開番号】W WO2022146803
(87)【国際公開日】2022-07-07
(32)【優先日】2020-12-28
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】591016172
【氏名又は名称】アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド
【氏名又は名称原語表記】ADVANCED MICRO DEVICES INCORPORATED
(71)【出願人】
【識別番号】508301087
【氏名又は名称】エーティーアイ・テクノロジーズ・ユーエルシー
【氏名又は名称原語表記】ATI TECHNOLOGIES ULC
【住所又は居所原語表記】One Commerce Valley Drive East, Markham, Ontario, L3T 7X6 Canada
(74)【代理人】
【識別番号】100108833
【氏名又は名称】早川 裕司
(74)【代理人】
【識別番号】100111615
【氏名又は名称】佐野 良太
(74)【代理人】
【識別番号】100162156
【氏名又は名称】村雨 圭介
(72)【発明者】
【氏名】メディー セムサルザデー
(72)【発明者】
【氏名】ジャオ ワン
(72)【発明者】
【氏名】ヤオ ウェン ユー
(72)【発明者】
【氏名】エドワード ハロルド
(72)【発明者】
【氏名】リチャード イー. ジョージ
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159MC11
5C159PP01
5C159TA01
5C159TA52
5C159TB08
5C159TC28
5C159TD12
5C159UA02
5C159UA05
(57)【要約】
シングルパスビデオデータのための静止フレーム検出であって、ビデオデータのフレームの平均量子化パラメータが量子化パラメータ閾値を下回ったと判定することと、フレーム内のスキップされたマクロブロックの量が、スキップされたマクロブロック閾値を満たすかどうかを判定することと、スキップされたマクロブロックの量が、スキップされたマクロブロック閾値を超えたことに応じて、フレームを静止フレームとして識別することと、を含む。
【選択図】
図1
【特許請求の範囲】
【請求項1】
ビデオデータにおける静止フレーム検出の方法であって、
ビデオデータのフレームの平均量子化パラメータが量子化パラメータ閾値を下回ったと判定することと、
前記フレーム内のスキップされたマクロブロックの量が、スキップされたマクロブロック閾値を満たすかどうかを判定することと、
前記スキップされたマクロブロックの量が、前記スキップされたマクロブロック閾値を超えたことに応じて、前記フレームを静止フレームとして識別することと、を含む、
方法。
【請求項2】
前記スキップされたマクロブロックの量が、前記スキップされたマクロブロック閾値を下回ったことに応じて、前記フレームのフレーム間符号化マクロブロックの量がフレーム間マクロブロック閾値を満たすと判定することと、
前記フレームのスキップされていないマクロブロックに対する前記フレームのスキップされたマクロブロックのレート歪みコスト比がレート歪みコスト比閾値を下回ったと判定することと、
前記レート歪みコスト比が前記レート歪みコスト比閾値を下回ったことに応じて、前記フレームを前記静止フレームとして識別することと、を含む、
請求項1の方法。
【請求項3】
前記フレームが前記静止フレームとして識別されたことに応じて、次のフレームのための1つ以上の符号化属性を変更することと、
前記1つ以上の変更された符号化属性に従って前記次のフレームを符号化することと、を含む、
請求項1の方法。
【請求項4】
前記フレームを前記静止フレームとして示すデータを生成することを含む、
請求項1の方法。
【請求項5】
前記データに基づいて、前記ビデオデータの分析中に1つ以上の識別された静止フレームをスキップすることを含む、
請求項4の方法。
【請求項6】
前記ビデオデータはシングルパスビデオデータを含む、
請求項1の方法。
【請求項7】
前記平均量子化パラメータは、前記フレームの各マクロブロックを符号化するために使用される各量子化パラメータの平均を含む、
請求項1の方法。
【請求項8】
ビデオデータにおける静止フレーム検出のための装置であって、
前記装置は、
ビデオデータのフレームの平均量子化パラメータが量子化パラメータ閾値を下回ったと判定することと、
前記フレーム内のスキップされたマクロブロックの量が、スキップされたマクロブロック閾値を満たすかどうかを判定することと、
前記スキップされたマクロブロックの量が、前記スキップされたマクロブロック閾値を超えたことに応じて、前記フレームを静止フレームとして識別することと、
を含むステップを実行するように構成されている、
装置。
【請求項9】
前記ステップは、
前記スキップされたマクロブロックの量が、前記スキップされたマクロブロック閾値を下回ったことに応じて、前記フレームのフレーム間符号化マクロブロックの量がフレーム間マクロブロック閾値を満たすと判定することと、
前記フレームのスキップされていないマクロブロックに対する前記フレームのスキップされたマクロブロックのレート歪みコスト比がレート歪みコスト比閾値を下回ったと判定することと、
前記レート歪みコスト比が前記レート歪みコスト比閾値を下回ったことに応じて、前記フレームを前記静止フレームとして識別することと、を含む、
請求項8の装置。
【請求項10】
前記ステップは、
前記フレームが前記静止フレームとして識別されたことに応じて、次のフレームのための1つ以上の符号化属性を変更することと、
前記1つ以上の変更された符号化属性に従って前記次のフレームを符号化することと、を含む、
請求項8の装置。
【請求項11】
前記ステップは、前記フレームを前記静止フレームとして示すデータを生成することを含む、
請求項8の装置。
【請求項12】
前記データに基づいて、前記ビデオデータの分析中に1つ以上の識別された静止フレームをスキップすることを含む、
請求項11の装置。
【請求項13】
前記ビデオデータはシングルパスビデオデータを含む、
請求項8の装置。
【請求項14】
前記平均量子化パラメータは、前記フレームの各マクロブロックを符号化するために使用される各量子化パラメータの平均を含む、
請求項8の装置。
【請求項15】
コンピュータ可読記憶媒体に配置されたコンピュータプログラム製品であって、前記コンピュータプログラム製品は、ビデオデータにおける静止フレーム検出のためのコンピュータプログラム命令を含み、前記コンピュータプログラム命令は、実行されると、
ビデオデータのフレームの平均量子化パラメータが量子化パラメータ閾値を下回ったと判定することと、
前記フレーム内のスキップされたマクロブロックの量が、スキップされたマクロブロック閾値を満たすかどうかを判定することと、
前記スキップされたマクロブロックの量が、前記スキップされたマクロブロック閾値を超えたことに応じて、前記フレームを静止フレームとして識別することと、
を含むステップをコンピュータシステムに実行させる、
コンピュータプログラム製品。
【請求項16】
前記ステップは、
前記スキップされたマクロブロックの量が、前記スキップされたマクロブロック閾値を下回ったことに応じて、前記フレームのフレーム間符号化マクロブロックの量がフレーム間マクロブロック閾値を満たすと判定することと、
前記フレームのスキップされていないマクロブロックに対する前記フレームのスキップされたマクロブロックのレート歪みコスト比がレート歪みコスト比閾値を下回ったと判定することと、
前記レート歪みコスト比が前記レート歪みコスト比閾値を下回ったことに応じて、前記フレームを前記静止フレームとして識別することと、を含む、
請求項15のコンピュータプログラム製品。
【請求項17】
前記ステップは、
前記フレームが前記静止フレームとして識別されたことに応じて、次のフレームのための1つ以上の符号化属性を変更することと、
前記1つ以上の変更された符号化属性に従って前記次のフレームを符号化することと、を含む、
請求項15のコンピュータプログラム製品。
【請求項18】
前記ステップは、前記フレームを前記静止フレームとして示すデータを生成することを含む、
請求項15のコンピュータプログラム製品。
【請求項19】
前記データに基づいて、前記ビデオデータの分析中に1つ以上の識別された静止フレームをスキップすることを含む、
請求項18のコンピュータプログラム製品。
【請求項20】
前記ビデオデータはシングルパスビデオデータを含む、
請求項15のコンピュータプログラム製品。
【発明の詳細な説明】
【背景技術】
【0001】
2つ以上の連続するフレームが同一又は非常に類似した内容を有する場合、そのようなフレームは、静止フレーム、静止画像又は静的シーンと称される。静止フレームが他のフレームを参照して符号化される場合、静止フレームは、符号化するためにより少ないビットを必要とし、一般に、それらの符号化のために割り当てられたビットの全体を使用しない。蓄積されたビットは、符号化のための低減された量子化パラメータをもたらし、それによって、視覚的に知覚可能な品質の向上をもたらさずに、時間とともに、符号化された静止フレームのサイズが増加し得る。
【図面の簡単な説明】
【0002】
【
図1】いくつかの実施形態による、ビデオデータにおける静止フレーム検出のための例示的なコンピュータのブロック図である。
【
図2】いくつかの実施形態による、ビデオデータにおける静止フレーム検出のための例示的な方法のフローチャートである。
【
図3】いくつかの実施形態による、ビデオデータにおける静止フレーム検出のための例示的な方法のフローチャートである。
【
図4】いくつかの実施形態による、ビデオデータにおける静止フレーム検出のための例示的な方法のフローチャートである。
【
図5】いくつかの実施形態による、ビデオデータにおける静止フレーム検出のための例示的な方法のフローチャートである。
【
図6】いくつかの実施形態による、ビデオデータにおける静止フレーム検出のための例示的な方法のフローチャートである。
【
図7】いくつかの実施形態による、ビデオデータにおける静止フレーム検出のための例示的な方法のフローチャートである。
【発明を実施するための形態】
【0003】
いくつかの実施形態では、ビデオデータにおける静止フレーム検出の方法は、ビデオデータのフレームの平均量子化パラメータが量子化パラメータ閾値を下回ったと判定することと、フレーム内のスキップされたマクロブロックの量が、スキップされたマクロブロック閾値を満たすかどうかを判定することと、スキップされたマクロブロックの量が、スキップされたマクロブロック閾値を超えたことに応じて、フレームを静止フレームとして識別することと、を含む。
【0004】
いくつかの実施形態では、方法は、スキップされたマクロブロックの量が、スキップされたマクロブロック閾値を下回ったことに応じて、フレームのフレーム間符号化マクロブロックの量がフレーム間マクロブロック閾値を満たすと判定することと、フレームのスキップされていないマクロブロックに対するフレームのスキップされたマクロブロックのレート歪みコスト比がレート歪みコスト比閾値を下回ったと判定することと、レート歪みコスト比がレート歪みコスト比閾値を下回ったことに応じて、フレームを静止フレームとして識別することと、を更に含む。いくつかの実施形態では、方法は、フレームが静止フレームとして識別されたことに応じて、次のフレームのための1つ以上の符号化属性を変更することと、1つ以上の変更された符号化属性に従って次のフレームを符号化することと、を更に含む。いくつかの実施形態では、方法は、フレームを静止フレームとして示すデータを生成することを更に含む。いくつかの実施形態では、方法は、データに基づいて、ビデオデータの分析中に1つ以上の識別された静止フレームをスキップすることを更に含む。いくつかの実施形態では、ビデオデータはシングルパスビデオデータを含む。いくつかの実施形態では、平均量子化パラメータは、フレームの各マクロブロックを符号化するために使用される各量子化パラメータの平均を含む。
【0005】
いくつかの実施形態では、ビデオデータにおける静止フレーム検出のための装置は、ビデオデータのフレームの平均量子化パラメータが量子化パラメータ閾値を下回ったと判定することと、フレーム内のスキップされたマクロブロックの量が、スキップされたマクロブロック閾値を満たすかどうかを判定することと、スキップされたマクロブロックの量が、スキップされたマクロブロック閾値を超えたことに応じて、フレームを静止フレームとして識別することと、を含むステップを実行する。
【0006】
いくつかの実施形態では、ステップは、スキップされたマクロブロックの量が、スキップされたマクロブロック閾値を下回ったことに応じて、フレームのフレーム間符号化マクロブロックの量がフレーム間マクロブロック閾値を満たすと判定することと、フレームのスキップされていないマクロブロックに対するフレームのスキップされたマクロブロックのレート歪みコスト比がレート歪みコスト比閾値を下回ったと判定することと、レート歪みコスト比がレート歪みコスト比閾値を下回ったことに応じて、フレームを静止フレームとして識別することと、を更に含む。いくつかの実施形態では、ステップは、フレームが静止フレームとして識別されたことに応じて、次のフレームのための1つ以上の符号化属性を変更することと、1つ以上の変更された符号化属性に従って次のフレームを符号化することと、を更に含む。いくつかの実施形態では、ステップは、フレームを静止フレームとして示すデータを生成することを更に含む。いくつかの実施形態では、ステップは、データに基づいて、ビデオデータの分析中に1つ以上の識別された静止フレームをスキップすることを更に含む。いくつかの実施形態では、ビデオデータはシングルパスビデオデータを含む。いくつかの実施形態では、平均量子化パラメータは、フレームの各マクロブロックを符号化するために使用される各量子化パラメータの平均を含む。
【0007】
いくつかの実施形態では、非一時的なコンピュータ可読記憶媒体に配置されたコンピュータプログラム製品は、ビデオデータにおける静止フレーム検出のためのコンピュータプログラム命令を含み、コンピュータプログラム命令は、実行されると、コンピュータシステムに、ビデオデータのフレームの平均量子化パラメータが量子化パラメータ閾値を下回ったと判定することと、フレーム内のスキップされたマクロブロックの量が、スキップされたマクロブロック閾値を満たすかどうかを判定することと、スキップされたマクロブロックの量が、スキップされたマクロブロック閾値を超えたことに応じて、フレームを静止フレームとして識別することと、を含むステップを実行させる。
【0008】
いくつかの実施形態では、ステップは、スキップされたマクロブロックの量が、スキップされたマクロブロック閾値を下回ったことに応じて、フレームのフレーム間符号化マクロブロックの量がフレーム間マクロブロック閾値を満たすと判定することと、フレームのスキップされていないマクロブロックに対するフレームのスキップされたマクロブロックのレート歪みコスト比がレート歪みコスト比閾値を下回ったと判定することと、レート歪みコスト比がレート歪みコスト比閾値を下回ったことに応じて、フレームを静止フレームとして識別することと、を更に含む。いくつかの実施形態では、ステップは、フレームが静止フレームとして識別されたことに応じて、次のフレームのための1つ以上の符号化属性を変更することと、1つ以上の変更された符号化属性に従って次のフレームを符号化することと、を更に含む。いくつかの実施形態では、ステップは、フレームを静止フレームとして示すデータを生成することを更に含む。いくつかの実施形態では、ステップは、データに基づいて、ビデオデータの分析中に1つ以上の識別された静止フレームをスキップすることを更に含む。いくつかの実施形態では、ビデオデータはシングルパスビデオデータを含む。
【0009】
ビデオ符号化、特にシングルパスビデオ符号化では、レート制御アルゴリズムは、各フレームを符号化するためのビット量を割り当てる。例えば、レート制御アルゴリズムは、全体としてのビデオデータのターゲットビットレートに基づいてフレームにビットを割り当てる。レート制御アルゴリズムは、次いで、割り当てられたビットに基づいて、フレームを符号化するための又はフレームの各ブロックのための量子化パラメータ(quantization parameter、QP)を判定する。量子化パラメータは、フレームを符号化する場合に適用される量子化の程度を(例えば、フレームごとに、ブロックごとに)定義するパラメータである。したがって、より高い量子化パラメータは、より高い程度の量子化が適用され、圧縮の増加、品質の低下及びファイルサイズの縮小をもたらすことを示す。
【0010】
2つ以上の連続するフレームが同一又は非常に類似した内容を有する場合、そのようなフレームは、静止フレーム、静止画像又は静的シーンと称される。例えば、人間の活動がないシーンのビデオは、ほとんどの部分において同一の内容を有する。いくつかの連続する静止フレームがビデオデータ内で符号化される場合、静止フレームは、他のフレームを参照するフレーム間として符号化され得る。したがって、静止フレームは、符号化するためにより少ないビットを必要とし、一般に、それらの符号化のために割り当てられたビットの全体を使用しない。既存の解決策では、特にシングルパスビデオ符号化の場合、これは、割り当てられたビットのより多くが使用されるように、レート制御アルゴリズムによりQPを低減させる。その結果、符号化された静止フレームは、高いピーク信号対雑音比(Peak Signal to Noise Ratio、PSNR)を有することになる。静止フレームの期間が終了し、より多くの動きを有するフレームが符号化される場合、エンコーダは静止フレームの期間が終了したことを知らないので、レート制御アルゴリズムは、より小さいQPでこれらのフレームを符号化する。動きのあるフレームに対して低いQPを使用することによって、エンコーダは、割り当てられたビットを迅速に使い果たし、ビット使用をターゲットの近くに保つために、フレーム内の後続の符号化マクロブロックに対して増加されたQPをトリガする。これは、(マクロブロックが低いQPで符号化されることによる)高品質の上側部分と(後者のマクロブロックが高いQPで符号化されることによる)低品質の下側部分とを有するフレーム等のように、様々な知覚可能な品質差をもたらす可能性がある。
【0011】
特に静止フレームの場合、増加したビット割り当て及びあるポイント(例えば、PSNRについて40dB)を超える高いPSNRからの視覚的品質の利益はない。言い換えれば、静止フレームが特定のPSNRに達すると、PSNRを更に増加させるために追加のビットを割り当てても、静止フレームにおいて目に見える品質改善をもたらさない。逆に、動きを捕捉するフレームについては、動きフレームのPSNRは典型的に静止フレームのPSNRより低いので、増加したビット割り当てによるPSNRの利得は、知覚可能な品質の向上をもたらす。したがって、特にシングルパスビデオ符号化アプリケーションにおいて、後続の符号化フレームに対するビットの割り当てを制御するために、ビデオ符号化中に静止フレームを識別することが有利である。ビデオデータ内の静止フレームを識別することによって、追加の利点も提供される。例えば、ビデオデータに対して何らかの分析(例えば、セキュリティ又は監視フッテージの分析)を行う必要がある場合、識別された静止フレームの除去又はスキップは、分析されるフレームの数を低減することによって分析の効率を改善する。
【0012】
本願によるビデオデータにおける静止フレーム検出は、概して、コンピュータを用いて、すなわち自動化されたコンピューティング機械を用いて実装される。したがって、更なる説明のために、
図1は、特定の実施形態による、ビデオデータにおける静止フレーム検出のために構成された例示的なコンピュータ100を含むコンピューティング機械のブロック図を示す。例示的なコンピュータ100及び本明細書で記載する手法は、パーソナルコンピュータ、セキュリティ機器、ビデオカメラ、モバイルデバイス、ゲームデバイス、セットトップボックス等を含む、様々なデバイス又はシナリオで使用することができる。
図1のコンピュータ100は、少なくとも1つのコンピュータプロセッサ102又は「CPU」、並びに、高速メモリバス106及びバスアダプタ108を介してプロセッサ102及びコンピュータ100の他の構成要素に接続されるランダムアクセスメモリ104(random access memory、「RAM」)を含む。
【0013】
RAM104には、オペレーティングシステム110が記憶される。特定の実施形態によるビデオデータにおける静止フレーム検出のために構成されたコンピュータにおいて有用なオペレーティングシステムは、UNIX(登録商標)、Linux(登録商標)、Microsoft Windows(登録商標)、及び、当業者が想到する他のものを含む。
図1の例におけるオペレーティングシステム110は、RAM104内に示されているが、そのようなソフトウェアの多くの構成要素は、典型的には、例えば、ディスクドライブ等のデータストレージ112等の不揮発性メモリ内にも記憶される。また、RAMには、特定の実施形態によるビデオデータにおける静止フレーム検出のためのモジュールである符号化モジュール114aが記憶される。
【0014】
図1のコンピュータ100は、拡張バス118及びバスアダプタ108を介してプロセッサ102及びコンピュータ100の他の構成要素に結合されたディスクドライブアダプタ116を含む。ディスクドライブアダプタ116は、不揮発性データストレージを、データストレージ112の形態でコンピュータ100に接続する。特定の実施形態によるビデオデータにおける静止フレーム検出のために構成されたコンピュータにおいて有用なディスクドライブアダプタは、インテグレーティドドライブエレクトロニクス(Integrated Drive Electronics、「IDE」)アダプタ、スモールコンピュータシステムインターフェース(Small Computer System Interface、「SCSI」)アダプタ、及び、当業者が想到する他のものを含む。いくつかの実施形態では、不揮発性コンピュータメモリは、当業者が想到するように、光ディスクドライブ、電気的消去可能プログラマブル読み取り専用メモリ(electrically erasable programmable read-only memory、いわゆる「EEPROM」又は「フラッシュ」メモリ)、RAMドライブ等として実装される。
【0015】
図1の例示的なコンピュータ100は、1つ以上の入出力(input/output、「I/O」)アダプタ120を含む。I/Oアダプタは、例えば、コンピュータディスプレイスクリーン等のディスプレイデバイスへの出力、並びに、キーボード及びマウス等のユーザ入力デバイス122からのユーザ入力を制御するためのソフトウェアドライバ及びコンピュータハードウェアを通して、ユーザ指向入力/出力を実装する。
図1の例示的なコンピュータ100は、ディスプレイスクリーン又はコンピュータモニタ等のディスプレイデバイス126へのグラフィック出力のために特別に設計されたI/Oアダプタの一例であるビデオアダプタ124を含む。ビデオアダプタ124は、高速ビデオバス128、バスアダプタ108、及び、同じく高速バスであるフロントサイドバス130を介してプロセッサ102に接続される。
【0016】
図1の例示的なコンピュータ100は、他のコンピュータとのデータ通信及びデータ通信ネットワークとのデータ通信のための通信アダプタ132を含む。そのようなデータ通信は、RS-232接続を通して、ユニバーサルシリアルバス(Universal Serial Bus、「USB」)等の外部バスを通して、IPデータ通信ネットワーク等のデータ通信ネットワークを通して、及び/又は、当業者が想到する他の方法で、シリアルに行われる。通信アダプタは、あるコンピュータが別のコンピュータに直接的に又はデータ通信ネットワークを介してデータ通信を送信する、ハードウェアレベルのデータ通信を実装する。特定の実施形態によるビデオデータにおける静止フレーム検出のために構成されたコンピュータにおいて有用な通信アダプタの例としては、有線ダイヤルアップ通信のためのモデム、有線データ通信のためのイーサネット(登録商標)(IEEE802.3)アダプタ、及び、無線データ通信のための802.11アダプタが挙げられる。
【0017】
ビデオデータにおける静止フレーム検出を実行するために、コンピュータ100(例えば、符号化モジュール114)は、ビデオデータのフレームを符号化する。ビデオデータのフレームは、いくつかの以前に判定されたビットの割り当て及び量子化パラメータに従って符号化される。いくつかの実施形態では、フレームは、1つ以上の以前に符号化されたフレームを参照するフレーム間として符号化される。フレームが静止フレームであるかどうかの判定を開始するために、符号化モジュール114は、フレームの平均QPがQP閾値より低いかどうかを判定する。例えば、フレームが複数のマクロブロックとして符号化され、各マクロブロックがフレームのピクセルの連続部分を含むと仮定する。本明細書で説明するように、マクロブロックは、フレームの処理単位又は機能単位であり、いかなる特定のビデオ規格にも限定又は制限されない。したがって、マクロブロックに関して実行されるものとして本明細書で説明されるステップ又はプロセスは、フレーム又はビデオコーディングの他の機能ユニット又は処理ユニット上でも実行され得る。各マクロブロックは、判定されたQPに従って符号化される。したがって、フレームの平均QP(QPavg)は、フレームの各マクロブロックを符号化するために使用される全てのQPの平均である。QP閾値(QPthr)は、予め定義された閾値である。例えば、いくつかの実施形態では、QP閾値は、所望のビデオ品質(例えば、主観的に「良好な」ビデオ品質)を生成する閾値として選択される。例えば、QP閾値は、25として選択されるか又は理解され得るようにエンジニアリング若しくは設計考慮事項に従って選択された別の値として選択される。
【0018】
例えば、QPavg>QPthrである場合、フレームは静止フレームとして識別されない。そうではなく、QPavg≦QPthrである場合、符号化モジュール114は、符号化フレームが静止フレームであるかどうかを判定する際に次のステップに進む。次に、符号化モジュール114は、フレーム内のスキップされたマクロブロックの量(MBskip)が予め定義された閾値(例えば、スキップされたマクロブロック閾値(MBskip_thr))を満たすかどうかを判定する。上述したように、フレームが、以前に符号化されたフレームを参照するフレーム間として符号化される場合、フレーム内の1つ以上のマクロブロックは、以前のフレームの1つ以上の対応するマクロブロックへの参照として符号化される。スキップされたマクロブロック(例えば、SKIPマクロブロック)は、以前に符号化されたマクロブロックを参照する特定のタイプのフレーム間マクロブロック符号化である。例えば、スキップされたマクロブロックは、いかなる残差誤差又は動きベクトルもコーディングすることなく、以前に符号化されたマクロブロックを参照することによって符号化される。ビデオデータのデコーダは、次いで、他の復号化されたマクロブロックの他の動きベクトルに基づいて、スキップされたマクロブロックの動きベクトルを推定する。エンコーダは、通常、符号化されるマクロブロックがその参照と同一であること、又は、マクロブロックを符号化するためのQPが高く、符号化するのに十分なビットを有していないため、という2つのシナリオのうち何れかに起因して、マクロブロックを、スキップされたマクロブロックとして符号化する。MBskip≧MBskip_thrであるかどうかの評価は、QPavg≦QPthrである場合に行われるので、後者のシナリオの可能性は低減又は排除される。
【0019】
いくつかの実施形態では、フレーム内のスキップされたマクロブロックの量MBskipは、フレーム内の他のマクロブロックに対するスキップされたマクロブロックのパーセンテージ又は比として定義される。したがって、MBskip_thrは、パーセンテージ又は比閾値として定義される。当業者は、いくつかの実施形態では、MBskipが別の手法に従って表現され、MBskip_thrが相応に定義されることを理解するであろう。MBskipがMBskip_thrを満たす場合(例えば、MBskip≧MBskip_thr)、符号化モジュール114は、フレームを静止フレームとして識別する。
【0020】
MBskipがMBskip_thrを満たさない場合(例えば、MBskip<MBskip_thr)、フレームは静止フレームである可能性が依然としてある。例えば、いくつかの実施形態では、フレームは、スキップされたマクロブロック以外のフレーム間マクロブロック符号化を主に使用して符号化される。例えば、フレームが高ビットレートに従って符号化される場合、フレームが以前のフレームと非常に類似していても、エンコーダは、利用可能なビット量が多いために、いくつかのマクロブロックを、スキップされていないマクロブロックとして符号化する。したがって、MBskip<MBskip_thrである場合、符号化モジュール114は、フレームのフレーム間符号化マクロブロックの量MBinterがフレーム間マクロブロック閾値MBinter_thrを満たすかどうかを判定する。いくつかの実施形態では、フレームのフレーム間符号化マクロブロックの量MBinterは、フレーム内の他のマクロブロックに対するフレーム間符号化マクロブロックのパーセンテージ又は比として定義される。したがって、MBinter_thrは、パーセンテージ又は比閾値として定義される。当業者は、いくつかの実施形態では、MBinterが別の手法に従って表現され、MBinter_thrが相応に定義されることを理解するであろう。
【0021】
MBinterがMBinter_thrを下回った場合(例えば、MBinter<MBinter_thr)、符号化モジュール114は、フレームを非静止フレームとして識別する。そうではなく、MBinter≧MBinter_thrである場合、符号化モジュール114は、スキップされていないマクロブロックのレート歪みコスト(RDCost)を、スキップされたマクロブロックのRDCostと比較して、RDRationon-skipを判定する。例えば、符号化モジュール114は、フレーム内のスキップされたマクロブロックの総RDCost(RDCostSkipframe)と、フレーム内の(スキップされた及びスキップされていないフレーム間マクロブロックを含む)全てのフレーム間マクロブロックの総RDCost(RDCostInterframe)と、を計算する。符号化モジュール114は、スキップされたマクロブロックの平均RDCost(RDCostSkipMB)をRDCostSkipframe/Num_Skip_MBとして計算し、ここで、Num_Skip_MBは、フレーム内のスキップされたマクロブロックの数である。符号化モジュール114は、スキップされていないフレーム間マクロブロックの平均RDCost(RDCostNonSkipMB)を(RDCostInterframe-RDCostSkipframe)/(Picture_size_in_MBs-Num_Skip_MB)として計算し、ここで、Picture_size_in_MBsは、フレーム内のマクロブロックの総数である。次いで、比RDRationon-skipは、(RDCostNonSkipMB-RDCostSkipMB)/(RDCostNonSkipMB)として計算される。符号化モジュール114は、次いで、比RDRationon-skipを閾値RDRationon-skip_thrと比較する。RDRationon-skipが閾値を下回った場合(例えば、RDRationon-skip<RDRationon-skip_thr)、フレームは静止フレームとして識別される。
【0022】
いくつかの実施形態では、符号化モジュール114は、フレームを静止フレームとして識別したことに応じて、1つ以上のアクションをとる。例えば、シングルパスビデオ符号化のようないくつかの実施形態では、符号化モジュール114は、符号化される次のフレーム(例えば、静止フレームとして識別されたフレームの後に連続して生じるフレーム)の1つ以上の符号化属性を修正する。一例として、次のフレーム又は次のフレームの少なくとも一部(例えば、次のフレームの1つ以上のマクロブロック)を符号化するためのQPが変更される。いくつかの実施形態では、QPを変更することは、レート制御アルゴリズムによって判定されるように、QPを増加させること、又は、QPの低減を防止することを含む。したがって、次のフレームのために使用されるビット数が少なくなる。一連のフレームが静止フレームとして識別される場合、この一連のフレームに対するビットの割り当てを減らすことにより、後に符号化される動きフレームに追加のビットを割り当てることができ、ターゲットビットレートを維持しながら動きフレームの品質を高めることができる。
【0023】
静止フレームを識別したことに応じて符号化モジュール114によってとられるアクションの別の例として、いくつかの実施形態では、符号化モジュール114は、静止フレームを示すデータを生成する。例えば、ビデオデータのタグ又は他のメタデータは、フレームが静止フレームであることを示す。フレーム及び潜在的に他のフレームを静止フレームとして示すデータは、理解され得るように、符号化モジュール114又は別のサービスによる様々な動作を容易にする。例えば、いくつかの実施形態では、1つ以上の識別された静止フレームは、ビデオデータにおいてスキップされる。したがって、ビデオデータの手動又はコンピュータ支援分析を実行する場合、分析されるビデオの総量が低減される。例えば、ビデオデータがセキュリティフッテージを含むと仮定すると、静止フレームは重要な情報を含まない可能性が高いので、静止フレームをバイパスすることは、セキュリティフッテージをレビューするのを支援する。
【0024】
上述の手法によれば、様々な比較の結果として、フレームは静止フレームとして識別されることになる。したがって、そのような比較の結果として、比較が反対の結果を生成する場合、フレームは非静止フレーム(例えば、動きフレーム)として識別されることにもなる。例えば、QPavg>QPthrである場合、フレームは静止フレームとして識別されない。別の例として、QPavg≦QPthrであるが、MBskip<MBskip_thr及びMBinter<MBinter_thrである場合、フレームは静止フレームとして識別されない。更なる例として、QPavg≦QPthr及びMBskip<MBskip_thr、及びMBinter≧MBinter_thrであるが、RDRationon-skip≧RDRationon-skip_thrである場合、フレームは静止フレームとして識別されない。フレームが静止フレームとして識別されない場合、いくつかの実施形態では、符号化モジュール114は、必要に応じて、レート制御アルゴリズムが次のフレームのQPを変更することを可能にする。当業者は、QP又は他の符号化属性に対する特定の変更が、実装されている特定のレート制御アルゴリズムに従って変化することを理解するであろう。
【0025】
更なる説明のために、
図2は、ビデオデータにおける静止フレーム検出のための例示的な方法を示すフローチャートを示し、この方法は、ビデオデータのフレームの平均量子化パラメータが量子化パラメータ閾値を下回ったと(例えば、符号化モジュール114によって)判定すること202を含む。いくつかの実施形態では、フレームは、1つ以上の以前に符号化されたフレームを参照するフレーム間として符号化される。フレームが複数のマクロブロックとして符号化され、各マクロブロックがフレームのピクセルの連続部分を含むと仮定する。各マクロブロックは、判定されたQPに従って符号化される。したがって、フレームの平均QP(QP
avg)は、フレームの各マクロブロックを符号化するために使用される全てのQPの平均である。QP閾値(QP
thr)は、予め定義された閾値である。例えば、いくつかの実施形態では、QP閾値は、所望のビデオ品質(例えば、主観的に「良好な」ビデオ品質)を生成する閾値として選択される。例えば、QP閾値は、25として選択されるか、又は、理解され得るようにエンジニアリング又は設計考慮事項に従って選択された別の値として選択される。
【0026】
また、
図2の方法は、フレーム内のスキップされたマクロブロックの量(MB
skip)が、スキップされたマクロブロック閾値(MB
skip_thr)を満たすかどうかを(例えば、符号化モジュール204によって)判定すること204を含む。上述したように、フレームが、以前に符号化されたフレームを参照するフレーム間として符号化される場合、フレーム内の1つ以上のマクロブロックは、以前のフレームの1つ以上の対応するマクロブロックへの参照として符号化される。スキップされたマクロブロック(例えば、SKIPマクロブロック)は、以前に符号化されたマクロブロックを参照する特定のタイプのフレーム間マクロブロック符号化である。例えば、スキップされたマクロブロックは、いかなる残差誤差又は動きベクトルもコーディングすることなく、以前に符号化されたマクロブロックを参照することによって符号化される。いくつかの実施形態では、フレーム内のスキップされたマクロブロックの量MB
skipは、フレーム内の他のマクロブロックに対するスキップされたマクロブロックのパーセンテージ又は比として定義される。したがって、MB
skip_thrは、パーセンテージ又は比閾値として定義される。当業者は、いくつかの実施形態では、MB
skipが別の手法に従って表現され、MB
skip_thrが相応に定義されることを理解するであろう。フレーム内のスキップされたマクロブロックの量が、スキップされたマクロブロック閾値を満たす場合、
図2の方法は、フレームを静止フレームとして(例えば、符号化モジュール114によって)識別すること206に進む。言い換えれば、MB
skipがMB
skip_thrを満たす場合(例えば、MB
skip≧MB
skip_thr)、符号化モジュール114は、フレームを静止フレームとして識別する。
【0027】
更なる説明のために、
図3は、ビデオデータにおける静止フレーム検出のための例示的な方法を示すフローチャートを示し、この方法は、ビデオデータのフレームの平均量子化パラメータが量子化パラメータ閾値を下回ったと(例えば、符号化モジュール114によって)判定すること202と、フレーム内のスキップされたマクロブロックの量が、スキップされたマクロブロック閾値を満たすかどうかを(例えば、符号化モジュール204によって)判定すること204と、(例えば、フレーム内のスキップされたマクロブロックの量が、スキップされたマクロブロック閾値を満たすことに応じて、符号化モジュール114によって)フレームを静止フレームとして識別すること206と、を含む。
【0028】
図3の方法は、フレーム内のスキップされたマクロブロックのマウントが、スキップされたマクロブロック閾値を下回ったと判定された場合204には(例えば、MB
skip<MB
skip_thrである場合)、
図3の方法は、フレームのフレーム間符号化マクロブロックの量がフレーム間マクロブロック閾値を満たすと判定すること302に進むという点で、
図2とは異なる。いくつかの実施形態では、フレームのフレーム間符号化マクロブロックの量MB
interは、フレーム内の他のマクロブロックに対するフレーム間符号化マクロブロックのパーセンテージ又は比として定義される。したがって、MB
inter_thrは、パーセンテージ又は比閾値として定義される。当業者は、いくつかの実施形態では、MB
interが別の手法に従って表現され、MB
inter_thrが相応に定義されることを理解するであろう。
【0029】
また、
図3の方法は、フレームのスキップされていないマクロブロックに対するフレームのスキップされたマクロブロックのレート歪みコスト比がレート歪みコスト比閾値を下回ったと(例えば、MB
inter≧MB
inter_thrに応じて、符号化モジュール114によって)判定すること304を含む。例えば、符号化モジュール114は、フレーム内のスキップされたマクロブロックの総RDCost(RDCostSkip
frame)と、フレーム内の(スキップされた及びスキップされていないフレーム間マクロブロックを含む)全てのフレーム間マクロブロックの総RDCost(RDCostInter
frame)と、を計算する。符号化モジュール114は、スキップされたマクロブロックの平均RDCost(RDCostSkip
MB)をRDCostSkip
frame/Num_Skip_MBとして計算し、ここで、Num_Skip_MBは、フレーム内のスキップされたマクロブロックの数である。また、符号化モジュール114は、スキップされていないフレーム間マクロブロックの平均RDCost(RDCostNonSkip
MB)を(RDCostInter
frame-RDCostSkip
frame)/(Picture_size_in_MBs-Num_Skip_MB)として計算し、ここで、Picture_size_in_MBsは、フレーム内のマクロブロックの総数である。次いで、比RDRatio
non-skipは、(RDCostNonSkip
MB-RDCostSkip
MB)/RDCostNonSkip
MBとして計算される。符号化モジュール114は、次いで、比RDRatio
non-skipを閾値RDRatio
non-skip_thrと比較する。また、
図3の方法は、レート歪みコスト比がレート歪みコスト閾値を下回ったことに応じて(例えば、RDRatio
non-skip<RDRatio
non-skip_thr)、フレームを静止フレームとして(例えば、符号化モジュール114によって)識別すること306を含む。
【0030】
更なる説明のために、
図4は、ビデオデータにおける静止フレーム検出のための例示的な方法を示すフローチャートを示し、この方法は、ビデオデータのフレームの平均量子化パラメータが量子化パラメータ閾値を下回ったと(例えば、符号化モジュール114によって)判定すること202と、フレーム内のスキップされたマクロブロックの量が、スキップされたマクロブロック閾値を満たすかどうかを(例えば、符号化モジュール204によって)判定すること204と、(例えば、フレーム内のスキップされたマクロブロックの量が、スキップされたマクロブロック閾値を満たすことに応じて、符号化モジュール114によって)フレームを静止フレームとして識別すること206と、を含む。
【0031】
図4の方法は、次のフレームの1つ以上の符号化属性を変更(修正)すること402を含むという点で、
図2とは異なる。一例として、次のフレーム又は次のフレームの少なくとも一部分(例えば、次のフレームの1つ以上のマクロブロック)を符号化するためのQPが変更される。いくつかの実施形態では、QPを変更することは、レート制御アルゴリズムによって判定されるように、QPを増加させること又はQPの低減を防止することを含む。したがって、次のフレームのために使用されるビット数が少なくなる。一連のフレームが静止フレームとして識別される場合、この一連のフレームに対するビットの割り当てを減らすことにより、後に符号化される動きフレームに追加のビットを割り当てることができ、ターゲットビットレートを維持しながら動きフレームの品質を高めることができる。また、
図4の方法は、1つ以上の変更された符号化属性に従って次のフレームを符号化すること404を含む。
【0032】
更なる説明のために、
図5は、ビデオデータにおける静止フレーム検出のための例示的な方法を示すフローチャートを示し、この方法は、ビデオデータのフレームの平均量子化パラメータが量子化パラメータ閾値を下回ったと(例えば、符号化モジュール114によって)判定すること202と、フレーム内のスキップされたマクロブロックの量が、スキップされたマクロブロック閾値を満たすかどうかを(例えば、符号化モジュール204によって)判定すること204と、(例えば、フレーム内のスキップされたマクロブロックの量が、スキップされたマクロブロック閾値を満たすことに応じて、符号化モジュール114によって)フレームを静止フレームとして識別すること206と、を含む。
【0033】
図5の方法は、フレームを静止フレームとして示すデータを生成すること502を含むという点で、
図2とは異なる。例えば、符号化モジュール114は、フレームが静止フレームであることを示すビデオデータのタグ又は他のメタデータを生成する。追加のフレームが符号化され、潜在的に静止フレームとして識別されるので、符号化モジュール114は、1つ以上の識別された静止フレームを示すビデオデータのデータを生成する。
【0034】
更なる説明のために、
図6は、ビデオデータにおける静止フレーム検出のための例示的な方法を示すフローチャートを示し、この方法は、ビデオデータのフレームの平均量子化パラメータが量子化パラメータ閾値を下回ったと(例えば、符号化モジュール114によって)判定すること202と、フレーム内のスキップされたマクロブロックの量が、スキップされたマクロブロック閾値を満たすかどうかを(例えば、符号化モジュール204によって)判定すること204と、(例えば、フレーム内のスキップされたマクロブロックの量が、スキップされたマクロブロック閾値を満たすことに応じて、符号化モジュール114によって、)フレームを静止フレームとして識別すること206と、フレームを静止フレームとして示すデータを生成すること502と、を含む。
【0035】
図6の方法は、ビデオデータから、1つ以上の識別された静止フレームをスキップすること602を含むという点で、
図5とは異なる。例えば、符号化モジュール114又は別のモジュールは、理解され得るように、ビデオデータ内の静止フレームを示す生成されたデータにアクセスする。識別された静止フレームは、次いで、ビデオデータからスキップされる(例えば、バイパスされる)。したがって、静止フレームは、データの手動又は機械支援分析に関連する情報を含む可能性が低いので、分析されるビデオデータの総量が低減される。
【0036】
更なる説明のために、
図7は、ビデオデータにおける静止フレーム検出のための例示的な方法を示すフローチャートを示す。
図7は、ビデオデータのフレームの平均量子化パラメータが量子化パラメータ閾値を下回ったと(例えば、符号化モジュール114によって)判定すること202と、フレーム内のスキップされたマクロブロックの量が、スキップされたマクロブロック閾値を満たすかどうかを(例えば、符号化モジュール204によって)判定すること204と、(例えば、フレーム内のスキップされたマクロブロックの量が、スキップされたマクロブロック閾値を満たすことに応じて、符号化モジュール114によって)フレームを静止フレームとして識別すること206と、フレーム内のスキップされたマクロブロックの量が、スキップされたマクロブロック閾値を下回ったことに応じて、フレームのフレーム間符号化マクロブロックの量がフレーム間マクロブロック閾値を満たすと判定すること302と、フレームのスキップされていないマクロブロックに対するフレームのスキップされたマクロブロックのレート歪みコスト比がレート歪みコスト比閾値を下回ったと判定すること304と、レート歪みコスト比がレート歪みコスト比閾値を下回ったことに応じて、ビデオデータ内のフレームを静止フレームとして識別すること306と、を含むという点で、
図3と同様である。
【0037】
図7の方法は、次のフレームの1つ以上の符号化属性を変更(修正)すること702を含むという点で、
図3とは異なる。一例として、次のフレーム又は次のフレームの少なくとも一部(例えば、次のフレームの1つ以上のマクロブロック)を符号化するためのQPが変更される。いくつかの実施形態では、QPを変更することは、レート制御アルゴリズムによって判定されるように、QPを増加させること又はQPの低減を防止することを含む。したがって、次のフレームのために使用されるビット数が少なくなる。一連のフレームが静止フレームとして識別される場合、この一連のフレームに対するビットの割り当てを減らすことにより、後に符号化される動きフレームに追加のビットを割り当てることができ、ターゲットビットレートを維持しながら動きフレームの品質を高めることができる。また、
図7の方法は、1つ以上の変更された符号化属性に従って次のフレームを符号化すること704を含む。
【0038】
上記の説明を考慮して、読者は、ビデオデータにおける静止フレーム検出が以下の利点を含むことを認識するであろう。
●識別された静止フレームに基づいてフレームの符号化を変更し、それによって、静止していない動きフレームに割り当てられるビットの量を増加させることによって全体的なビデオ品質を維持又は改善することによる、コンピューティングシステムの性能の改善。
●識別された静止フレームをスキップすることによってビデオデータを分析する際の計算効率を増加させることによる、コンピューティングシステムの性能の改善。
【0039】
本開示の例示的な実施形態は、ビデオデータにおける静止フレーム検出のための十分に機能的なコンピュータシステムのコンテキストにおいて主に記載されている。しかしながら、当業者の読者は、本開示が、任意の好適なデータ処理システムとともに使用するためにコンピュータ可読記憶媒体に配置されたコンピュータプログラム製品に具現化され得ることを認識するであろう。そのようなコンピュータ可読記憶媒体は、磁気媒体、光学媒体又は他の好適な媒体を含む、機械可読情報のための任意の記憶媒体であり得る。そのような媒体の例としては、ハードドライブ又はディスケット内の磁気ディスク、光学ドライブのためのコンパクトディスク、磁気テープ、及び当業者に着想されるような他のものを含む。当業者であれば、好適なプログラミング手段を有する任意のコンピュータシステムが、コンピュータプログラム製品で具現化された本開示の方法のステップを実行することが可能であることを直ちに認識するであろう。また、当業者は、本明細書に記載の例示的な実施形態のいくつかがコンピュータハードウェア上でインストール及び実行されるソフトウェアに向けられているが、それにもかかわらず、ファームウェアとして又はハードウェアとして実装される代替的な実施形態が本開示の範囲内に十分にあることも認識するであろう。
【0040】
本開示は、システム、方法及び/又はコンピュータプログラム製品とすることができる。コンピュータプログラム製品は、プロセッサに本開示の態様を実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体を含むことができる。
【0041】
コンピュータ可読記憶媒体は、命令実行デバイスによって使用するための命令を保持及び記憶することができる有形デバイスとすることができる。コンピュータ可読記憶媒体は、例えば、電子記憶デバイス、磁気記憶デバイス、光学記憶デバイス、電磁記憶デバイス、半導体記憶デバイス、又は、上記の任意の好適な組み合わせであり得るが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的リストは、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(read-only memory、ROM)、消去可能なプログラマブル読み取り専用メモリ(erasable programmable read-only memory、EPROM若しくはフラッシュメモリ)、スタティックランダムアクセスメモリ(static random access memory、SRAM)、携帯型コンパクトディスク専用メモリ(compact disc read-only memory、CD-ROM)、デジタル多用途デバイス(digital versatile disk、DVD)、メモリスティック、フロッピー(登録商標)ディスク、パンチカード又はその上に記録された命令を有する溝内の隆起構造等の機械的にコード化されたデバイス、及び、上記の任意の好適な組み合わせを含む。本明細書で使用される場合、コンピュータ可読記憶媒体は、電波若しくは他の自由に伝播する電磁波等、導波管若しくは他の伝送媒体(例えば、光ファイバケーブルを通過する光パルス)を通って伝播する電磁波、又は、ワイヤを通って伝送される電気信号等の一時的な信号それ自体であると解釈されるべきではない。
【0042】
本明細書に記載されたコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、又は、ネットワーク(例えば、インターネット、ローカルエリアネットワーク、広域ネットワーク及び/若しくは無線ネットワーク)を介して外部コンピュータ若しくは外部記憶デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ及び/又はエッジサーバを含むことができる。各コンピューティング/処理デバイス内のネットワークアダプタカード又はネットワークインターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、コンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に記憶するために伝送する。
【0043】
本開示の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(instruction-set-architecture、ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、又は、Smalltalk、C等のオブジェクト配向プログラミング言語、並びに、「C」プログラミング言語又は同様のプログラミング言語等の従来の手続きプログラミング言語を含む1つ以上のプログラミング言語の任意の組み合わせで書き込まれたソースコード又はオブジェクトコードの何れかとすることができる。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で完全に、ユーザのコンピュータ上で部分的に、スタンドアロンソフトウェアパッケージとして、ユーザのコンピュータ上で部分的に、リモートコンピュータ上で部分的に、又は、リモートコンピュータ若しくはサーバ上で完全に実行することができる。後者のシナリオでは、リモートコンピュータは、ローカルエリアネットワーク(local area network、LAN)若しくは広域ネットワーク(wide area network、WAN)を含む任意のタイプのネットワークを通してユーザのコンピュータに接続することができるか、又は、外部コンピュータ(例えば、インターネットサービスプロバイダを使用するインターネットを介して)に接続することができる。いくつかの実施形態では、例えば、プログラマブルロジック回路、フィールドプログラマブルゲートアレイ(field-programmable gate array、FPGA)又はプログラマブルロジックアレイ(programmable logic array、PLA)を含む電子回路は、本開示の態様を実施するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路を個別化することによって、コンピュータ可読プログラム命令を実行することができる。
【0044】
本開示の態様は、本開示の実施形態による方法、装置(システム)及びコンピュータプログラム製品のフローチャート及び/又はブロック図を参照して本明細書に記載されている。フローチャート及び/又はブロック図の各ブロック、並びに、フローチャート及び/又はブロック図におけるブロックの組み合わせは、コンピュータ可読プログラム命令によって実装することができることが理解されよう。
【0045】
これらのコンピュータ可読プログラム命令は、コンピュータ又は他のプログラマブルデータ処理装置のプロセッサを介して実行される命令が、フローチャート及び/又はブロック図の1つ以上のブロックで指定された機能/行為を実施するための手段を作成するような機械を生成するように、汎用コンピュータ、専用コンピュータ又は他のプログラマブルデータ処理装置のプロセッサに提供することができる。これらのコンピュータ可読プログラム命令は、その上に記憶された命令を有するコンピュータ可読記憶媒体が、フローチャート及び/又はブロック図の1つ以上のブロックで指定された機能/行為の態様を実装する命令を含む製造物品を含むように、コンピュータ、プログラマブルデータ処理装置及び/又は他のデバイスに、特定の方法で機能するように指示することができる、コンピュータ可読記憶媒体に記憶することができる。
【0046】
また、コンピュータ可読プログラム命令は、コンピュータ、他のプログラマブルデータ処理装置又は他のデバイスにロードされて、コンピュータ、他のプログラマブル装置又は他のデバイス上で実行される命令が、フローチャート及び/又はブロック図の1つ以上のブロックで指定された機能/行為を実装するように、コンピュータ実装プロセスを生成するために、コンピュータ、他のプログラマブル装置又は他のデバイス上で一連の動作ステップを実施させることができる。
【0047】
図中のフロー図及びブロック図は、本開示の様々な実施形態によるシステム、方法及びコンピュータプログラム製品の可能な実装形態のアーキテクチャ、機能及び動作を例示する。これに関して、フロー図又はブロック図の各ブロックは、指定された論理機能を実装するための1つ以上の実行可能命令を含む、命令のモジュール、セグメント又は部分を表すことができる。いくつかの代替的な実装形態では、ブロックに記載されている機能は、図に記載された順序から外れて発生する可能性がある。例えば、連続して示される2つのブロックは、実際には実質的に同時に実行されることができ、又は、ブロックは、関与する機能に応じて、逆の順序で実行されることができる。ブロック図及び/又はフロー図の各ブロック、並びに、ブロック図及び/又はフロー図におけるブロックの組み合わせは、指定された機能若しくは行為を実行するか、又は、専用ハードウェアとコンピュータ命令との組み合わせを行う、専用ハードウェアベースのシステムによって実装することができることにも留意されたい。
【0048】
本開示の様々な実施形態において修正及び変更を行うことができることは、上記の記載から理解されるであろう。本明細書における記載は、例示のみを目的としており、限定的な意味で解釈されるべきではない。本開示の範囲は、以下の特許請求の範囲の文言によってのみ限定される。
【手続補正書】
【提出日】2023-08-21
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
ビデオデータにおける静止フレーム検出の方法であって、
ビデオデータのフレームの平均量子化パラメータが量子化パラメータ閾値を下回ったと判定することと、
前記フレーム内のスキップされたマクロブロックの量が、スキップされたマクロブロック閾値を満たすかどうかを判定することと、
前記スキップされたマクロブロックの量が、前記スキップされたマクロブロック閾値を超えたことに応じて、前記フレームを静止フレームとして識別することと、を含む、
方法。
【請求項2】
前記スキップされたマクロブロックの量が、前記スキップされたマクロブロック閾値を下回ったことに応じて、前記フレームのフレーム間符号化マクロブロックの量がフレーム間マクロブロック閾値を満たすと判定することと、
前記フレームのスキップされていないマクロブロックに対する前記フレームのスキップされたマクロブロックのレート歪みコスト比がレート歪みコスト比閾値を下回ったと判定することと、
前記レート歪みコスト比が前記レート歪みコスト比閾値を下回ったことに応じて、前記フレームを前記静止フレームとして識別することと、を含む、
請求項1の方法。
【請求項3】
前記フレームが前記静止フレームとして識別されたことに応じて、次のフレームのための1つ以上の符号化属性を変更することと、
前記1つ以上の変更された符号化属性に従って前記次のフレームを符号化することと、を含む、
請求項1の方法。
【請求項4】
前記フレームを前記静止フレームとして示すデータを生成することを含む、
請求項1の方法。
【請求項5】
前記データに基づいて、前記ビデオデータの分析中に1つ以上の識別された静止フレームをスキップすることを含む、
請求項4の方法。
【請求項6】
前記ビデオデータはシングルパスビデオデータを含む、
請求項1の方法。
【請求項7】
前記平均量子化パラメータは、前記フレームの各マクロブロックを符号化するために使用される各量子化パラメータの平均を含む、
請求項1の方法。
【請求項8】
ビデオデータにおける静止フレーム検出のための装置であって、
コンピュータプロセッサと、
前記コンピュータプロセッサに接続されたコンピュータメモリと、を備え、
前記コンピュータメモリは、
ビデオデータのフレームの平均量子化パラメータが量子化パラメータ閾値を下回ったと判定することと、
前記フレーム内のスキップされたマクロブロックの量が、スキップされたマクロブロック閾値を満たすかどうかを判定することと、
前記スキップされたマクロブロックの量が、前記スキップされたマクロブロック閾値を超えたことに応じて、前記フレームを静止フレームとして識別することと、
を
実行可能なコンピュータプログラム命令を記憶する、
装置。
【請求項9】
コンピュータプログラム命令は、
前記スキップされたマクロブロックの量が、前記スキップされたマクロブロック閾値を下回ったことに応じて、前記フレームのフレーム間符号化マクロブロックの量がフレーム間マクロブロック閾値を満たすと判定することと、
前記フレームのスキップされていないマクロブロックに対する前記フレームのスキップされたマクロブロックのレート歪みコスト比がレート歪みコスト比閾値を下回ったと判定することと、
前記レート歪みコスト比が前記レート歪みコスト比閾値を下回ったことに応じて、前記フレームを前記静止フレームとして識別することと、
を
実行可能である、
請求項8の装置。
【請求項10】
コンピュータプログラム命令は、
前記フレームが前記静止フレームとして識別されたことに応じて、次のフレームのための1つ以上の符号化属性を変更することと、
前記1つ以上の変更された符号化属性に従って前記次のフレームを符号化することと、
を
実行可能である、
請求項8の装置。
【請求項11】
コンピュータプログラム命令は、
前記フレームを前記静止フレームとして示すデータを生成することを
実行可能である、
請求項8の装置。
【請求項12】
コンピュータプログラム命令は、
前記データに基づいて、前記ビデオデータの分析中に1つ以上の識別された静止フレームをスキップすることを
実行可能である、
請求項11の装置。
【請求項13】
前記ビデオデータはシングルパスビデオデータを含む、
請求項8の装置。
【請求項14】
前記平均量子化パラメータは、前記フレームの各マクロブロックを符号化するために使用される各量子化パラメータの平均を含む、
請求項8の装置。
【国際調査報告】