図面 (/)

技術 歪みおよびビットレートを最適化するための符号化技術

出願人 ネットフリックス・インコーポレイテッド
発明者 カサヴォニディス,イオアニス
出願日 2018年7月16日 (2年7ヶ月経過) 出願番号 2020-502337
公開日 2020年10月29日 (3ヶ月経過) 公開番号 2020-530955
状態 未査定
技術分野 双方向TV,動画像配信等 TV信号の圧縮,符号化方式
主要キーワード クラウドコンピュータ プログラマブルデータ処理装置 平均品質 目標解像度 測定指標 プログラム指示 ネイティブフォーマット 統計的確率
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2020年10月29日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (18)

課題・解決手段

符号化エンジンは、所与ビットレートについて最適な品質を提供するように、ビデオシーケンスを符号化する。符号化エンジンは、ビデオシーケンスをカットして、ショットシーケンス集合にする。各ショットシーケンスは、特定のキャプチャ地点からキャプチャされたビデオフレームを含む。符号化エンジンは、各ショットシーケンスを、或る範囲の異なる解像度にわたってリサンプリングし、各リサンプリングされたシーケンスを、或る範囲の品質パラメータを用いて符号化し、次に、各符号化されたシーケンスを、そのビデオシーケンスの元の解像度にアップサンプリングする。各アップサンプリングされたシーケンスについて、符号化エンジンは品質測定指標を計算し、品質測定指標およびリサンプリング解像度を含むデータ点を生成する。符号化エンジンは、そのような全てのデータ点を集め、次に、得られたデータセット凸包を計算する。符号化エンジンは、全てのショットシーケンスにわたる全ての凸包に基づいて、或る範囲のビットレートについてのショットシーケンスの最適な集合を決定する。

概要

背景

ビデオストリーミングサービスは、或る範囲のそれぞれ異なるエンドポイント装置上で再生可能メディアタイトルライブラリへのアクセスを提供する。各エンドポイント装置は、利用可能な帯域幅および遅延等を含む異なる接続条件下で、ビデオストリーミングサービスに接続し得る。それに加えて、異なる装置の各々は、エンドユーザーに対してビデオコンテンツを出力するための異なるハードウェアを含み得る。例えば、所与のエンドポイント装置は、特定の画面サイズおよび特定の画面解像度を有するディスプレイ画面を含み得る。

典型的には、ビデオストリーミングサービスに接続するエンドポイント装置はエンドポイントアプリケーションを実行し、エンドポイントアプリケーションは、ビデオコンテンツライブラリ内にある所与のメディアタイトルについて、そのメディアタイトルの、エンドポイント装置へとストリーミングするための適切なバージョンを決定する。通常、所与のメディアタイトルのそれぞれ異なる各バージョンは、それぞれ異なるビットレートを用いて符号化されており、典型的には、そのメディアタイトルのそれぞれ異なるバージョンは、そのビデオコンテンツと関連付けられた互いに異なる解像度倍率、および/または他のパラメータを有する。エンドポイント装置上でのメディアタイトルの再生中に、エンドポイントアプリケーションは、ネットワーク条件ネットワーク接続品質、およびエンドポイント装置のハードウェア仕様等の要因に基づいて、そのメディアタイトルの、エンドポイント装置にストリーミングされる適切なバージョンを選択する。

上述のように、上述の方法でストリーミングするためのメディアタイトルを準備するために、メディアタイトルは、複数の異なるビットレートを用いて符号化される。その際、符号化アプリケーションは、各符号化について、それぞれ異なる1組の符号化パラメータを用いて、メディアタイトル全体の「モノリシック」な符号化を個々に行う。それぞれ異なる符号化の各々は、符号化プロセスによってそのメディアタイトルの符号化されたバージョンに生じた歪みのレベル客観的に示す、それぞれ異なる品質測定指標と関連付けられ得る。所与の符号化と関連付けられた品質測定指標は、典型的には、その符号化を生成するために用いられた符号化パラメータに依存する。例えば、他の符号化と比較して、高いビットレートを用いて生成された符号化は、他の符号化と比較して、より高い品質測定指標を有し得る。

複数の異なる符号化パラメータを用いてメディアタイトルを符号化することは、典型的には、複数の異なる計算リソースおよび複数の異なるストレージリソースを必要とする。例えば、高いビットレートおよび高い品質測定指標を有する符号化を生成することは、一般的に、低いビットレートおよび低い品質測定指標を有する符号化を生成することよりも、多くの計算リソース/ストレージリソースを消費する。従来の符号化アプリケーションは、その符号化についての特定の目標品質測定指標を満たすために、単一のモノリシックな符号化を生成するために、所与の1組の符号化パラメータを選択し得る。

しかし、この手法の1つの問題は、所与の目標品質測定指標を満たすために、メディアタイトルの全ての部分が同じ符号化パラメータを必要とするわけではないことであり、それでも依然として、従来の符号化アプリケーションは、メディアタイトル全体について同じ符号化パラメータを用いる。その結果、従来の方法で符号化されたメディアタイトルは、目標品質測定指標を満たすために、そのメディアタイトルの一部は同じ測定指標を満たすためにそれらのリソースを必要としないにもかかわらず、過剰な計算リソースおよびストレージリソースを消費し得る。この非効率性は、計算リソースおよびストレージリソースを不必要に浪費する。

概要

符号化エンジンは、所与のビットレートについて最適な品質を提供するように、ビデオシーケンスを符号化する。符号化エンジンは、ビデオシーケンスをカットして、ショットシーケンス集合にする。各ショットシーケンスは、特定のキャプチャ地点からキャプチャされたビデオフレームを含む。符号化エンジンは、各ショットシーケンスを、或る範囲の異なる解像度にわたってリサンプリングし、各リサンプリングされたシーケンスを、或る範囲の品質パラメータを用いて符号化し、次に、各符号化されたシーケンスを、そのビデオシーケンスの元の解像度にアップサンプリングする。各アップサンプリングされたシーケンスについて、符号化エンジンは品質測定指標を計算し、品質測定指標およびリサンプリング解像度を含むデータ点を生成する。符号化エンジンは、そのような全てのデータ点を集め、次に、得られたデータセット凸包を計算する。符号化エンジンは、全てのショットシーケンスにわたる全ての凸包に基づいて、或る範囲のビットレートについてのショットシーケンスの最適な集合を決定する。

目的

ビデオストリーミングサービスは、或る範囲のそれぞれ異なるエンドポイント装置上で再生可能なメディアタイトルのライブラリへのアクセスを提供する

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

コンピュータによって実施される方法であって、ソースビデオシーケンスについての第1の1組の符号化されたチャンクを生成する工程と、前記第1の1組の符号化されたチャンクに基づいて第1の1組のデータ点を生成する工程と、前記第1の1組のデータ点にわたって1以上の凸包処理を行うことにより、少なくとも2つの測定指標にわたって最適化された第1のサブセットのデータ点を計算する工程と、前記第1のサブセットのデータ点に含まれる第1のデータ点と前記第1のサブセットのデータ点に含まれる第2のデータ点との間の第1の勾配値を計算する工程と、前記第1の勾配値に基づいて、前記第1のデータ点と関連付けられた第1の符号化されたチャンクが前記ソースビデオシーケンスの最終的な符号化されたバージョンに含まれるべきであることを決定する工程とを含むことを特徴とする方法。

請求項2

前記第1の1組の符号化されたチャンクを生成する前記工程が、前記ソースビデオシーケンス内において、第1のキャプチャ地点と関連付けられた第1のフレームのシーケンスを識別する工程と、前記第1のフレームのシーケンスを複数の異なる解像度リサンプリングすることにより、前記第1のフレームのシーケンスのリサンプリングされたバージョンの解像度ラダーを生成する工程と、前記第1のフレームのシーケンスの各前記リサンプリングされたバージョンを、それぞれ異なる符号化パラメータを用いて符号化することにより、前記第1の1組の符号化されたチャンクを生成する工程とを含む、請求項1記載のコンピュータによって実施される方法。

請求項3

前記第1の1組のデータ点を生成する前記工程が、前記第1の1組の符号化されたチャンクのうちの各符号化されたチャンクを復号化することにより、第1の1組の復号化されたチャンクを生成する工程と、前記第1の1組の復号化されたチャンクのうちの各復号化されたチャンクを、前記ソースビデオシーケンスと関連付けられたソース解像度アップサンプリングすることにより、第1の1組のアップサンプリングされたチャンクを生成する工程と、第1の1組のアップサンプリングされたチャンクのうちの各アップサンプリングされたチャンクについて、それぞれ異なるデータ点を生成する工程とを含む、請求項1記載のコンピュータによって実施される方法。

請求項4

前記第1の1組のデータ点のうちの特定のデータ点が、前記第1の1組のアップサンプリングされたチャンクのうちの特定のアップサンプリングされたチャンクについての特定の客観的品質測定指標を生成することと、前記特定の客観的品質測定指標を特定の歪み測定指標に変換することと、前記特定のアップサンプリングされたチャンクについてのビットレートを計算することと、前記特定の歪み測定指標と前記ビットレートとを組み合わせることにより、前記特定のデータ点を生成することとによって、生成される、請求項3記載のコンピュータによって実施される方法。

請求項5

前記第1の1組のデータ点にわたって1以上の凸包処理を行うことにより、前記第1のサブセットのデータ点を計算する前記工程が、前記第1の1組のデータ点を含む第1の領域を決定する工程と、前記第1の領域の第1の境界であって、該第1の境界の第1の側に、前記第1の1組のデータ点のうちのデータ点が存在しない、第1の境界を識別する工程と、前記第1の境界に沿って存在していないあらゆるデータ点を捨てる工程であって、前記第1の境界に沿って存在する各データ点が、前記第2の測定指標に関して前記第1の測定指標を最適化する、工程とを含む、請求項1記載のコンピュータによって実施される方法。

請求項6

前記第1の測定指標が歪みを含み、前記第2の測定指標がビットレートを含む、請求項5記載のコンピュータによって実施される方法。

請求項7

前記ソースビデオシーケンスについての第2の1組の符号化されたチャンクを生成する工程と、前記第2の1組の符号化されたチャンクに基づいて、第2の1組のデータ点を生成する工程と、前記第2の1組のデータ点にわたって1以上の凸包処理を行うことにより、前記少なくとも2つの測定指標にわたって最適化された第2のサブセットのデータ点を計算する工程と、前記第2のサブセットのデータ点に含まれる第3のデータ点と前記第2のサブセットのデータ点に含まれる第4のデータ点との間の第2の勾配値を計算する工程とを更に含む、請求項1記載のコンピュータによって実施される方法。

請求項8

前記第1のデータ点と関連付けられた前記第1の符号化されたチャンクが前記ソースビデオシーケンスの前記最終的な符号化されたバージョンに含まれるべきであることを決定する前記工程が、前記第1の勾配の大きさが第2の勾配より大きいことを決定する工程を含む、請求項7記載のコンピュータによって実施される方法。

請求項9

前記第2の勾配値が、他のサブセットのデータ点と関連付けられた他の勾配値より大きいことが決定されたことに基づいて、前記第4のデータ点と関連付けられた第2の符号化されたチャンクが前記ソースビデオシーケンスの別の符号化されたバージョンに含まれるべきであることを決定する工程を更に含む、請求項7記載のコンピュータによって実施される方法。

請求項10

前記第1の1組の符号化されたチャンクが、第1のキャプチャ地点から連続的にキャプチャされた第1のシーケンスのビデオフレームと関連付けられており、第2の1組の符号化されたチャンクが、第2のキャプチャ地点から連続的にキャプチャされた第2のシーケンスのビデオフレームと関連付けられている、請求項1記載のコンピュータによって実施される方法。

請求項11

プログラム指示プロセッサによって実行された際に、該プロセッサを、ソースビデオシーケンスについての第1の1組の符号化されたチャンクを生成する工程と、前記第1の1組の符号化されたチャンクに基づいて第1の1組のデータ点を生成する工程と、前記第1の1組のデータ点にわたって1以上の凸包処理を行うことにより、少なくとも2つの測定指標にわたって最適化された第1のサブセットのデータ点を計算する工程と、前記第1のサブセットのデータ点に含まれる第1のデータ点と前記第1のサブセットのデータ点に含まれる第2のデータ点との間の第1の勾配値を計算する工程と、前記第1の勾配値に基づいて、前記第1のデータ点と関連付けられた第1の符号化されたチャンクが前記ソースビデオシーケンスの最終的な符号化されたバージョンに含まれるべきであることを決定する工程とを行うよう構成するプログラム指示を格納したことを特徴とする非一過性のコンピュータ可読媒体

請求項12

前記第1の1組の符号化されたチャンクを生成する前記工程が、前記ソースビデオシーケンス内において、第1のキャプチャ地点と関連付けられた第1のフレームのシーケンスを識別する工程と、前記第1のフレームのシーケンスを複数の異なる解像度でリサンプリングすることにより、前記第1のフレームのシーケンスのリサンプリングされたバージョンの解像度ラダーを生成する工程と、前記第1のフレームのシーケンスの各前記リサンプリングされたバージョンを、それぞれ異なる符号化パラメータを用いて符号化することにより、前記第1の1組の符号化されたチャンクを生成する工程とを含む、請求項11記載の非一過性のコンピュータ可読媒体。

請求項13

前記第1の1組の符号化されたチャンクを生成する前記工程が、複数の可能な値および符号化されたチャンクの最大数に基づいて、符号化パラメータについての複数の値を生成する工程であって、前記複数の値に含まれる値の総数が前記複数の可能な値に含まれる可能な値の総数より小さい、工程と、前記符号化パラメータについての前記複数の値に基づいて、第1のフレームのシーケンスの複数のリサンプリングされたバージョンを符号化することにより、前記第1の1組の符号化されたチャンクを生成する工程とを含む、請求項11記載の非一過性のコンピュータ可読媒体。

請求項14

前記第1の1組のデータ点を生成する前記工程が、前記第1の1組の符号化されたチャンクのうちの各符号化されたチャンクを復号化することにより、第1の1組の復号化されたチャンクを生成する工程と、前記第1の1組の復号化されたチャンクのうちの各復号化されたチャンクを、前記ソースビデオシーケンスと関連付けられたソース解像度にアップサンプリングすることにより、第1の1組のアップサンプリングされたチャンクを生成する工程と、第1の1組のアップサンプリングされたデータチャンクのうちの各アップサンプリングされたチャンクについて、それぞれ異なるデータ点を生成する工程とを含む、請求項11記載の非一過性のコンピュータ可読媒体。

請求項15

前記第1の1組のデータ点にわたって1以上の凸包処理を行うことにより、前記第1のサブセットのデータ点を計算する前記工程が、前記第1の1組のデータ点を含む第1の領域を決定する工程と、前記第1の領域の第1の境界であって、該第1の境界の第1の側に、前記第1の1組のデータ点のうちのデータ点が存在しない、第1の境界を識別する工程と、前記第1の境界に沿って存在するあらゆるデータ点を前記第1のサブセットのデータ点に含める工程とを含む、請求項11記載の非一過性のコンピュータ可読媒体

請求項16

前記第1の測定指標が歪みを含み、前記第2の測定指標がビットレートを含む、請求項15記載の非一過性のコンピュータ可読媒体。

請求項17

前記ソースビデオシーケンスについての第2の1組の符号化されたチャンクを生成する工程と、前記第2の1組の符号化されたチャンクに基づいて、第2の1組のデータ点を生成する工程と、前記第2の1組のデータ点にわたって1以上の凸包処理を行うことにより、前記少なくとも2つの測定指標にわたって最適化された第2のサブセットのデータ点を計算する工程と、前記第2のサブセットのデータ点に含まれる第3のデータ点と前記第2のサブセットのデータ点に含まれる第4のデータ点との間の第2の勾配値を計算する工程とを更に含む、請求項11記載の非一過性のコンピュータ可読媒体。

請求項18

前記第1のデータ点と関連付けられた前記第1の符号化されたチャンクが前記ソースビデオシーケンスの前記最終的な符号化されたバージョンに含まれるべきであることを決定する前記工程が、前記第1の勾配の大きさが第2の勾配より大きいことを決定する工程を含む、請求項17記載の非一過性のコンピュータ可読媒体。

請求項19

前記第2の勾配値が、1以上の他のサブセットのデータ点と関連付けられた1以上の他の勾配値より小さいことが決定されたことに基づいて、前記第4のデータ点と関連付けられた第2の符号化されたチャンクが前記ソースビデオシーケンスの別の符号化されたバージョンに含まれないべきであることを決定する工程を更に含む、請求項17記載の非一過性のコンピュータ可読媒体。

請求項20

前記第1の1組の符号化されたチャンクが第1のショットシーケンスと関連付けられており、第2の1組の符号化されたチャンクが第2のショットシーケンスと関連付けられている、請求項17記載の非一過性のコンピュータ可読媒体。

請求項21

ステムであって、ソフトウェアアプリケーションを格納したメモリと、前記メモリに結合されたプロセッサとを含み、前記プロセッサが、前記ソフトウェアアプリケーションを実行した際に、ソースビデオシーケンスについての第1の1組の符号化されたチャンクを生成する工程と、前記第1の1組の符号化されたチャンクに基づいて第1の1組のデータ点を生成する工程と、前記第1の1組のデータ点にわって1以上の凸包処理を行うことにより、少なくとも2つの測定指標にわたって最適化された第1のサブセットのデータ点を計算する工程と、前記第1のサブセットのデータ点に含まれる第1のデータ点と前記第1のサブセットのデータ点に含まれる第2のデータ点との間の第1の勾配値を計算する工程と、前記第1の勾配値に基づいて、前記第1のデータ点と関連付けられた第1の符号化されたチャンクが前記ソースビデオシーケンスの最終的な符号化されたバージョンに含まれるべきであることを決定する工程とを行うよう構成されることを特徴とするシステム。

請求項22

前記ソフトウェアアプリケーションを実行した際に、前記プロセッサが、前記第1の1組の符号化されたチャンクを生成する工程と、前記第1の1組のデータ点を生成する工程と、1以上の凸包処理を行う工程と、前記第1の勾配値を計算する工程と、前記第1のデータ点と関連付けられた前記第1の符号化されたチャンクが前記ソースビデオシーケンスの前記最終的な符号化されたバージョンに含まれるべきであることを決定する工程とを行うよう更に構成される、請求項21記載のシステム。

関連出願の相互参照

0001

本願は、2017年7月18日に出願された「ENCODING TECHNIQUE FOR OPTIMIZING DISTORTION AND BITRATE」という名称の米国仮特許出願第62/534,170号による優先権を主張すると共に、本願は、2018年7月12日に出願された「ENCODING TECHNIQUE FOR OPTIMIZING DISTORTION AND BITRATE」という名称の米国特許出願第16/034,303号による優先権を主張する。これらの関連出願の主題を参照して本明細書に組み込む。

技術分野

0002

本発明の実施形態は、一般的に、ビデオの符号化に関し、より具体的には、歪みおよびビットレートを最適化するための符号化技術に関する。

背景技術

0003

ビデオストリーミングサービスは、或る範囲のそれぞれ異なるエンドポイント装置上で再生可能メディアタイトルライブラリへのアクセスを提供する。各エンドポイント装置は、利用可能な帯域幅および遅延等を含む異なる接続条件下で、ビデオストリーミングサービスに接続し得る。それに加えて、異なる装置の各々は、エンドユーザーに対してビデオコンテンツを出力するための異なるハードウェアを含み得る。例えば、所与のエンドポイント装置は、特定の画面サイズおよび特定の画面解像度を有するディスプレイ画面を含み得る。

0004

典型的には、ビデオストリーミングサービスに接続するエンドポイント装置はエンドポイントアプリケーションを実行し、エンドポイントアプリケーションは、ビデオコンテンツライブラリ内にある所与のメディアタイトルについて、そのメディアタイトルの、エンドポイント装置へとストリーミングするための適切なバージョンを決定する。通常、所与のメディアタイトルのそれぞれ異なる各バージョンは、それぞれ異なるビットレートを用いて符号化されており、典型的には、そのメディアタイトルのそれぞれ異なるバージョンは、そのビデオコンテンツと関連付けられた互いに異なる解像度倍率、および/または他のパラメータを有する。エンドポイント装置上でのメディアタイトルの再生中に、エンドポイントアプリケーションは、ネットワーク条件ネットワーク接続品質、およびエンドポイント装置のハードウェア仕様等の要因に基づいて、そのメディアタイトルの、エンドポイント装置にストリーミングされる適切なバージョンを選択する。

0005

上述のように、上述の方法でストリーミングするためのメディアタイトルを準備するために、メディアタイトルは、複数の異なるビットレートを用いて符号化される。その際、符号化アプリケーションは、各符号化について、それぞれ異なる1組の符号化パラメータを用いて、メディアタイトル全体の「モノリシック」な符号化を個々に行う。それぞれ異なる符号化の各々は、符号化プロセスによってそのメディアタイトルの符号化されたバージョンに生じた歪みのレベル客観的に示す、それぞれ異なる品質測定指標と関連付けられ得る。所与の符号化と関連付けられた品質測定指標は、典型的には、その符号化を生成するために用いられた符号化パラメータに依存する。例えば、他の符号化と比較して、高いビットレートを用いて生成された符号化は、他の符号化と比較して、より高い品質測定指標を有し得る。

0006

複数の異なる符号化パラメータを用いてメディアタイトルを符号化することは、典型的には、複数の異なる計算リソースおよび複数の異なるストレージリソースを必要とする。例えば、高いビットレートおよび高い品質測定指標を有する符号化を生成することは、一般的に、低いビットレートおよび低い品質測定指標を有する符号化を生成することよりも、多くの計算リソース/ストレージリソースを消費する。従来の符号化アプリケーションは、その符号化についての特定の目標品質測定指標を満たすために、単一のモノリシックな符号化を生成するために、所与の1組の符号化パラメータを選択し得る。

0007

しかし、この手法の1つの問題は、所与の目標品質測定指標を満たすために、メディアタイトルの全ての部分が同じ符号化パラメータを必要とするわけではないことであり、それでも依然として、従来の符号化アプリケーションは、メディアタイトル全体について同じ符号化パラメータを用いる。その結果、従来の方法で符号化されたメディアタイトルは、目標品質測定指標を満たすために、そのメディアタイトルの一部は同じ測定指標を満たすためにそれらのリソースを必要としないにもかかわらず、過剰な計算リソースおよびストレージリソースを消費し得る。この非効率性は、計算リソースおよびストレージリソースを不必要に浪費する。

発明が解決しようとする課題

0008

上述のように、当技術分野においては、ビデオシーケンスを符号化するためのより効率的な技術が必要である。

課題を解決するための手段

0009

本発明の一実施形態は、ソースビデオシーケンスについての第1の1組の符号化されたチャンクを生成する工程と、第1の1組の符号化されたチャンクに基づいて第1の1組のデータ点を生成する工程と、第1の1組のデータ点にわたって1以上の凸包処理を行うことにより、少なくとも2つの測定指標にわたって最適化された第1のサブセットのデータ点を計算する工程と、第1のサブセットのデータ点に含まれる第1のデータ点と第1のサブセットのデータ点に含まれる第2のデータ点との間の第1の勾配値を計算する工程と、第1の勾配値に基づいて、第1のデータ点と関連付けられた第1の符号化されたチャンクが、ソースビデオシーケンスの最終的な符号化されたバージョンに含まれるべきであることを決定する工程とを含む、コンピュータによって実施される方法を述べる。

発明の効果

0010

本開示の技術の、従来技術に対する少なくとも1つの技術的改善は、符号化されたチャンクの粒度において最適化処理を行うことにより、従来の符号化技術と関連付けられた符号化の非効率性が低減されることである。その結果、ソースビデオシーケンスの最終的な符号化されたバージョンを、目標とするビットレートについての向上した視覚的品質で、エンドポイント装置にストリーミングできる。また、それとは逆に、ソースビデオシーケンスの最終的な符号化されたバージョンを、目標とする視覚的品質についての低減されたビットレートで、エンドポイント装置にストリーミングできる。

0011

本発明の上述の特徴を詳細に理解できるように、上記で簡潔に要約した本発明を、実施形態を参照してより具体的に説明する。実施形態の幾つかが、添付の図面に示されている。しかし、添付の図面は、本発明の典型的な実施形態のみを示しており、従って、本発明の範囲を限定するものとは見なされず、本発明は、他の等しく効果的な実施形態を認め得ることを留意されたい。

図面の簡単な説明

0012

本発明の1以上の態様を実装するよう構成されたクラウドコンピューティング環境を示す
本発明の様々な実施形態による、図1A符号化エンジンのより詳細な図
本発明の様々な実施形態による、図1Bの符号化エンジンが、どのような方法でビデオシーケンスを複数のショットシーケンスにカットするかを示す
本発明の様々な実施形態による、図1Bの符号化エンジンが、どのような方法で図2のショットシーケンスを処理してデータセットを生成するかを示す
本発明の様々な実施形態による、図3処理パイプラインのより詳細な図
本発明の様々な実施形態による、図3のデータセットに基づいて生成されたビットレート対品質のグラフ
本発明の様々な実施形態による、図3のデータセットに基づいて生成された凸包データ点のグラフ
本発明の様々な実施形態による、図1Bの符号化エンジンが、どのような方法で図5Bの凸包データ点を生成するかを示す
本発明の様々な実施形態による、図1Bの符号化エンジンが、どのような方法で、複数の凸包を用いて、図2のビデオシーケンスの複数の異なるバージョンを生成するかを示す
本発明の様々な実施形態による、図1Bの符号化エンジンが、どのような方法で、ビデオコンテンツのチャンクをアセンブルして、符号化されたビデオシーケンスにするかをより詳細に示す
本発明の様々な実施形態による、図1Bの符号化エンジンが、どのような方法で、ビデオコンテンツのチャンクをアセンブルして、符号化されたビデオシーケンスにするかをより詳細に示す
本発明の様々な実施形態による、図1Bの符号化エンジンが、どのような方法で、ビデオコンテンツのチャンクをアセンブルして、符号化されたビデオシーケンスにするかをより詳細に示す
本発明の様々な実施形態による、図1Bの符号化エンジンが、どのような方法で、ビデオコンテンツのチャンクをアセンブルして、符号化されたビデオシーケンスにするかをより詳細に示す
本発明の様々な実施形態による、図8A図8Dに示されている符号化されたビデオシーケンスについて生成された凸包データ点のグラフ
本発明の様々な実施形態による、ビデオコンテンツのチャンクをアセンブルして、符号化されたビデオシーケンスにするための方法のステップフロー
本発明の様々な実施形態による、リサンプリングされたショットシーケンスを処理することにより1組のデータ点を生成する方法のステップのフロー図
本発明の様々な実施形態による、1組の符号化されたビデオシーケンスを生成するための方法のステップのフロー図

実施例

0013

以下の説明において、本発明のより完全な理解を提供するために、多くの具体的な詳細が述べられる。しかし、当業者には、これらの具体的な詳細の1以上を含まずとも本発明が実施され得ることが自明であろう。他の例では、本発明を曖昧にすることを回避するために、周知の特徴については説明しない。

0014

上述のように、従来の符号化技術は、ビデオシーケンスの「モノリシック」な符号化を行うことと関連付けられた特有の非効率性という短所がある。これらの非効率性は、ビデオシーケンスの一部は、異なる符号化パラメータを用いて符号化されても同じ品質測定指標を満たし得るという事実にもかかわらず、従来の符号化技術は、所与の品質測定指標を満たすために、ビデオシーケンスの全ての部分を同じ符号化パラメータを用いて符号化することを理由として生じる。

0015

この問題に対処するために、本発明の実施形態は、ソースビデオシーケンス内の異なるショットシーケンスを、所与のレベルの歪みについてビットレートを最適化するそれぞれ異なる符号化パラメータを用いて符号化するよう構成された符号化エンジンを含む。ショットシーケンスを符号化する際、符号化エンジンは、ショットシーケンスを或る範囲の複数の異なる解像度にリサンプリングし、次に、或る範囲の品質パラメータを用いて、リサンプリングされた各シーケンスを符号化する。次に、符号化エンジンは、各符号化されたシーケンスをソースビデオシーケンスの元の解像度にアップサンプリングし、得られたアップサンプリングされたシーケンスについての品質測定指標を計算する。各ショットシーケンスについてのアップサンプリングされたシーケンスおよびそれに対応する品質測定指標に基づいて、符号化エンジンは、ソースビデオシーケンスの複数の異なる符号化されたバージョンを生成する。そのような各バージョンは、潜在的にそれぞれ異なる符号化パラメータを用いて符号化された複数のショットシーケンスの複合体である。

0016

この手法の長所は、所与の品質測定指標を満たすために特定の符号化パラメータを必要とするソースビデオシーケンスの部分が、それらの特定の符号化パラメータを正確に用いて符号化されることである。更に、ソースビデオシーケンスの他の部分は、他の適切に選択された符号化パラメータを用いて符号化され得る。従って、ソースビデオシーケンスの符号化されたバージョンが、より効率的な方法で生成される。

0017

ステム概要
図1Aは、本発明の1以上の態様を実装するよう構成されたクラウドコンピューティング環境を示す。図示されているように、システム100は、コンピュータクラウド130に結合されたホストコンピュータ110を含む。ホストコンピュータ110は、共に結合されたプロセッサ112、入出力(I/O)装置114、およびメモリ116を含む。

0018

プロセッサ112は、データを処理し、プログラムコードを実行するよう構成された任意の技術的に実行可能な形態の処理装置であり得る。プロセッサ112は、例えば、中央処理装置(CPU)、グラフィック処理装置(GPU)、特定用途向け集積回路ASIC)、フィールドプログラマブルゲートアレイFPGA)、そのような装置の任意の技術的に実行可能な組合せ等であり得る。

0019

I/O装置114は、入力を受信するよう構成された装置(例えば、キーボードマウス等を含む)を含み得る。I/O装置114は、出力を提供するよう構成された装置(例えば、ディスプレイ装置スピーカー等を含む)も含み得る。I/O装置114は、入力を受信および出力を提供するよう構成された装置(例えば、タッチスクリーンユニバーサルシリアルバス(USB)ポート等を含む)を更に含み得る。

0020

メモリ116は、データおよびソフトウェアアプリケーションを格納するよう構成された任意の技術的に実現可能なストレージ媒体を含み得る。メモリ116は、例えば、ハードディスクランダムアクセスメモリ(RAM)モジュール読み取り専用メモリ(ROM)等であり得る。メモリ116は、ホスト符号化エンジン118およびデータベース120を含む。

0021

ホスト符号化エンジン118は、プロセッサ112によって実行された際に、データベース120および/または外部ストレージリソースに格納されたメディアコンテンツを用いた符号化処理を行うソフトウェアアプリケーションである。ホスト符号化エンジン118は、より詳細に後述される様々なクラウド符号化エンジンと相互運用されるよう構成される。

0022

コンピュータクラウド130は、複数のクラウドコンピュータ140(0)〜140(N)を含む。任意のクラウドコンピュータ140は、物理的に別個コンピューティング装置またはコンピューティング装置の仮想化されたインスタンスであり得る。各クラウドコンピュータ140は、共に結合されたプロセッサ142、I/O装置144、およびメモリ146を含む。所与のプロセッサ142は、データを処理し、プログラムコードを実行するよう構成された、任意の技術的に実現可能な形態の処理装置(CPU、GPU、ASIC、FPGA、そのようなユニットの任意の技術的に実現可能な組合せ等を含む)であり得る。所与の1組のI/O装置144は、上述のI/O装置114と同様に、入力を受信するよう構成された装置(例えば、キーボード、マウス等を含む)を含み得る。各メモリ146は、データおよびソフトウェアアプリケーション(クラウド符号化エンジン148およびデータベース150を含む)を格納するよう構成されたストレージ媒体である。

0023

クラウド符号化エンジン148(0)〜148(N)は、符号化処理の様々な部分を行うために、ホスト符号化エンジン118と相互運用されるよう構成される。一般的に、ホスト符号化エンジン118は、クラウド符号化エンジン148(0)〜148(N)の動作を調和させ、それらのエンジンへの処理タスク分配、各エンジンからの処理済みデータ収集等のタスクを行い得る。クラウドコンピューティングの当業者には、クラウド符号化エンジン148(0)〜148(N)が互いに略並列に動作し得ることが理解されよう。従って、ホスト符号化エンジン118は、クラウド符号化エンジン148を、別々のタスクを同時に実行するよう構成することにより、複雑な符号化タスクを効率的に行い得る。一般的な事項として、ホスト符号化エンジン118およびクラウド符号化エンジン148は、図1Bに関してより詳細に後述するように、分散ソフトウェアエンティティ内のそれぞれ異なるモジュールを表す。

0024

図1Bは、本発明の様々な実施形態による、図1Aの符号化エンジンのより詳細な図である。図示されているように、符号化エンジン160は、ホスト符号化エンジン118およびクラウド符号化エンジン148(0)〜148(N)を含む。一般的な事項として、符号化エンジン160は、ホスト符号化エンジン118およびクラウド符号化エンジン148の実行を介して1以上の異なる符号化処理を行うよう構成された分散ソフトウェアエンティティを構成する。具体的には、符号化エンジン160は、ソースビデオシーケンス170を処理して、1組の符号化されたビデオシーケンス180を生成する。ソースビデオシーケンス170は、ビデオストリーミングサービスと関連付けられたコンテンツライブラリに含まれ得るメディアタイトルである。各符号化されたビデオシーケンス180は、それぞれ異なる(および潜在的に変化する)符号化パラメータで符号化されたそのメディアタイトルのそれぞれ異なるバージョンである。

0025

符号化処理を行うために、符号化エンジン160は、ソースビデオシーケンス170を前処理することにより、本質とは無関係な画素を除去し、次に、ソースビデオシーケンス170を複数のショットシーケンスにカットする。各ショットシーケンスは、所与のカメラまたはキャプチャ地点から連続的にキャプチャされたフレームを含む。この手順については、図2に関して述べる。次に、符号化エンジン160は、各ショットシーケンスを1以上の異なる解像度にリサンプリングし、リサンプリングされた全てのシーケンスを処理してデータセットを生成する。リサンプリング処理については、図3に関して述べる。リサンプリングされたシーケンスに基づくデータセットの生成については、図4に関して述べる。次に、符号化エンジン160は、このデータセットに基づいて、図5A図5Bおよび図6に関して述べるように、所与のレベルの歪みについてビットレートを最大化するデータ点の凸包を生成する。全てのショットシーケンスにわたる全ての凸包点に基づいて、符号化エンジン160は、1組の符号化されたビデオシーケンス180を生成する。図7図9に関して述べるように、これらの符号化されたビデオシーケンスは、歪みおよびビットレートを最適化する。図3図9に関して述べる符号化処理は、図10図11に関する一連のステップとしても表わされている。

0026

歪みおよびビットレートの最適化
図2は、本発明の様々な実施形態による、図1Bの符号化エンジンが、どのような方法でビデオシーケンスを複数のショットシーケンスにカットするかを示す。図1〜図2に関して上述したように、符号化エンジン160は、符号化処理を行うことにより、ソースビデオシーケンス170の複数の異なる符号化されたバージョンを生成するよう構成され、異なるバージョンの各々は、所与のビットレートについて歪みを最小化し、並びに/または、歪みおよびビットレートを最適化する。この符号化処理の最初のステップが図2に示されている。図示されているように、ショット解析器200は、ソースビデオシーケンス170を処理することによりショットシーケンス220(0)〜220(P)を生成するよう構成される。ショット解析器200は、符号化エンジン160内に含まれるソフトウェアモジュールである。図示されている例では、ソースビデオシーケンス170は、4096×2048の解像度、即ち4096画素の幅×2048画素の高さを有するビデオのフレームを含む。一般的に、ソースビデオシーケンス170の解像度は、そのビデオシーケンスと関連付けられた特定の配信フォーマットに対応する。

0027

ショット解析器200は、各ショットシーケンス220を、ソースビデオシーケンス170と同じ解像度を有するように生成する。しかし、各ショットシーケンス220は、それぞれ異なる「ショット」に対応する異なるシーケンスのビデオフレームを含む。本開示の文脈において、「ショット」とは、単一のカメラまたはカメラの仮想表現(例えば、コンピュータ・アニメーション・ビデオシーケンスの場合)から連続的にキャプチャされたフレームのシーケンスであり得る。また、ショットシーケンス220を生成する際、ショット解析器200は、ソースビデオシーケンス170から、本質とは無関係な画素を除去し得る。例えば、ショット解析器200は、ソースビデオシーケンス170の境界部分に沿った黒いバーに含まれる画素を除去し得る。

0028

ショット解析器200は、多くの異なる技術を用いて、ソースビデオシーケンス170のどのフレームが、各異なるショットに対応するかを決定し得る。例えば、ショット解析器200は、2以上のシーケンシャルなフレームのサブセットにわたって有意に変化しない画素値の連続した分布を有する1組のシーケンシャルなフレームを識別し得る。或いは、ショット解析器200は、各フレーム内に存在する特徴を比較して、類似の特徴を有するシーケンシャルなフレームを識別し得る。当業者には、ソースビデオシーケンスを構文解析して別々のショットシーケンスにするための多くの技術が存在することが理解されよう。このようにしてソースビデオシーケンス170を構文解析したら、符号化エンジン160は、図3に関して後述するように、各ショットシーケンス220を処理して、それぞれ異なるデータセットを生成する。

0029

図3は、本発明の様々な実施形態による、図1Bの符号化エンジンが、どのような方法で、図2のショットシーケンスを処理してデータセットを生成するかを示す。図示されているように、リサンプラー300は、ショットシーケンス220を処理して、リサンプリングされたシーケンス320(0)〜320(M)を生成する。図示されているように、各リサンプリングされたシーケンス320はそれぞれ異なる解像度を有する。リサンプリングされたシーケンス320(0)の解像度は4096×2048であり、リサンプリングされたシーケンス320(1)の解像度は2048×1024であり、リサンプリングされたシーケンス220(M)の解像度は256×144である。1組のリサンプリングされたシーケンス320は、ショットシーケンス220と関連付けられた解像度ラダー330に対応する。

0030

リサンプラー300は、解像度の任意の分布を含むように解像度ラダー330を生成し得る。しかし、実際上は、リサンプラー300は、まず、リサンプリングされたシーケンス320(0)を、ショットシーケンス220(またはソースビデオシーケンス170)と同じ解像度を有するように生成し、次に、後続の各リサンプリングされたシーケンス320(1)等を、その前の解像度の一定の分数である解像度を有するように生成する。実際上は、所与のリサンプリングされたシーケンス320(H)の解像度とその前のリサンプリングされたシーケンス320(H−1)の解像度との比率は約1.5である。

0031

しかし、様々な実施形態では、より密な解像度ラダー(即ち、所与のリサンプリングされたシーケンス320(H)の解像度とその前のリサンプリングされたシーケンス320(H−1)の解像度との比率が1.5未満(例えば、1.414もしくは1.26等))が用いられてもよく、または、より粗い解像度ラダー(即ち、所与のリサンプリングされたシーケンス320(H)の解像度とその前のリサンプリングされたシーケンス320(H−1)の解像度との比率が1.5以上(例えば、2.0もしくは3.0等))が用いられてもよい。解像度ラダー330の密度は、所望の品質レベルに均一にわたり得るように、ビデオショットの特性にも依存し得る。解像度ラダーの密度を決定するために、更なる制約(例えば、特定のシーケンスの符号化に費やすことが所望されるCPUの量等)が用いられ得る。

0032

解像度ラダー330を生成したら、次に、符号化エンジン160は、1組の並列処理パイプライン340を実行して、異なるリサンプリングされたシーケンス320の各々を処理する。各処理パイプライン340は、各処理パイプライン340に入力されたリサンプリングされたシーケンス320に基づいて、データ点350の集合を生成する。処理パイプライン340(0)はデータ点350(0)を生成し、処理パイプライン350(1)はデータ点350(1)を生成し、全ての処理パイプライン340について同様の処理が行われる。次に、符号化エンジン160は、そのような全てのデータ点を組合せてデータセット360を生成する。符号化エンジン160は、この処理を、全てのショットシーケンス220(0)〜220(P)について行うので、符号化エンジン160は、P個の異なるデータセット360を生成する。例示的な処理パイプライン340については、図4に関してより詳細に後述すると共に、データセット360については、図5A図5Bに関して更に説明する。

0033

図4は、本発明の様々な実施形態による、図3の処理パイプラインのより詳細な図である。図示されているように、処理パイプライン340は、リサンプリングされたシーケンス320を受信し、1組の並列サブパイプライン450(0)〜450(L)によって、データ点350を生成する。各サブパイプライン450は、エンコーダ400、デコーダ410、アップサンプラー420、および測定指標解析器430を含む。サブパイプライン450(0)はエンコーダ400(0)、デコーダ410(0)、アップサンプラー420(0)、および測定指標解析器430(0)を含み、サブパイプライン450(1)はエンコーダ400(1)、デコーダ410(1)、アップサンプラー420(1)、および測定指標解析器430(1)を含み、全てのサブパイプライン450について同様になっている。各サブパイプライン450内のエンコーダ400およびデコーダ410は、アドバンスト・ビデオコーディング(AVC)、高効率ビデオコーディング(HEVC)、またはVP9等を含む、任意の技術的に実行可能な符号化/復号化アルゴリズムを実装し得る。

0034

処理パイプライン340の実行中、各エンコーダ400(0)〜400(L)は、まず、それぞれ異なる量子化パラメータ(QP)を用いて、リサンプリングされたシーケンス320を符号化する。エンコーダ400(0)は、QP=0を用いて、リサンプリングされたシーケンス320を符号化し、エンコーダ400(1)は、QP=1を用いて、リサンプリングされたシーケンス320を符号化し、エンコーダ400(L)は、QP=Lを用いて、リサンプリングされたシーケンス320を符号化する。一般的に、エンコーダLの数は、エンコーダ400によって実装される所与のアルゴリズムについての利用可能なQPの数に対応する。エンコーダ400がx264実装を用いてAVC符号化アルゴリズムを実装する実施形態では、エンコーダ400は、QPの代わりに、それぞれ異なる固定レート係数CRF)を用いて、上述の符号化処理を行い得る。様々な実施形態では、エンコーダ400は、QPまたはCRFだけでなく、任意の符号化パラメータを変更し得る。

0035

重要なこととして、エンコーダ400によって生成された、符号化されたリサンプリングされたシーケンスは、最終的には、図2Bに示されている符号化されたビデオシーケンス180内に含まれ得る。本開示の文脈において、これらの符号化されたリサンプリングされたシーケンスは、本明細書においては「チャンク」として参照され得る。「チャンク」は、一般的に、特定の1組の符号化パラメータを用いて符号化されたビデオフレームのシーケンスを含む。実際上は、各チャンクは特定の解像度でリサンプリングされ、次に、所与のQPを用いて符号化される。また、各チャンクは、一般的に、所与のショットシーケンスから得られる。しかし、当業者には、ビデオ符号化の文脈における「チャンク」は、GOP(group of pictures)、フレームのシーケンス、フレームの複数のシーケンス等を含む様々な異なる構造を表し得ることが理解されよう。

0036

エンコーダ400が、上述のように、それぞれ異なるQPを用いて、リサンプリングされたシーケンス320を符号化したら、各サブパイプライン450は、それと比較的同様に進行する。デコーダ410は、符号化されたシーケンスを受信し、次に、それらのシーケンスを復号化する。従って、アップサンプラー420(0)〜420(L)を介して出力される各ビデオシーケンスは、同じ解像度を有する。しかし、これらのビデオシーケンスは、異なるQPを用いて符号化されているため、異なる品質を有し得る。

0037

一実施形態において、アップサンプラー420は、復号化されたシーケンスを、或るクラスのエンドポイント装置の表示特性に関連し得る目標解像度にアップサンプリングする。例えば、特定のビデオは3840×2160の解像度で配信され得るが、1920×1080の解像度を有する多数のディスプレイによって消費されることが意図され得る。別のクラスのエンドポイント装置(例えば、ラップトップコンピュータ等)は、同じビデオを1280×720の解像度で表示することが予期される。更に別のクラスのエンドポイント装置(例えば、タブレット装置またはスマートフォン装置)は、同じビデオを960×540の解像度で表示することが予期される。これらの異なるクラスのエンドポイント装置のうちの1つについて考える場合、それに対応して、復号化されたシーケンスは、品質を評価するために、これらの全ての目標解像度にアップサンプリングされ得る。

0038

測定指標解析器430は、アップサンプリングされたシーケンスを解析することにより、各シーケンスについての客観的品質測定指標(QM)を生成する。測定指標解析器430は、例えば、VMAF(video multimethod assessment fusion)アルゴリズムを実装して、各アップサンプリングされたシーケンスについてのVMAFスコアを生成し得る。VMAFスコア等の多くのビデオ品質測定指標は、複数の異なる目標解像度で計算可能ではあるが、複数の異なる解像度で行われた符号化間における品質を比較する場合には、復号化後のリサンプリングについては同じ目標解像度を用いる必要があることを明確にすべきである。以下の議論においては、アップサンプリングおよび品質測定指標の計算のためのそのような1つの解像度、例えば、一般的なHD解像度である1920×1080について考える。

0039

次に、各測定指標解析器430は、リサンプリングされたシーケンス320の解像度、それぞれのエンコーダ400によって実装されたQP、および計算されたQMを含む、それぞれ異なるデータ点440を生成する。従って、各異なるQPについて、処理パイプライン340は、データ点440(0)〜440(L)として示されている別々のデータ点を生成する。重要なこととして、各データ点440は、所与のショットシーケンス220の特定のリサンプリング/符号化されたバージョンに対応する。より詳細に後述するように、符号化エンジン160は、関連付けられたデータ点400に基づいて、符号化されたビデオシーケンス180に含めるための各ショットシーケンス220のリサンプリング/符号化されたバージョンを選択する。図3にも示されているように、処理パイプライン340は、そのような全てのデータ点440を集めてデータ点350にする。

0040

図3に戻ると、符号化エンジン160は、複数の異なるリサンプリングされたシーケンス320(0)〜320(M)の各々について、それぞれ異なる1組のデータ点350(0)〜350(M)を生成し、これらのデータ点350を集めてデータセット360にする。従って、エンコーダ160は、M個の異なるリサンプリングされたシーケンス320とL個の異なるQPとの各組合せについてのデータセット360内のデータ点を生成するので、データセット360はM*L個のデータ点を含む。必ずしも各解像度について同じ数のQPまたは同じQP値を用いる必要はなく、むしろ、各ショットに適した完全にカスタマイズされた数のQPおよびQP値を用いる。次に、符号化エンジン160は、図5A図5Bに関して後述する処理動作を行うことにより、データセット360内の、歪みおよび/またはビットレートを最小化する特定のデータ点を識別する。

0041

凸包分析
図5Aは、本発明の様々な実施形態による、図3のデータセットに基づいて生成されたビットレート対品質のグラフである。図示されているように、グラフ500は、ビットレート軸510および品質測定指標(QM)軸520を含む。グラフ500は、ビットレート軸510およびQM軸520に対してプロットされた品質曲線502、504、および506も含む。図示されている各曲線は、特定のショットシーケンス220についてのそれぞれ異なる解像度の符号化に対応しており、従って、特定の1組のデータ点350から得られたものであり得、所与の1組内の各データ点440は、解像度、QP、およびQMの特定の組合せに対応する。符号化エンジン160は、各データ点440の解像度を所与のビットレートに合わせて変換することにより、曲線502、504、および506に含まれるデータ点を生成する。符号化エンジン160は、例えば、所与の解像度に必要なビット総数を、関連付けられたショットシーケンス320の長さで除算し得る。

0042

符号化エンジン160は、図5Aにプロットされているデータセット160を再処理して、QMを歪み測定指標で置き換えるよう構成される。符号化エンジン160は、QM値反転すること、一定の値からQM値を減算すること、または、品質を歪みに変換するための他の公知の技術を行うことにより、所与の歪み測定指標を計算し得る。次に、符号化エンジン160は、図5Bに関して後述するように、変換された値に基づいて凸包を生成する。

0043

図5Bは、本発明の様々な実施形態による、図3のデータセットに基づいて生成された凸包データ点のグラフである。図示されているように、グラフ550はビットレート軸560および歪み軸570を含む。符号化エンジン160は、ビットレート軸560および歪み軸570に対して歪み曲線552、554、および556をプロットする。次に、符号化エンジン160は、全ての点が境界の片側(このケースでは境界の右側)になる境界であって、凸包上の任意の2つの連続した点を直線でつなぐと残りの全ての点が同じ側に残る境界を形成する、全ての曲線にわたる点を識別することにより、凸包点580を計算する。このようにして、符号化エンジン160は、各ショットシーケンス220について凸包点580を生成し得る。当業者には、数学の分野においては凸包を生成するための多くの技術が周知であり、そのような技術の全てが、凸包点580を生成するために実装され得ることが理解されよう。一実施形態において、符号化エンジン160は、関連付けられたソースビデオシーケンス170の様々なパラメータに基づいて凸包点580を推定するために、機械学習技術を適用する。このようにして、これまでに述べた計算の一部が合理化および/または完全に回避され得る。符号化エンジン160は、図6に関して後述される一連の処理段階によって、図5A図5Bに関して説明された処理を行う。

0044

図6は、本発明の様々な実施形態による、図1Bの符号化エンジンが、どのような方法で図5Bの凸包データ点を生成するかを示す。図示されているように、歪み変換器600および凸包解析器620は、協働してデータセット360を処理することにより、凸包点580を生成する。動作においては、歪み変換器600はデータセット360を受信し、次に、そのデータセットに含まれているQM値を歪み値に変換する。次に、凸包解析器620は、そのデータセット360についての凸包を計算することにより、凸包点580を生成する。

0045

このようにして、符号化エンジン160は、各ショットシーケンス320についての凸包点580を、関連付けられたデータセット360に基づいて計算する。従って、符号化エンジン160は、P個の異なるショットシーケンス320に基づいて、P個の組の凸包点580を生成する。ここでも、各組の凸包点580は、1つのショットシーケンスについて、そのショットシーケンスの特定のリサンプリングされた符号化されたバージョンについての歪みおよびビットレートを記述するデータ点を含む。そのバージョンは、所与の解像度でリサンプリングされて、所与のQPを用いて符号化される。符号化エンジン160は、P個のショットシーケンス320の全てについて生成された全ての凸包580を集め、次に、図7に関してより詳細に後述するように、更なる処理を行って符号化されたビデオシーケンス180を生成する。

0046

トレリス反復による符号化されたビデオシーケンスのアセンブル
図7は、本発明の様々な実施形態による、図1Bの符号化エンジンが、どのような方法で、複数の凸包を用いて、図2のビデオシーケンスの複数の異なるバージョンを生成するかを示す。図示されているように、トレリス反復子700は凸包点580(0)〜580(P)を受信し、次に、シーケンストレリス710を繰り返し更新することにより、シーケンスRD点720を生成する。トレリス反復子700は、符号化エンジン160内に含まれるソフトウェアモジュールである。シーケンストレリス710は、図8A図8Dに関してより詳細に後述されているデータ構造である。シーケンスRD点720は、リサンプリングされた符号化されたシーケンスの複数の異なる組合せについて生成されたビットレート−歪み(RD)点を含む。

0047

各シーケンスRD点720は、それぞれ異なる符号化されたビデオシーケンス180に対応する。各符号化されたビデオシーケンス180は、上述のリサンプリングされた符号化されたショットシーケンスのそれぞれ異なる組合せを含む。ストリーミングアプリケーション730は、シーケンスRD点720に基づいて、符号化されたビデオシーケンス180をエンドポイント装置へとストリーミングするよう構成される。図9に関してより詳細に後述するように、各符号化されたビデオシーケンス180は、そのビデオシーケンスと関連付けられた所与の平均ビットレートについて、ビデオシーケンス内の全てのショットシーケンスにわたる(平均)歪みを最小化する。トレリス反復子700は、より詳細に後述される技術を用いて、これらの異なるシーケンスを生成する。

0048

図8A図8Dは、本発明の様々な実施形態による、図1Bの符号化エンジンが、どのような方法で、ビデオコンテンツのチャンクをアセンブルして、符号化されたビデオシーケンスにするかをより詳細に示す。図8A図8Dに示されているように、シーケンストレリス710はショット軸800およびビットレート軸810を含む。シーケンストレリス710は複数の列の凸包点580も含み、各列は特定のショットシーケンスに対応する。例えば、シーケンストレリス710に含まれる0番目の列は、凸包点580(0)に対応する。任意の列内の凸包点は、昇順のビットレート(および、構造により、降順の歪み)に従ってランク付けされる。また、凸包点は、ビットレートの関数として(大きさが)減少する負の勾配を有することが保証される。

0049

便宜上、凸包点580は、以下のシステムに従って個別にインデックス付けされる。所与の点について、第1の数はショットシーケンスのインデックスであり、第2の数は、それらの凸包点のビットレートランキングへのインデックスである。例えば、凸包の点00は、0番目のショットシーケンスおよび第0位にランク付けされたビットレート(このケースでは最低ランクのビットレート)に対応する。同様に、凸包点43は、4番目のショットシーケンスおよび第3位にランク付けされたビットレート(このケースでは最高ランクのビットレート)に対応する。

0050

トレリス710内に含まれる各凸包点は、上述のように、ショットシーケンス220のそれぞれ異なるリサンプリングされた符号化されたバージョンに対応する。符号化エンジン160は、ショットシーケンス220のこれらのリサンプリングされた符号化されたバージョンを組み合わせることにより、図2Bに示されている符号化されたビデオシーケンス180を生成する。符号化エンジン160は、シーケンストレリス710を実施して、この組み合わせ技術を繰り返し行う。

0051

図8A図8Dの各々は、トレリス反復子700によって、それぞれ異なる反復において生成された、シーケンストレリス710のそれぞれ異なるバージョンを示す。図8Aは、初期状態におけるシーケンストレリス710(0)を示す。ここでは、トレリス反復子700は、凸包点00、10、20、30、および40を含む凸包点のシーケンス820(0)を生成する。これらの最初に選択された凸包点は、最も低いビットレートおよび最も大きい歪みを有し、従って、それぞれの列の一番下にある。シーケンス820(0)に基づいて、トレリス反復子700は、凸包点00、10、20、30、および40の各々と関連付けられた、リサンプリングされた符号化されたショットシーケンス220を含む符号化されたビデオシーケンス180を生成する。トレリス反復子700は、その符号化されたビデオシーケンス180に基づいて、シーケンスRD点720(0)も生成する。

0052

次に、トレリス反復子710は、シーケンス820(0)内の各凸包点について、その凸包点と、その上側において隣接する凸包点との間における、ビットレートに関する歪みの変化率を計算する。例えば、トレリス反復子710は、ノード00と01、10と11、20と21、30と31、および40と41との間における、ビットレートに関する歪みの変化率を計算し得る。所与のリサンプリングされた符号化されたショットシーケンス220と関連付けられた凸包点について計算された変化率は、その凸包点における、そのショットシーケンスと関連付けられた歪み曲線の導関数を表す。

0053

トレリス反復子710は、大きさが最大の導関数を選択し、次に、その導関数と関連づけられた上側において隣接するものを、後続のシーケンス820に含めるために選択する。例えば、図8Bにおいて、トレリス反復子700は、凸包点30と関連付けられた導関数が最大であり、従って、シーケンス820(1)に凸包点31(凸包点30の上側において隣接するもの)を含めることを決定する。シーケンス820(1)に基づいて、トレリス反復子700は、凸包点00、10、20、31、および40の各々と関連付けられた、リサンプリングされた符号化されたショットシーケンス220を含む符号化されたビデオシーケンス180を生成する。次に、トレリス反復子710は、その符号化されたビデオシーケンス180に基づいて、シーケンスRD点720(1)を生成する。トレリス反復子710は、この技術を繰り返し行い、それにより、図8C図8Dに示されているように、トレリス710を昇る。

0054

図8Cでは、トレリス反復子700は、凸包点10と関連付けられた導関数が他の導関数と比較して最大であることを決定し、次に、シーケンス820(2)に含めるために凸包点11を選択する。シーケンス820(2)に基づいて、トレリス反復子700は、凸包点11、10、20、31、および40の各々と関連付けられた、リサンプリングされた符号化されたショットシーケンス220を含む符号化されたビデオシーケンス180を生成する。トレリス反復子700は、その符号化されたビデオシーケンス180に基づいて、RD点720(2)も生成する。図8Dに示されているように、トレリス反復子700はこの処理を、トレリス反復710(T)と関連付けられたシーケンス820(T)を生成するまで継続する。このようにして、トレリス反復子700は、ビットレートが増加すると共に歪みが減少する単一の凸包点を選択することにより、シーケンス820を徐々に改善し、それにより、ビットレートが増加すると共に歪みが減少する符号化されたビデオシーケンス180の集合を生成する。

0055

一実施形態において、トレリス反復子700は、終了条件を作成するために、トレリス710を昇る前に凸包点を追加する。その際、トレリス反復子700は、最大のビットレートを有する凸包点を複製することにより、最後から2番目の凸包点と最後の凸包点との間の変化率を0にし得る。この0の変化率が全てのショットについて検出されたときに、即ち、変化率の最大の大きさが正確に0であるときに、トレリス反復子700は終了条件を識別して、反復を停止する。

0056

ここで再び図7を参照すると、トレリス反復子700は、上述のトレリス技術によって、図8A図8Dに示されているシーケンス820に対応する符号化されたビデオシーケンス180を生成する。トレリス反復子700は、歪みを減少させると共にビットレートを増加させるために、昇りながらシーケンス820を生成するので、符号化されたビデオシーケンス180は、高い歪みおよび低いビットレートから、低い歪みおよび高いビットレートまでの範囲にわたる。各シーケンスRD点720は、所与の符号化されたビデオシーケンス180についての歪みおよびビットレートを提供し、これらのシーケンスRD点720は、図9に関して後述するように、凸包を生成するためにプロットされ得る。

0057

図9は、本発明の様々な実施形態による、図8A図8Dに示されているビデオシーケンスの複数の異なるバージョンについて生成された凸包データ点のグラフである。図示されているように、グラフ900は、ビットレート軸910および歪み軸920を含む。ビットレート軸910および歪み軸920に対して曲線930がプロットされている。曲線930は、図8A図8Dに関して上述したトレリス技術によって生成された、符号化ビデオシーケンス180に対応するシーケンスRD点720の集合に基づいて生成され得る。従って、曲線930は、全ての符号化されたビデオシーケンス180にわたるビットレートの関数としての歪みを表す。ビットレート912および歪み922に対応する例示的なシーケンスRD点720が示されている。

0058

曲線930に基づいて、図7のストリーミングアプリケーション730は、所与の利用可能なビットレートについて、そのビットレートについての歪みを最小化する特定の符号化されたビデオシーケンス180を選択できる。ストリーミングアプリケーション730は、ストリーミング中に、単一の符号化されたビデオシーケンス180を選択し得るか、または、複数のビデオシーケンス間において動的に選択し得る。例えば、ストリーミングアプリケーション730は、ショット境界において、複数の符号化されたビデオシーケンス180間における切り替えを行い得る。この手法を用いて、ストリーミングアプリケーション730は、過剰な帯域幅を必要とせずに、一貫した品質のビデオ体験をエンドユーザーに配信し得る。

0059

符号化エンジン160は、ストレージおよび計算の複雑さを低減するために、上述の技術の様々な変形を実装し得る。一実施形態において、符号化エンジン160は、上述の手法の「制約された」バージョンを実装する。ここで図3を参照すると、制約されたバージョンを実装するために、符号化エンジン160は、限られた範囲のQP値を用いてリサンプリングされたシーケンス320のみを符号化する。従って、全ての可能なQP値についてリサンプリングされたシーケンス320のバージョンを生成する代わりに、符号化エンジン160は、所望の範囲のQP値を選択し、次に、その範囲のQP値についてリサンプリングされたシーケンス320のみを符号化し得る。より高いQP値は、許容できないほど低い品質を提供するので、これらのより高いQP値は、符号化の目的には不要であると見なされ得る。同様に、より低いQP値は、不合理なビットレートを必要するので、これらのQP値も不要であると見なされ得る。従って、符号化エンジン160は、符号化を、実際にエンドユーザーに配信されるべき符号化を生成する可能性が高いQP値のみに制限し得る。更なる実施形態では、符号化エンジン160は、ショット毎に生成される複数の異なる符号化の数を、一定の値に固定する。所与のショットについて生成される符号化の数が、その一定の値よりも少ない状況では、符号化エンジン160は、その一定の値を満たすために、符号化を複製し得る。様々な実施形態において、符号化エンジン160は、任意の技術的に実行可能な方法で、符号化の目的で用いられる符号化パラメータの値の数を制限し得る。

0060

例えば、符号化エンジン160は、効率に関連した1以上の基準に基づいて、符号化パラメータについての可能な値のサブセットを選択し得る。例えば、符号化エンジン160は、QP値のより小さい範囲内において、2つ目毎のQP値、3つ目毎のQP値、またはN個目毎のQP値(Nは2から10までの範囲の整数)を選択し得る。幾つかの別の実施形態では、符号化エンジン160によって、それぞれ異なるQP値が選択される統計的確率を決定するために、様々なショットシーケンスの複数の符号化から統計が集められ得る。次に、符号化エンジン160が符号化の目的で用いるQP値が、統計的確率に基づいて制限され得る。より具体的には、統計的確率に基づいて、符号化エンジン160は、符号化エンジン160が選択する可能性が最も高いQP値を用いるよう制約され得る。

0061

別の実施形態では、符号化エンジン160は、上述の手法の「反復」バージョンを実施し、それにより、符号化エンジン160は、複数の符号化パスを行うことにより、目標ビットレートまたは目標歪みレベルを有する符号化を決定する。最初に、符号化エンジン160は、「制約された」手法に関して上述したような制約された範囲のQP値を用いて、最初のパスを行い得る。符号化エンジン160が、図9に示されているようなシーケンスRD点の凸包を生成したら、次に、符号化エンジン160は、目標ビットレートまたは目標歪みレベルに最も近いシーケンスRD点を識別する。次に、符号化エンジン160は、その凸包上の1以上の隣接する点を識別し、それらの点と関連付けられたQPの範囲に基づいて、更なる符号化を行う。このようにして、符号化エンジン160は、特定のビットレートまたは歪みを目標にするために、符号化に用いられるQPの範囲を繰り返し洗練し得る。

0062

更に別の実施形態では、符号化エンジン160は、上述の手法の「固定品質」バージョンを実装し、保存しておいて後で処理する必要があるショット符号化の数を制限する。この手法を用いて、符号化エンジン160は、所定の十分に離間した品質間隔でショット符号化を生成し得る。次に、符号化エンジン160は、これらのショット符号化をアセンブルして、シーケンス全体にわたって固定品質を有する完全な符号化されたビデオシーケンス180にし得る。ショットシーケンス毎に実施されるショット符号化の数は、必要な品質と必要なストレージとのトレードオフを表す、構成可能なパラメータである。この技術を行う際、符号化エンジン160は、凸包点580を処理し、次に、残りの点が所望の数のショット符号化を表すまで、余分な点を繰り返し除去する。符号化エンジン160は、例えば、隣接する凸包点580に対して最小のギャップを有する凸包点580を繰り返し除去し得る。この技術により、符号化エンジン160は、ショット符号化の最低品質を最大化できる。

0063

他の実施形態では、符号化エンジン160は、上述の手法の「最小/最大最適化」バージョンを実装する。そのような実装では、符号化エンジン160は、導関数の値の代わりに、歪み測定指標または品質測定指標に基づいて、後続のシーケンス820に含める凸包点を選択する。特に、符号化エンジン150は、最大の歪み測定指標(または最大の品質測定指標)を有するシーケンス820(x)に含まれる凸包点を決定し、次に、後続のシーケンス820(x+1)に含めるために、選択された凸包点に上側において隣接する凸包点を含める。

0064

関連する実施形態では、シーケンストレリス710を昇る際、符号化エンジン160は、凸包点580間の勾配の変化を、実際の品質値とトレードオフし得る。その際、後続のシーケンスに含める凸包点580を選択する前に、符号化エンジン160は、所与の閾値より低い品質測定指標(または所与の閾値より高い歪み測定指標)を有するショットシーケンス(およびそれに対応する凸包点580)をフィルタリングして除去し得る。このようにして、利用可能なショットシーケンスおよび凸包点を制約した後にのみ、符号化エンジン160は、残っている凸包点580の勾配値の比較に基づいて、後続の符号化されたビデオシーケンス180を生成する。この手法は、平均品質および最低限の品質の両方を最大化し得る。

0065

これまでに述べた手法のいずれかを用いて、符号化エンジン160は、符号化挙動を制限する特定の制約を執行するよう構成され得る。例えば、符号化エンジン160は、符号化されたショットシーケンスの歪みを、常に最大許容歪みレベルを下回るように制限するよう構成され得る。しかし、より複雑な制約に準拠することを可能にするために、符号化エンジン160の調整が必要になり得る。複雑な制約の一例は、当業者に知られているビデオバッファ検証器(VBV)制約である。VBV制約は、一般的に、比較的一定のビットレートを有するデータが到着して、比較的一定のサイズを有するバッファに格納されるべきであることを述べている。この制約は、潜在的な問題の中でも特に、バッファのオーバーフローおよび/またはアンダーフローを回避するのに役立つ。VBV固定ビットレートCBR)制約およびVBV可変ビットレート(VBR)制約を含む、より具体的なVBV制約の式も当業者に知られているが、これらの特定のバージョンの議論は、簡潔のために省略する。

0066

一実施形態において、符号化エンジン160は、図8A図8Dに関して先に述べたトレリスの上昇を、最終的な符号化されたビデオシーケンス180が、上述のVBV制約を含む任意の複雑な制約のセットに準拠することを可能にするように行うよう構成され得る。その際、符号化エンジン160は、後続のシーケンスに含めるための新たな凸包点を選択するために、隣接する凸包点580間の勾配値を解析するだけでなく、あり得る各後続のシーケンスが1以上の制約(例えば、VBVCBR、VBV VBR等)に準拠することについても解析する。従って、後続のシーケンスに含まれる可能性がある各凸包点580について、符号化エンジン160は、そのシーケンスが制約に準拠する度合いを決定する。次に、符号化エンジン160は、後続のシーケンスが準拠を維持することを可能にする凸包点580を選択する。この形態のトレリスの上昇は、「動的プログラミング」手法を構成するものであり、ビットレート対歪みを最適化するという具体的な問題に対するビタビ(Viterbi)解の1つの形態を表し得る。

0067

別の実施形態では、符号化エンジン180およびストリーミングアプリケーション730は、任意の技術的に実行可能な方法で、符号化されたビデオシーケンス180をエンドポイント装置へと配信させ得る。同じまたは別の実施形態において、符号化エンジン180およびストリーミングアプリケーション730と関連付けられた任意の量およびタイプの機能は、任意の技術的に実行可能な方法で、任意の数のホストコンピュータ110、任意の数のクラウドコンピュータ140、任意の数のクライアントコンピュータ(図示せず)、および任意の数のエンドポイント装置において実装または分散され得る。

0068

例えば、一部の実施形態では、符号化エンジン180は、ストリーミングアプリケーション730を、エンドポイント装置上で実行されるクライアントアプリケーションに、メタデータを配信するよう構成する。メタデータは、任意のレベルの粒度で符号化されたビデオコンテンツと関連付けられた測定指標(例えば、1以上の符号化されたショットシーケンスおよび/または符号化されたビデオシーケンス180と関連付けられたビットレートおよび品質測定指標等)を含むが、それらに限定されない。クライアントアプリケーションは、メタデータに基づいて、任意の技術的に実行可能な方法で、任意のタイプおよび量の適応ストリーミング処理を行い得る。

0069

1つの状況において、ユーザーは、ビデオプレーヤーアプリケーションを、映画ラップトップにストリーミングするよう構成する。ストリーミングアプリケーション190は、4つの異なる符号化されたビデオシーケンス180(1)〜180(4)と関連付けられたメタデータを、ビデオプレーヤーアプリケーションに送信する。メタデータは、符号化されたビデオシーケンス180(4)が最も高いビットレートおよび最も高い視覚的品質と関連付けられており、一方、符号化されたビデオシーケンス180(1)が最も低いビットレートおよび最も低い視覚的品質と関連付けられていることを示す。所与の任意のときに、ビデオプレーヤーアプリケーションは、映画の再生中に、再バッファリングによる再生中断を回避しつつ、利用可能な最も高い視覚的品質を提供する符号化されたビデオシーケンス180を選択する。

0070

初期の利用可能な帯域幅およびメタデータに基づいて、ビデオプレーヤーアプリケーションは、ストリーミングアプリケーション730を、ビデオプレーヤーアプリケーションへの符号化されたビデオシーケンス180(4)のストリーミングを開始するよう構成する。このようにして、ビデオプレーヤーアプリケーションは、映画の再生中に、利用可能な最も高い視覚的品質を提供する。一般的に、特に一日のうちのピーク時間におけるインターネットトラフィックを理由として、接続条件が急速に変化し、かなり変動しやすくなり得る。上述の状況では、10分間の再生後に、利用可能な帯域幅が劇的に減少する。減少した帯域幅およびメタデータに基づいて、ビデオプレーヤーアプリケーションは、ストリーミングアプリケーション730を、符号化されたビデオシーケンス180(4)と符号化されたビデオシーケンス180(1)との間の切り替えを動的に行うよう構成する。次のショット境界において、ストリーミングアプリケーション730は、符号化されたビデオシーケンス180(4)の代わりに、符号化されたビデオシーケンス180(1)のビデオプレーヤーアプリケーションへのストリーミングを開始する。ビデオプレーヤーアプリケーションは、もはや、映画の再生中に最も高い視覚的品質を提供することはできないが、ビデオプレーヤーアプリケーションは、再バッファリングに起因する再生の中断を良好に回避する。

0071

当業者には、これまでに説明された技術が、ビデオだけでなく、オーディオにも同様に適用可能であることが理解されよう。例えば、上述の客観的品質測定指標は、音質尺度を提供し得る。上述の技術の残りの部分は、他の点では同様に進行することになる。

0072

符号化されたビデオシーケンスの生成手順
図10は、本発明の様々な実施形態による、ビデオコンテンツのチャンクをアセンブルして、符号化されたビデオシーケンスにするための方法のステップのフロー図である。この方法のステップは、図1〜図9のシステムに関して説明されるが、この方法のステップを任意の順序で行うよう構成された任意のシステムが本発明の範囲であることが、当業者には理解されよう。

0073

図示されているように、方法1000はステップ1002において開始し、そこで、符号化エンジン160はソースビデオシーケンス170を受信する。ソースビデオシーケンス170は、ネイティブフォーマットまたは「配信」フォーマットで符号化されたフレームのシーケンスを含む。ステップ1004において、符号化エンジン160は、ソースビデオシーケンス170を処理して無用な画素を除去する。そのような画素は、ビデオシーケンスの実際のコンテンツに隣接した水平または垂直の黒いバーに存在し得る。ステップ1006において、符号化エンジン160は、ソースビデオシーケンス170を複数のショットシーケンス220にカットする。各ショットシーケンス220は、特定のカメラまたはシミュレーションされたカメラ(コンピュータ・アニメーション・シーケンスの場合)からキャプチャされたフレームのサブシーケンスを含む。

0074

次に、方法はステップ1008に進む。ステップ1008において、符号化エンジン160は、各ショットシーケンス220について、ショットシーケンスをM回リサンプリングすることにより、図3に示されているような、リサンプリングされたシーケンス320の解像度ラダー330を生成する。各リサンプリングされたシーケンス320は、それぞれ異なる解像度を有する。1つのリサンプリングされたシーケンス320は、元のビデオシーケンスと同じ解像度を有する。

0075

次に、方法はステップ1010に進む。符号化エンジン160は、解像度ラダー330内の各リサンプリングされたシーケンス320について、そのリサンプリングされたシーケンス320を処理パイプライン340によって処理することにより、データ点350を生成する。処理パイプライン340によって実行される具体的な処理ステップについては、図11に関してより詳細に後述する。各データ点350は、図11に関してより詳細に後述するように、所与のリサンプリングされたシーケンス320について、そのシーケンスの符号化解像度、そのシーケンスについての品質測定指標、およびそのシーケンスの符号化に用いられたQP値を示す。

0076

ステップ1012において、符号化エンジン160は、解像度ラダー330内にある全てのリサンプリングされたシーケンス320についての全てのデータ点350を集めて、データセット360を生成する。データセット360は、1つのショットシーケンス220に対応する。データセット360内の各データ点は、そのショットシーケンスのそれぞれ異なる符号化および異なる解像度に対応する。ステップ1014において、符号化エンジン160は、これらのデータ点に関連付けられた品質測定指標を歪み測定指標に変換し、次に、図5Bに示されているように、そのデータセットについての凸包点580を生成する。凸包点580は、リサンプリング/符号化された全てのショットシーケンスにわたって、歪みまたはビットレートを最小化する。

0077

ステップ1016において、符号化エンジン160は、全ての解像度ラダーにわたる全ての凸包点580を集めてシーケンストレリス710を生成する。例示的なシーケンストレリス710の構築については、図8A図8Dに関して詳細に述べられている。ステップ1018において、符号化エンジン160は、シーケンストレリスを繰り返し昇って、符号化されたビデオシーケンス180およびそれに対応するシーケンスRD点720の集合を生成する。シーケンストレリス710を昇る手法は、図12に関して述べられている。

0078

ステップ1020において、ストリーミングアプリケーション730は、ストリーミングするための符号化されたビデオシーケンス180を、関連付けられたシーケンスRD点720に基づいて選択する。その際、ストリーミングアプリケーションは、所与の利用可能なビットレートについて歪みを最小化する特定のシーケンスRD点720を選択し、次に、そのシーケンスRD点720と関連付けられた符号化されたビデオシーケンス180を、エンドポイント装置にストリーミングし得る。

0079

図11は、本発明の様々な実施形態による、リサンプリングされたショットシーケンスを処理して1組のデータ点を生成する方法のステップのフロー図である。この方法のステップは、図1〜図9のシステムに関して説明されるが、この方法のステップを任意の順序で行うよう構成された任意のシステムが本発明の範囲であることが、当業者には理解されよう。

0080

符号化エンジン160は、処理パイプライン340内の所与のサブパイプライン450に関連付けられた処理を行う方法1100を実装する。符号化エンジン160は、所与の処理パイプライン340を実装するために、複数のサブパイプライン450を並列に実行し得るものであり、従って、方法1100を複数回行い得る。

0081

図示されているように、方法1100はステップ1102において開始し、そこで、符号化エンジン160は、選択された量子化パラメータ(QP)を用いて、リサンプリングされたシーケンス320を符号化する。次に、ステップ1104において、符号化エンジン160は、符号化されたシーケンスを復号化し、ステップ1106において、復号化されたシーケンスを、ソースビデオシーケンス170と関連付けられた解像度にアップサンプリングする。ステップ1108において、符号化エンジン160は、アップサンプリングされたシーケンスについての1以上の品質測定指標(QM)を生成する。ステップ1110において、符号化エンジン160は、リサンプリングされたシーケンスの解像度と、量子化パラメータ(QP)の選択と、符号化されたリサンプリングされたビデオシーケンスについて生成された品質測定指標(QM)とを含むデータ点440を生成する。

0082

図12は、本発明の様々な実施形態による、1組の符号化されたビデオシーケンスを生成する方法ステップのフロー図である。この方法のステップは、図1〜図9のシステムに関して説明されるが、この方法のステップを任意の順序で行うよう構成された任意のシステムが本発明の範囲であることが、当業者には理解されよう。

0083

図示されているように、方法1200はステップ1202において開始し、そこで、符号化エンジン160は、全てのショットシーケンス220についての凸包点580に基づいて、シーケンストレリス710を生成する。図8A図8Dに関して上述したように、シーケンストレリス710は、凸包点580の個々の列を含み、各列は特定のショットシーケンスに対応する。従って、ソースビデオシーケンス170の符号化されたバージョンは、そのような各列から、1つの符号化されたリサンプリングされたショットシーケンス220を集めることによって構築され得る。

0084

ステップ1204において、符号化エンジン160は、最も低いビットレートを有する凸包点580のシーケンスを決定する。ステップ1206において、符号化エンジン160は、決定されたシーケンスを「現在のシーケンス」として指定する。ステップ1208において、符号化エンジンは、現在のシーケンスに基づいて、符号化されたビデオシーケンスを生成する。その際、符号化エンジン160は、ソースビデオシーケンス170の符号化されたバージョンを構築するために、凸包点580のシーケンスと関連付けられた各リサンプリングされた符号化されたショットシーケンス220を集める。ステップ1210において、符号化エンジン160は、その符号化されたビデオシーケンスに基づいて、シーケンスRD点720を生成する。

0085

ステップ1212において、符号化エンジン160は、現在のシーケンス内の各凸包点と、その上側において隣接する凸包点との間の勾配の大きさを計算する。所与の凸包点の「上側において隣接する」凸包点とは、その凸包点の同じ列内において直上にある凸包点である。ステップ1214において、符号化エンジン160は、互いに対して最大の勾配の大きさを有する凸包点およびその上側において隣接する凸包点を識別する。ステップ1216において、符号化エンジン160は、その凸包点を、その上側において隣接する凸包点と置き換えた、凸包点の新たなシーケンスを生成する。最後に、ステップ1218において、符号化エンジン160は、新たなシーケンスを「現在のシーケンス」として指定し、ステップ1208に戻る。符号化エンジン160は、他のシーケンスと比較して最大のビットレートを有する符号化シーケンス170を生成するまで、または別の終了条件が満たされるまで、方法1200を繰り返し得る。

0086

このようにして、符号化エンジン160は、現在のシーケンスの、他のバージョンと比較して歪みおよびビットレートが最大限に低減される後続のバージョンを決定することにより、シーケンストレリス710を「昇る」。このようにシーケンストレリス710を昇ることにより、符号化エンジン160は、全てのリサンプリングされた符号化されたショットシーケンス(本明細書においては「チャンク」としても参照される)の全ての可能な組合せを考慮する必要がない。従って、符号化エンジン160は、或る範囲のビットレートについて歪みを最適化する一続きの符号化されたビデオシーケンスを依然として決定しつつ、かなりのコンピューティングリソースを節約し得る。

0087

要約すると、符号化エンジンは、所与のビットレートについて最適な品質を提供するように、ビデオシーケンスを符号化する。符号化エンジンは、ビデオシーケンスをカットして、ショットシーケンスの集合にする。各ショットシーケンスは、特定のキャプチャ地点からキャプチャされたビデオフレームを含む。符号化エンジンは、各ショットシーケンスを、或る範囲の異なる解像度にわたってリサンプリングし、各リサンプリングされたシーケンスを、或る範囲の品質パラメータを用いて符号化し、次に、各符号化されたシーケンスを、そのビデオシーケンスの元の解像度にアップサンプリングする。各アップサンプリングされたシーケンスについて、符号化エンジンは品質測定指標を計算し、品質測定指標およびリサンプリング解像度を含むデータ点を生成する。符号化エンジンは、そのような全てのデータ点を集め、次に、得られたデータセットの凸包を計算する。符号化エンジンは、全てのショットシーケンスにわたる全ての凸包に基づいて、或る範囲のビットレートについてのショットシーケンスの最適な集合を決定する。

0088

本明細書に記載された技術の少なくとも1つの長所は、ビデオシーケンスを、所与のビットレートについて利用可能な最良の品質で、エンドユーザーにストリーミングできることである。また、それとは逆に、所与の所望の品質について、ビデオシーケンスを、最小限の可能なビットレートで提供することができる。

0089

項1
本発明の幾つかの実施形態は、コンピュータによって実施される方法であって、ソースビデオシーケンスについての第1の1組の符号化されたチャンクを生成する工程と、前記第1の1組の符号化されたチャンクに基づいて第1の1組のデータ点を生成する工程と、前記第1の1組のデータ点にわたって1以上の凸包処理を行うことにより、少なくとも2つの測定指標にわたって最適化された第1のサブセットのデータ点を計算する工程と、前記第1のサブセットのデータ点に含まれる第1のデータ点と前記第1のサブセットのデータ点に含まれる第2のデータ点との間の第1の勾配値を計算する工程と、前記第1の勾配値に基づいて、前記第1のデータ点と関連付けられた第1の符号化されたチャンクが前記ソースビデオシーケンスの最終的な符号化されたバージョンに含まれるべきであることを決定する工程とを含む方法を含む。

0090

項2
前記第1の1組の符号化されたチャンクを生成する前記工程が、前記ソースビデオシーケンス内において、第1のキャプチャ地点と関連付けられた第1のフレームのシーケンスを識別する工程と、前記第1のフレームのシーケンスを複数の異なる解像度でリサンプリングすることにより、前記第1のフレームのシーケンスのリサンプリングされたバージョンの解像度ラダーを生成する工程と、前記第1のフレームのシーケンスの各前記リサンプリングされたバージョンを、それぞれ異なる符号化パラメータを用いて符号化することにより、前記第1の1組の符号化されたチャンクを生成する工程とを含む、項1記載のコンピュータによって実施される方法。

0091

項3
前記第1の1組のデータ点を生成する前記工程が、前記第1の1組の符号化されたチャンクのうちの各符号化されたチャンクを復号化することにより、第1の1組の復号化されたチャンクを生成する工程と、前記第1の1組の復号化されたチャンクのうちの各復号化されたチャンクを、前記ソースビデオシーケンスと関連付けられたソース解像度にアップサンプリングすることにより、第1の1組のアップサンプリングされたチャンクを生成する工程と、第1の1組のアップサンプリングされたチャンクのうちの各アップサンプリングされたチャンクについて、それぞれ異なるデータ点を生成する工程とを含む、項1および2のいずれか一項記載のコンピュータによって実施される方法。

0092

項4
前記第1の1組のデータ点のうちの特定のデータ点が、前記第1の1組のアップサンプリングされたチャンクのうちの特定のアップサンプリングされたチャンクについての特定の客観的品質測定指標を生成することと、前記特定の客観的品質測定指標を特定の歪み測定指標に変換することと、前記特定のアップサンプリングされたチャンクについてのビットレートを計算することと、前記特定の歪み測定指標と前記ビットレートとを組み合わせることにより、前記特定のデータ点を生成することとによって、生成される、項1、2、および3のいずれか一項記載のコンピュータによって実施される方法。

0093

項5
前記第1の1組のデータ点にわたって1以上の凸包処理を行うことにより、前記第1のサブセットのデータ点を計算する前記工程が、前記第1の1組のデータ点を含む第1の領域を決定する工程と、前記第1の領域の第1の境界であって、該第1の境界の第1の側に、前記第1の1組のデータ点のうちのデータ点が存在しない、第1の境界を識別する工程と、前記第1の境界に沿って存在していないあらゆるデータ点を捨てる工程であって、前記第1の境界に沿って存在する各データ点が、前記第2の測定指標に関して前記第1の測定指標を最適化する、工程とを含む、項1、2、3、および4のいずれか一項記載のコンピュータによって実施される方法。

0094

項6
前記第1の測定指標が歪みを含み、前記第2の測定指標がビットレートを含む、項1、2、3、4、および5のいずれか一項記載のコンピュータによって実施される方法。

0095

項7
前記ソースビデオシーケンスについての第2の1組の符号化されたチャンクを生成する工程と、前記第2の1組の符号化されたチャンクに基づいて、第2の1組のデータ点を生成する工程と、前記第2の1組のデータ点にわたって1以上の凸包処理を行うことにより、前記少なくとも2つの測定指標にわたって最適化された第2のサブセットのデータ点を計算する工程と、前記第2のサブセットのデータ点に含まれる第3のデータ点と前記第2のサブセットのデータ点に含まれる第4のデータ点との間の第2の勾配値を計算する工程とを更に含む、項1、2、3、4、5、および6のいずれか一項記載のコンピュータによって実施される方法。

0096

項8
前記第1のデータ点と関連付けられた前記第1の符号化されたチャンクが前記ソースビデオシーケンスの前記最終的な符号化されたバージョンに含まれるべきであることを決定する前記工程が、前記第1の勾配の大きさが第2の勾配より大きいことを決定する工程を含む、項1、2、3、4、5、6、および7のいずれか一項記載のコンピュータによって実施される方法。

0097

項9
前記第2の勾配値が、他のサブセットのデータ点と関連付けられた他の勾配値より大きいことが決定されたことに基づいて、前記第4のデータ点と関連付けられた第2の符号化されたチャンクが前記ソースビデオシーケンスの別の符号化されたバージョンに含まれるべきであることを決定する工程を更に含む、項1、2、3、4、5、6、7、および8のいずれか一項記載のコンピュータによって実施される方法。

0098

項10
前記第1の1組の符号化されたチャンクが、第1のキャプチャ地点から連続的にキャプチャされた第1のシーケンスのビデオフレームと関連付けられており、第2の1組の符号化されたチャンクが、第2のキャプチャ地点から連続的にキャプチャされた第2のシーケンスのビデオフレームと関連付けられている、項1、2、3、4、5、6、7、8、および9のいずれか一項記載のコンピュータによって実施される方法。

0099

項11
プログラム指示がプロセッサによって実行された際に、該プロセッサを、ソースビデオシーケンスについての第1の1組の符号化されたチャンクを生成する工程と、前記第1の1組の符号化されたチャンクに基づいて第1の1組のデータ点を生成する工程と、前記第1の1組のデータ点にわたって1以上の凸包処理を行うことにより少なくとも2つの測定指標にわたって最適化された第1のサブセットのデータ点を計算する工程と、前記第1のサブセットのデータ点に含まれる第1のデータ点と前記第1のサブセットのデータ点に含まれる第2のデータ点との間の第1の勾配値を計算する工程と、前記第1の勾配値に基づいて、前記第1のデータ点と関連付けられた第1の符号化されたチャンクが前記ソースビデオシーケンスの最終的な符号化されたバージョンに含まれるべきであることを決定する工程とを行うよう構成するプログラム指示を格納したことを特徴とする非一過性のコンピュータ可読媒体

0100

項12
前記第1の1組の符号化されたチャンクを生成する前記工程が、前記ソースビデオシーケンス内において、第1のキャプチャ地点と関連付けられた第1のフレームのシーケンスを識別する工程と、前記第1のフレームのシーケンスを複数の異なる解像度でリサンプリングすることにより、前記第1のフレームのシーケンスのリサンプリングされたバージョンの解像度ラダーを生成する工程と、前記第1のフレームのシーケンスの各前記リサンプリングされたバージョンを、それぞれ異なる符号化パラメータを用いて符号化することにより、前記第1の1組の符号化されたチャンクを生成する工程とを含む、項11記載の非一過性のコンピュータ可読媒体。

0101

項13
前記第1の1組の符号化されたチャンクを生成する前記工程が、複数の可能な値および符号化されたチャンクの最大数に基づいて、符号化パラメータについての複数の値を生成する工程であって、前記複数の値に含まれる値の総数が前記複数の可能な値に含まれる可能な値の総数より小さい、工程と、前記符号化パラメータについての前記複数の値に基づいて、第1のフレームのシーケンスの複数のリサンプリングされたバージョンを符号化することにより、前記第1の1組の符号化されたチャンクを生成する工程とを含む、項11および12のいずれか一項記載の非一過性のコンピュータ可読媒体。

0102

項14
前記第1の1組のデータ点を生成する前記工程が、前記第1の1組の符号化されたチャンクのうちの各符号化されたチャンクを復号化することにより、第1の1組の復号化されたチャンクを生成する工程と、前記第1の1組の復号化されたチャンクのうちの各復号化されたチャンクを、前記ソースビデオシーケンスと関連付けられたソース解像度にアップサンプリングすることにより、第1の1組のアップサンプリングされたチャンクを生成する工程と、第1の1組のアップサンプリングされたデータチャンクのうちの各アップサンプリングされたチャンクについて、それぞれ異なるデータ点を生成する工程とを含む、項11、12、および13のいずれか一項記載の非一過性のコンピュータ可読媒体。

0103

項15
前記第1の1組のデータ点にわたって1以上の凸包処理を行うことにより、前記第1のサブセットのデータ点を計算する前記工程が、前記第1の1組のデータ点を含む第1の領域を決定する工程と、前記第1の領域の第1の境界であって、該第1の境界の第1の側に、前記第1の1組のデータ点のうちのデータ点が存在しない、第1の境界を識別する工程と、前記第1の境界に沿って存在するあらゆるデータ点を前記第1のサブセットのデータ点に含める工程とを含む、項11、12、13、および14のいずれか一項記載の非一過性のコンピュータ可読媒体。

0104

項16
前記第1の測定指標が歪みを含み、前記第2の測定指標がビットレートを含む、項11、12、13、14、および15のいずれか一項記載の非一過性のコンピュータ可読媒体。

0105

項17
前記ソースビデオシーケンスについての第2の1組の符号化されたチャンクを生成する工程と、前記第2の1組の符号化されたチャンクに基づいて、第2の1組のデータ点を生成する工程と、前記第2の1組のデータ点にわたって1以上の凸包処理を行うことにより、前記少なくとも2つの測定指標にわたって最適化された第2のサブセットのデータ点を計算する工程と、前記第2のサブセットのデータ点に含まれる第3のデータ点と前記第2のサブセットのデータ点に含まれる第4のデータ点との間の第2の勾配値を計算する工程とを更に含む、項11、12、13、14、15、および16のいずれか一項記載の非一過性のコンピュータ可読媒体。

0106

項18
前記第1のデータ点と関連付けられた前記第1の符号化されたチャンクが前記ソースビデオシーケンスの前記最終的な符号化されたバージョンに含まれるべきであることを決定する前記工程が、前記第1の勾配の大きさが第2の勾配より大きいことを決定する工程を含む、項11、12、13、14、15、16、および17のいずれか一項記載の非一過性のコンピュータ可読媒体。

0107

項19
前記第2の勾配値が、1以上の他のサブセットのデータ点と関連付けられた1以上の他の勾配値より小さいことが決定されたことに基づいて、前記第4のデータ点と関連付けられた第2の符号化されたチャンクが前記ソースビデオシーケンスの別の符号化されたバージョンに含まれないべきであることを決定する工程を更に含む、項11、12、13、14、15、16、17、および18のいずれか一項記載の非一過性のコンピュータ可読媒体。

0108

項20
前記第1の1組の符号化されたチャンクが第1のショットシーケンスと関連付けられており、第2の1組の符号化されたチャンクが第2のショットシーケンスと関連付けられている、項11、12、13、14、15、16、17、18、および19のいずれか一項記載の非一過性のコンピュータ可読媒体。

0109

項21
幾つかの実施形態は、システムであって、ソフトウェアアプリケーションを格納したメモリと、前記メモリに結合されたプロセッサとを含み、前記プロセッサが、前記ソフトウェアアプリケーションを実行した際に、ソースビデオシーケンスについての第1の1組の符号化されたチャンクを生成する工程と、前記第1の1組の符号化されたチャンクに基づいて第1の1組のデータ点を生成する工程と、前記第1の1組のデータ点にわって1以上の凸包処理を行うことにより、少なくとも2つの測定指標にわたって最適化された第1のサブセットのデータ点を計算する工程と、前記第1のサブセットのデータ点に含まれる第1のデータ点と前記第1のサブセットのデータ点に含まれる第2のデータ点との間の第1の勾配値を計算する工程と、前記第1の勾配値に基づいて、前記第1のデータ点と関連付けられた第1の符号化されたチャンクが前記ソースビデオシーケンスの最終的な符号化されたバージョンに含まれるべきであることを決定する工程とを行うよう構成される、システムを含む。

0110

項22
前記ソフトウェアアプリケーションを実行した際に、前記プロセッサが、前記第1の1組の符号化されたチャンクを生成する工程と、前記第1の1組のデータ点を生成する工程と、1以上の凸包処理を行う工程と、前記第1の勾配値を計算する工程と、前記第1のデータ点と関連付けられた前記第1の符号化されたチャンクが前記ソースビデオシーケンスの前記最終的な符号化されたバージョンに含まれるべきであることを決定する工程と
を行うよう更に構成される、項21記載のシステム。

0111

請求項のいずれかに記載されている請求項の要素のうちの任意のもの、および/または、本願に記載されている要素のうちの任意のもののあらゆる組合せは、どのような形であれ、本発明および保護の意図される範囲に含まれる。

0112

説明の目的で、様々な実施形態の説明を示したが、これらは網羅的であることを意図したものではなく、開示された実施形態に限定することは意図しない。当業者には、記載された実施形態の範囲および趣旨から逸脱することなく、多くの修正および変形が自明であろう。

0113

本実施形態の態様は、システム、方法、またはコンピュータプログラム製品として具現化され得る。従って、本開示の態様は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態(ファームウエア常駐ソフトウェアマイクロコード等を含む)、または、ソフトウェアおよびハードウェアの態様を組合せた実施形態の形態をとり得るものであり、それらの全ては、本明細書においては一般的に「モジュール」、または「システム」として参照される。それに加えて、本開示に記載されている任意のハードウェアおよび/またはソフトウェア技術、プロセス、機能、コンポーネント、エンジン、モジュール、またはシステムは、1つの回路または1組の回路として実装され得る。更に、本開示の態様は、具現化されたコンピュータ可読プログラムコードを有する1以上のコンピュータ可読媒体において具現化されたコンピュータプログラム製品の形態をとり得る。

0114

1以上のコンピュータ可読媒体の任意の組合せが用いられ得る。コンピュータ可読媒体は、コンピュータ可読信号媒体またはコンピュータ可読ストレージ媒体であり得る。コンピュータ可読ストレージ媒体は、例えば、電子磁気、光、電磁赤外線、もしくは半導体のシステム、装置、もしくはデバイス、またはそれらの任意の適切な組合せであり得るが、それらに限定されない。コンピュータ可読ストレージ媒体のより具体的な例(網羅的ではないリスト)としては、1以上のワイヤを有する電気的接続ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、消去可プログラマブル読み出し専用メモリEPROMまたはフラッシュメモリ)、光ファイバポータブルコンパクトディスク読み出し専用メモリ(CD−ROM)、光ストレージ装置、磁気ストレージ装置、またはそれらの任意の適切な組合せが挙げられる。本明細書の文脈において、コンピュータ可読ストレージ媒体は、指示を実行するシステム、装置、またはデバイスによって用いられる、またはそれらに関連して用いられるためのプログラムを収容または格納可能な、任意の有体の媒体であり得る。

0115

上記において、本開示の態様を、本開示の実施形態による方法、装置(システム)およびコンピュータプログラム製品のフローチャートおよび/またはブロック図を参照して説明した。フローチャートおよび/またはブロック図の各ブロック、並びに、フローチャートおよび/またはブロック図のブロックの組合せは、コンピュータプログラムの指示によって実装され得ることが理解されよう。これらのコンピュータプログラム指示は、汎用コンピュータ、専用コンピュータ、または他のプログラマブルデータ処理装置のプロセッサに供給されてマシンを生成し得る。これらの指示は、コンピュータまたは他のプログラマブルデータ処理装置のプロセッサによって実行された際に、フローチャートおよび/またはブロック図の1または複数のブロックにおいて指定されている機能/動作の実装を可能にする。そのようなプロセッサは、汎用プロセッサ専用プロセッサ特定用途向けプロセッサ、またはフィールドプログラマブルゲートアレイであり得るが、それらに限定されない。

0116

図面中のフローチャートおよびブロック図は、本開示の様々な実施形態によるシステム、方法、およびコンピュータプログラム製品の可能な実装のアーキテクチャ、機能、および処理を示すものである。この点に関して、フローチャートまたはブロック図の各ブロックは、指定されている論理的機能を実装するための1以上の実行可能な指示を含むモジュール、セグメント、またはコードの一部を表し得る。なお、幾つかの別の実装例においては、ブロック内に記されている機能が、図面に記されている順序から外れて生じ得る。例えば、続けて示されている2つのブロックが、含まれている機能に応じて、実際には略並列に実行される場合もあり、または、それらのブロックが逆の順序で実行される場合もある。また、ブロック図および/またはフローチャートの各ブロック、並びに、ブロック図および/またはフローチャートのブロックの組合せは、指定されている機能もしくは動作を行う専用ハードウェアに基づくシステムによって、または、専用ハードウェアとコンピュータ指示との組合せによって実装され得る。

0117

上記は本開示の実施形態に向けられているが、本開示の基本的な範囲から逸脱することなく、本開示の他の実施形態および更なる実施形態も考案され得るものであり、本開示の範囲は添付の特許請求によって決定される。

0118

100 システム
110ホストコンピュータ
112プロセッサ
116メモリ
118 ホスト符号化エンジン
140クラウドコンピュータ
148クラウド符号化エンジン
160 符号化エンジン
170ソースビデオシーケンス
180 符号化されたビデオシーケンス
200ショット解析器
220、320 ショットシーケンス
300リサンプラー
320リサンプリングされたシーケンス
330解像度ラダー
340処理パイプライン
350、440データ点
360データセット
400エンコーダ
410デコーダ
420アップサンプラー
430測定指標解析器
450(0)〜450(L)並列サブパイプライン
580凸包点
600 歪み変換器
620 凸包解析器
700トレリス反復子
710 シーケンストレリス
720 シーケンスRD点
730ストリーミングアプリケーション
820 シーケンス

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

該当するデータがありません

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い技術

関連性が強い 技術一覧

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

該当するデータがありません

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ