(57)【要約】  ほぼ視覚的無損失なビデオ再圧縮を実施するための技法について記載する。開示される技法は、最初に記録されたビデオフレームとほぼ同じレベルの視覚的に知覚可能なビデオ品質を保持しながら、比較的小さいビットレートと比較的小さいファイルサイズとを有するビデオフレームを生成する。概して、ビデオフレームの再圧縮は、入力ビデオフレームを必要とし（takes）、同じか、またはより低いビットレートを有する、ビデオフレームの第２のコピーを生じる。提案される技法は、ビデオフレームの当初の記録と比較して、視覚的品質における知覚可能損失なしでビデオフレームを再圧縮する（すなわち、視覚的無損失再圧縮）という問題に対処する。さらに、開示される技法は、各ビデオフレームの一度の（single）復号と符号化とを含む、ビデオフレームのワンステップ再圧縮を提供する。
2018509067.tif 000002
【特許請求の範囲】
【請求項１】
ビデオデータを処理する方法であって、
複数の事前計算された量子化パラメータ（ＱＰ）値を記憶することと、ここにおいて、前記複数の事前計算されたＱＰ値は、ビデオクリップのデータベースと、ビデオ品質における視覚的に知覚可能な損失を結果として生じない、前記ビデオクリップの各々を再圧縮するのに使われる最大ＱＰ値を決定するための品質メトリックとに基づいて事前計算される、
第１のビットレートでビデオフレームを取得することと、
前記ビデオフレームに関連付けられた空間的、時間的、およびコーディング統計に基づいて、前記ビデオフレームについての複雑度値を決定することと、
前記ビデオフレームについての前記複雑度値に基づいて、前記複数の事前計算されたＱＰ値から、ＱＰ値を選択することと、
前記ビデオフレームを、ビデオ品質における視覚的に知覚可能な損失なしで、前記選択されたＱＰ値に従って、前記第１のビットレートから第２のビットレートに再圧縮することと、前記第２のビットレートは前記第１のビットレートよりも低い、を備える方法。
【請求項２】
前記第１のビットレートで符号化された前記ビデオフレームをデバイスのメモリへ記憶することをさらに備え、前記ビデオフレームを取得することは、
前記ビデオフレームの再圧縮のためのトリガ条件を識別することと、ここにおいて、前記トリガ条件は、前記デバイスの特性または前記デバイスへのユーザ入力のうちの少なくとも１つを備える、
前記トリガ条件を識別したことに応答して、前記ビデオフレームを、前記ビデオフレームの再圧縮のために前記メモリから前記第１のビットレートで取り出すこととを備える、請求項１に記載の方法。
【請求項３】
前記ビデオフレームを取得することは、未加工ビデオフレームのシーケンスをカメラから前記第１のビットレートで受信することを備える、請求項１に記載の方法。
【請求項４】
前記ビデオフレームを取得することは、前記第１のビットレートで符号化された前記ビデオフレームをメモリから取り出すことを備え、前記符号化ビデオフレームは第１のファイルサイズを有し、前記方法は、
前記第２のビットレートで再圧縮された前記ビデオフレームを前記メモリへ記憶すること、前記再圧縮ビデオフレームは、前記第１のファイルサイズよりも小さい第２のファイルサイズを有する、をさらに備える、請求項１に記載の方法。
【請求項５】
前記ビデオフレームを前記第１のビットレートから前記第２のビットレートに再圧縮することは、前記ビデオフレームの記憶のために、前記ビデオフレームの第１の再圧縮を実施することを備え、前記方法は、
前記ビデオフレームの送信のために、前記第１のビットレートから第３のビットレートへの、前記ビデオフレームの第２の再圧縮を実施すること、前記第３のビットレートは前記第１のビットレートよりも低い、をさらに備える、請求項１に記載の方法。
【請求項６】
前記ビデオフレームを再圧縮することは、
前記第１のビットレートで符号化された前記ビデオフレームを復号することと、
前記第２のビットレートで、前記選択されたＱＰ値に従って、前記ビデオフレームを再符号化することとを備える、請求項１に記載の方法。
【請求項７】
前記ビデオフレームを再圧縮することは、
前記第１のビットレートで符号化された前記ビデオフレームを復号することと、
前記ビデオフレームの設定を修正することと、前記設定は、前記ビデオフレームの解像度、フレームレート、または目標ビットレートのうちの１つまたは複数を含む、
前記ビデオフレームを、前記第２のビットレートで、前記選択されたＱＰ値に従って、前記修正された設定で再符号化することとを備える、請求項１に記載の方法。
【請求項８】
前記ＱＰ値を、前記複数の事前計算されたＱＰ値から選択することは、
前記ビデオフレームについての前記複雑度値によってインデックス付けされたルックアップテーブルから、デルタＱＰ値を選択することと、
前記デルタＱＰ値、および前記第１のビットレートで符号化された前記ビデオフレーム用の前のＱＰ値に基づいて、前記ＱＰ値を算出することとを備える、請求項１に記載の方法。
【請求項９】
前記ビデオフレームについての前記複雑度値を決定することは、前記ビデオフレームに関連付けられたシーン統計および前に符号化されたビデオフレームに関連付けられたビットストリーム統計に基づいて、再符号化複雑度（ＲＥＣ）値を決定することを備える、請求項１に記載の方法。
【請求項１０】
前記ＱＰ値を選択することは、ワンステップで前記ＱＰ値を選択することを備える、請求項１に記載の方法。
【請求項１１】
ビデオ処理デバイスであって、
複数の事前計算された量子化パラメータ（ＱＰ）値を記憶するように構成されたメモリと、ここにおいて、前記複数の事前計算されたＱＰ値は、ビデオクリップのデータベースと、ビデオ品質における視覚的に知覚可能な損失を結果として生じない、前記ビデオクリップの各々を再圧縮するのに使われる最大ＱＰ値を決定するための品質メトリックとに基づいて事前計算される、
前記メモリと通信している１つまたは複数のプロセッサとを備え、前記１つまたは複数のプロセッサは、
第１のビットレートでビデオフレームを取得することと、
前記ビデオフレームに関連付けられた空間的、時間的、およびコーディング統計に基づいて、前記ビデオフレームについての複雑度値を決定することと、
前記ビデオフレームについての前記複雑度値に基づいて、前記複数の事前計算されたＱＰ値から、ＱＰ値を選択することと、
前記ビデオフレームを、ビデオ品質における視覚的に知覚可能な損失なしで、前記選択されたＱＰ値に従って、前記第１のビットレートから第２のビットレートに再圧縮することと、前記第２のビットレートは前記第１のビットレートよりも低い、を行うように構成される、デバイス。
【請求項１２】
前記１つまたは複数のプロセッサは、
前記第１のビットレートで符号化された前記ビデオフレームを前記メモリへ記憶することと、
前記ビデオフレームの再圧縮のためのトリガ条件を識別することと、ここにおいて、前記トリガ条件は、前記デバイスの特性または前記デバイスへのユーザ入力のうちの少なくとも１つを備える、
前記トリガ条件を識別したことに応答して、前記第１のビットレートで符号化された前記ビデオフレームを、前記ビデオフレームの再圧縮のために前記メモリから取り出すこととを行うように構成される、請求項１１に記載のデバイス。
【請求項１３】
前記１つまたは複数のプロセッサは、未加工ビデオフレームのシーケンスをカメラから前記第１のビットレートで受信するように構成される、請求項１１に記載のデバイス。
【請求項１４】
前記１つまたは複数のプロセッサは、
前記第１のビットレートで符号化された前記ビデオフレームを前記メモリから取り出すことと、前記符号化ビデオフレームは第１のファイルサイズを有する、
前記第２のビットレートで再圧縮された前記ビデオフレームを前記メモリへ記憶することと、前記再圧縮ビデオフレームは、前記第１のファイルサイズよりも小さい第２のファイルサイズを有する、を行うように構成される、請求項１１に記載のデバイス。
【請求項１５】
前記１つまたは複数のプロセッサは、
前記ビデオフレームの記憶のために、前記第１のビットレートから前記第２のビットレートへの、前記ビデオフレームの第１の再圧縮を実施することと、
前記ビデオフレームの送信のために、前記第１のビットレートから第３のビットレートへの、前記ビデオフレームの第２の再圧縮を実施することと、前記第３のビットレートは前記第１のビットレートよりも低い、を行うように構成される、請求項１１に記載のデバイス。
【請求項１６】
前記ビデオフレームを再圧縮するために、前記１つまたは複数のプロセッサは、
前記第１のビットレートで符号化された前記ビデオフレームを復号し、
前記第２のビットレートで、前記選択されたＱＰ値に従って前記ビデオフレームを再符号化するように構成される、請求項１１に記載のデバイス。
【請求項１７】
前記ビデオフレームを再圧縮するために、前記１つまたは複数のプロセッサは、
前記第１のビットレートで符号化された前記ビデオフレームを復号することと、
前記ビデオフレームの設定を修正することと、前記設定は、前記ビデオフレームの解像度、フレームレート、または目標ビットレートのうちの１つまたは複数を含む、
前記ビデオフレームを、前記第２のビットレートで、前記選択されたＱＰ値に従って、前記修正された設定で再符号化することとを行うように構成される、請求項１１に記載のデバイス。
【請求項１８】
前記ＱＰ値を、前記複数の事前計算されたＱＰ値から選択するために、前記１つまたは複数のプロセッサは、
前記ビデオフレームについての前記複雑度値によってインデックス付けされたルックアップテーブルから、デルタＱＰ値を選択し、
前記デルタＱＰ値、および前記第１のビットレートでの前記ビデオフレーム用の前のＱＰ値に基づいて、前記ＱＰ値を算出するように構成される、請求項１１に記載のデバイス。
【請求項１９】
前記ビデオフレームについての前記複雑度値を決定するために、前記１つまたは複数のプロセッサは、前記ビデオフレームに関連付けられたシーン統計および前に符号化されたビデオフレームに関連付けられたビットストリーム統計に基づいて、再符号化複雑度（ＲＥＣ）値を決定するように構成される、請求項１１に記載のデバイス。
【請求項２０】
前記１つまたは複数のプロセッサは、前記ＱＰ値をワンステップで選択するように構成される、請求項１１に記載のデバイス。
【請求項２１】
前記デバイスが、
集積回路、
マイクロプロセッサ、または
ワイヤレス通信デバイスのうちの少なくとも１つを備える、請求項１１に記載のデバイス。
【請求項２２】
前記デバイスは、未加工ビデオフレームのシーケンスをキャプチャするように構成されたカメラを備える、請求項１１に記載のデバイス。
【請求項２３】
ビデオ処理デバイスであって、
複数の事前計算された量子化パラメータ（ＱＰ）値を記憶するための手段と、ここにおいて、前記複数の事前計算されたＱＰ値は、ビデオクリップのデータベースと、ビデオ品質における視覚的に知覚可能な損失を結果として生じない、前記ビデオクリップの各々を再圧縮するのに使われる最大ＱＰ値を決定するための品質メトリックとに基づいて事前計算される、
第１のビットレートでビデオフレームを取得するための手段と、
前記ビデオフレームに関連付けられた空間的、時間的、およびコーディング統計に基づいて、前記ビデオフレームについての複雑度値を決定するための手段と、
前記ビデオフレームについての前記複雑度値に基づいて、前記複数の事前計算されたＱＰ値から、ＱＰ値を選択するための手段と、
前記ビデオフレームを、ビデオ品質における視覚的に知覚可能な損失なしで、前記選択されたＱＰ値に従って、前記第１のビットレートから第２のビットレートに再圧縮するための手段と、前記第２のビットレートは前記第１のビットレートよりも低い、を備えるデバイス。
【請求項２４】
前記ビデオフレームを再圧縮するための前記手段は、
前記第１のビットレートで符号化された前記ビデオフレームを復号するための手段と、
前記第２のビットレートで、前記選択されたＱＰ値に従って、前記ビデオフレームを再符号化するための手段とを備える、請求項２３に記載のデバイス。
【請求項２５】
前記ＱＰ値を、前記複数の事前計算されたＱＰ値から選択するための前記手段は、
前記ビデオフレームについての前記複雑度値によってインデックス付けされたルックアップテーブルから、デルタＱＰ値を選択するための手段と、
前記デルタＱＰ値、および前記第１のビットレートでの前記ビデオフレーム用の前のＱＰ値に基づいて、前記ＱＰ値を算出するための手段とを備える、請求項２３に記載のデバイス。
【請求項２６】
前記ビデオフレームについての前記複雑度値を決定するための前記手段は、前記ビデオフレームに関連付けられたシーン統計および前に符号化されたビデオフレームに関連付けられたビットストリーム統計に基づいて、再符号化複雑度（ＲＥＣ）値を決定するための手段を備える、請求項２３に記載のデバイス。
【請求項２７】
命令を記憶する非一時的コンピュータ可読媒体であって、前記命令は、実行されると、１つまたは複数のプロセッサに、
複数の事前計算された量子化パラメータ（ＱＰ）値を記憶することと、ここにおいて、前記複数の事前計算されたＱＰ値は、ビデオクリップのデータベース、およびビデオ品質における視覚的に知覚可能な損失を結果として生じない、前記ビデオクリップの各々を再圧縮するのに使われる最大ＱＰ値を決定するための品質メトリックに基づいて事前計算される、
第１のビットレートでビデオフレームを取得することと、
前記ビデオフレームに関連付けられた空間的、時間的、およびコーディング統計に基づいて、前記ビデオフレームについての複雑度値を決定することと、
前記ビデオフレームについての前記複雑度値に基づいて、前記複数の事前計算されたＱＰ値から、ＱＰ値を選択することと、
前記ビデオフレームを、ビデオ品質における視覚的に知覚可能な損失なしで、前記選択されたＱＰ値に従って、前記第１のビットレートから第２のビットレートに再圧縮することと、前記第２のビットレートは前記第１のビットレートよりも低い、を行わせる、非一時的コンピュータ可読媒体。
【請求項２８】
前記１つまたは複数のプロセッサに、前記ビデオフレームを再圧縮させる前記命令は、前記１つまたは複数のプロセッサにさらに、
前記第１のビットレートで符号化された前記ビデオフレームを復号させ、
前記第２のビットレートで、前記選択されたＱＰ値に従って、前記ビデオフレームを再符号化させる、請求項２７に記載の非一時的コンピュータ可読媒体。
【請求項２９】
前記１つまたは複数のプロセッサに、前記ＱＰ値を、前記複数の事前計算されたＱＰ値から選択させる前記命令は、前記１つまたは複数のプロセッサにさらに、
前記ビデオフレームについての前記複雑度値によってインデックス付けされたルックアップテーブルから、デルタＱＰ値を選択させ、
前記デルタＱＰ値、および前記第１のビットレートでの前記ビデオフレーム用の前のＱＰ値に基づいて、前記ＱＰ値を算出させる、請求項２７に記載の非一時的コンピュータ可読媒体。
【請求項３０】
前記１つまたは複数のプロセッサに、前記ビデオフレームについての前記複雑度値を決定させる前記命令は、前記１つまたは複数のプロセッサにさらに、前記ビデオフレームに関連付けられたシーン統計および前に符号化されたビデオフレームに関連付けられたビットストリーム統計に基づいて、再符号化複雑度（ＲＥＣ）値を決定させる、請求項２７に記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]本出願は、その内容全体が参照によって本明細書に組み込まれている、２０１５年２月９日に出願した米国特許仮出願第６２／１１３，９７１号の利益を主張する。
【０００２】
[0002]本開示は、ビデオ圧縮のための技法に関する。
【背景技術】
【０００３】
[0003]デジタルビデオ能力は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダー、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラー電話または衛星無線電話、いわゆる「スマートフォン」、ビデオ遠隔会議デバイス、ビデオストリーミングデバイスなどを含む、広範囲のデバイスに組み込まれ得る。デジタルビデオデバイスは、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４、Ｐａｒｔ  １０、アドバンストビデオコーディング（ＡＶＣ）、ＩＴＵ−Ｔ  Ｈ．２６５、高効率ビデオコーディング（ＨＥＶＣ）によって定義された規格、およびそのような規格の拡張に記載されているビデオコーディング技法など、ビデオコーディング技法を実装する。ビデオデバイスは、そのようなビデオコーディング技法を実装することによって、デジタルビデオ情報をより効率的に送信、受信、符号化（encode）、復号、および／または記憶することができる。
【０００４】
[0004]ビデオコーディング技法は、ビデオシーケンスに固有の冗長性を低減または除去するための空間的（ピクチャ内）予測および／または時間的（ピクチャ間）予測を含む。ブロックベースのビデオコーディングでは、ビデオスライス（たとえば、ビデオフレームまたはビデオフレームの一部分）は、ツリーブロック、コーディングユニット（ＣＵ）および／またはコーディングノードと呼ばれることもあるビデオブロックに区分され得る。ピクチャのイントラコード化（Ｉ）スライスにおけるビデオブロックは、同じピクチャ内の隣接ブロックにおける参照サンプルに対する空間的予測を使用して符号化される。ピクチャのインターコード化（ＰまたはＢ）スライスにおけるビデオブロックは、同じピクチャ中の隣接ブロックにおける参照サンプルに対する空間的予測、または他の参照ピクチャ中の参照サンプルに対する時間的予測を使用し得る。ピクチャはフレームと呼ばれる場合があり、参照ピクチャは参照フレームと呼ばれる場合がある。
【０００５】
[0005]空間的予測または時間的予測は、コーディングされるべきブロックのための予測ブロックをもたらす。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。インターコード化ブロックは、予測ブロックを形成する参照サンプルのブロックをポイントする動きベクトル、およびコード化ブロックと予測ブロックとの間の差分を示す残差データに従って符号化される。イントラコード化ブロックは、イントラコーディングモードおよび残差データに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換されて残差変換係数をもたらすことができ、それに次いで、量子化され得る。最初に２次元アレイで構成される量子化変換係数は、変換係数の１次元ベクトルを生成するために走査され得、なお一層の圧縮を達成するために、エントロピーコーディングが適用され得る。
【発明の概要】
【０００６】
[0006]概して、本開示は、ほぼ視覚的無損失なビデオ再圧縮を実施するための技法について記載する。開示される技法は、最初に記録されたビデオフレームとほぼ同じレベルの視覚的に知覚可能なビデオ品質を保持しながら、比較的小さいビットレートと比較的小さいファイルサイズとを有するビデオフレームを生成する。概して、ビデオフレームの再圧縮は、入力ビデオフレームを必要とし、同じか、またはより低いビットレートを有する、ビデオフレームの第２のコピーを生じる。本明細書では「ＶＺＩＰ」と呼ばれる、提案される技法は、ビデオフレームの当初の記録と比較して、視覚的品質における知覚可能損失なしでビデオフレームを再圧縮する（すなわち、視覚的無損失再圧縮）という問題に対処する。さらに、開示される技法は、各ビデオフレームの一度の復号と符号化とを含む、ビデオフレームのワンステップ再圧縮を提供する。
【０００７】
[0007]一例では、本開示は、ビデオデータを処理する方法を対象とする。この方法は、複数の事前計算された量子化パラメータ（ＱＰ）値を記憶することと、ここにおいて、複数の事前計算されたＱＰ値は、ビデオクリップのデータベースと、ビデオ品質における視覚的に知覚可能な損失を結果として生じない、ビデオクリップの各々を再圧縮するのに使われる最大ＱＰ値を決定するための品質メトリックとに基づいて事前計算される、第１のビットレートでビデオフレームを取得することと、ビデオフレームに関連付けられた空間的、時間的、およびコーディング統計に基づいて、ビデオフレームについての複雑度値を決定することと、ビデオフレームについての複雑度値に基づいて、複数の事前計算されたＱＰ値から、ＱＰ値を選択することと、ビデオフレームを、ビデオ品質における視覚的に知覚可能な損失なしで、選択されたＱＰ値に従って、第１のビットレートから第２のビットレートに再圧縮することと、第２のビットレートは第１のビットレートよりも低い、を備える。
【０００８】
[0008]別の例では、本開示はビデオ処理デバイスを対象とし、デバイスは、メモリと、メモリと通信している１つまたは複数のプロセッサとを備える。メモリは、複数の事前計算されたＱＰ値を記憶するように構成され、複数の事前計算されたＱＰ値は、ビデオクリップのデータベースと、ビデオ品質における視覚的に知覚可能な損失を結果として生じない、ビデオクリップの各々を再圧縮するのに使われる最大ＱＰ値を決定するための品質メトリックとに基づいて事前計算される。１つまたは複数のプロセッサ、ならびに第１のビットレートでビデオフレームを取得することと、ビデオフレームに関連付けられた空間的、時間的、およびコーディング統計に基づいて、ビデオフレームについての複雑度値を決定することと、ビデオフレームについての複雑度値に基づいて、複数の事前計算されたＱＰ値から、ＱＰ値を選択することと、ビデオフレームを、ビデオ品質における視覚的に知覚可能な損失なしで、選択されたＱＰ値に従って、第１のビットレートから第２のビットレートに再圧縮することと、第２のビットレートは第１のビットレートよりも低い、を行うように構成される。
【０００９】
[0009]さらなる例では、本開示は、ビデオ処理デバイスを対象とし、デバイスは、複数の事前計算されたＱＰ値を記憶するための手段と、ここにおいて、複数の事前計算されたＱＰ値は、ビデオクリップのデータベースと、ビデオ品質における視覚的に知覚可能な損失を結果として生じない、ビデオクリップの各々を再圧縮するのに使われる最大ＱＰ値を決定するための品質メトリックとに基づいて事前計算される、第１のビットレートでビデオフレームを取得するための手段と、ビデオフレームに関連付けられた空間的、時間的、およびコーディング統計に基づいて、ビデオフレームについての複雑度値を決定するための手段と、ビデオフレームについての複雑度値に基づいて、複数の事前計算されたＱＰ値から、ＱＰ値を選択するための手段と、ビデオフレームを、ビデオ品質における視覚的に知覚可能な損失なしで、選択されたＱＰ値に従って、第１のビットレートから第２のビットレートに再圧縮するための手段と、第２のビットレートは第１のビットレートよりも低い、を備える。
【００１０】
[0010]追加の例では、本開示は、命令を記憶する非一時的コンピュータ可読媒体を対象とし、命令は、実行されると、１つまたは複数のプロセッサに、複数の事前計算されたＱＰ値を記憶することと、ここにおいて、複数の事前計算されたＱＰ値は、ビデオクリップのデータベースと、ビデオ品質における視覚的に知覚可能な損失を結果として生じない、ビデオクリップの各々を再圧縮するのに使われる最大ＱＰ値を決定するための品質メトリックとに基づいて事前計算される、第１のビットレートでビデオフレームを取得することと、ビデオフレームに関連付けられた空間的、時間的、およびコーディング統計に基づいて、ビデオフレームについての複雑度値を決定することと、ビデオフレームについての複雑度値に基づいて、複数の事前計算されたＱＰ値からＱＰ値を選択することと、ビデオフレームを、ビデオ品質における視覚的に知覚可能な損失なしで、選択されたＱＰ値に従って、第１のビットレートから第２のビットレートに再圧縮することと、第２のビットレートは第１のビットレートよりも低い、を行わせる。
【００１１】
[0011]本開示の１つまたは複数の例の詳細が添付の図面および以下の説明に記載されている。本開示の他の特徴、目的、および利点は、説明および図面、ならびに特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【００１２】
【図１】[0012]ビデオデータを再圧縮、符号化、および／またはトランスコードするための本開示の技法を実装するのに使われ得る、例示的なコンピューティングデバイスを示すブロック図。
【図２】[0013]本開示に記載される技法を実装し得る例示的なビデオ再圧縮ユニットを示すブロック図。
【図３】[0014]本開示に記載される技法による、再符号化複雑度（ＲＥＣ）モデルを生成するのに使われ得る、例示的なルックアップテーブル（ＬＵＴ）生成システムを示すブロック図。
【図４】[0015]ストレージ短縮（compaction）のためのビデオ再圧縮の例示的な使用ケースを示すブロック図。
【図５】[0016]ビデオ共有のためのビデオ再圧縮の例示的な使用ケースを示すブロック図。
【図６】[0017]ライブビデオ記録のためのビデオ再圧縮の例示的な使用ケースを示すブロック図。
【図７】[0018]所与の（given）ビットレートにおける異なる品質レベルを有する異なるビデオクリップについての例示的なレート歪み曲線を示すグラフ。
【図８】[0019]本開示に記載されるビデオ再圧縮技法の例示的な性能レベルを示すグラフ。
【図９】[0020]本開示に記載されるビデオ再圧縮技法の例示的な動作を示すフローチャート。
【発明を実施するための形態】
【００１３】
[0021]本開示は、ほぼ視覚的無損失なビデオ再圧縮を実施するための技法について記載する。開示される技法は、最初に記録されたビデオフレームとほぼ同じレベルのビデオ品質を保持しながら、比較的小さいビットレートと比較的小さいファイルサイズとを有するビデオフレームを生成する。概して、ビデオフレームの再圧縮は、入力ビデオフレームを必要とし、同じか、またはより低いビットレートを有する、ビデオフレームの第２のコピーを生じる。「ＶＺＩＰ」とも呼ばれる、提案される技法は、ビデオフレームの当初の記録と比較して、視覚的品質における知覚可能損失なしでビデオフレームを再圧縮する（すなわち、視覚的無損失再圧縮）という問題に対処する。
【００１４】
[0022]より高い解像度、フレームレートおよびビットレートでのビデオ記録は、大きいビデオクリップを生成する。たとえば、４Ｋ３０（４Ｋ、３０フレーム毎秒）ビデオが常に（every minute）５０ｍｂｐｓで記録されると、３７５ＭＢのデータが追加され、これは、デバイス上のメモリをすぐに満杯にし得る。さらに、大きいビデオクリップは、ウェブサイトおよびサーバにアップロードするのが困難である。これは、メモリおよびワイヤレスチャネル帯域幅が異常に高額である（at a premium）モバイルデバイスにおいて特に当てはまる。
【００１５】
[0023]簡易な（Simple）トランスコーディングが、ビデオフレームのビットレートを低減するのに使われ得るが、開示される技法によって対処される追加制約は、ビデオコンテンツの視覚的忠実性（fidelity）を維持することである。さらに、開示される技法は、各ビデオフレームの一度の復号と符号化とを含む、ビデオフレームのワンステップ再圧縮を提供する。このように、ビデオフレームの復号または符号化における複数回の繰返しは必要ない。他の例では、ビデオビットレートを変更するのではなく、解像度、フレームレート、コーディング規格、または他のビデオコーデック特徴が、視覚的忠実性を維持したまま変更され得る。
【００１６】
[0024]図１は、ビデオデータを再圧縮、符号化、および／またはトランスコードするための本開示の技法を実装するのに使われ得る、例示的なコンピューティングデバイス２を示すブロック図である。コンピューティングデバイス２は、たとえば、パーソナルコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、コンピュータワークステーション、ビデオゲームプラットフォームもしくはコンソール、ワイヤレス通信デバイス、たとえば、セルラー電話もしくは衛星電話などの携帯電話、固定電話、インターネット電話、デジタルカメラ、インターネット接続カメラ、ポータブルビデオゲームデバイスもしくは携帯情報端末（ＰＤＡ）などのハンドヘルドデバイス、パーソナルミュージックプレーヤ、ビデオプレーヤ、ディスプレイデバイス、テレビジョン、テレビジョンセットトップボックス、サーバ、中間ネットワークデバイス、メインフレームコンピュータ、任意のモバイルデバイス、またはビデオおよび／もしくは画像データを処理および／もしくは表示する任意の他のタイプのデバイスを備え得る。
【００１７】
[0025]図１の例に示されているように、コンピューティングデバイス２は、ユーザ入力インターフェース４と、中央処理ユニット（ＣＰＵ）６と、メモリコントローラ８と、システムメモリ１０と、ビデオ再圧縮ユニット１２と、ディスプレイ１８と、バス２０および２２と、カメラ２１と、ビデオプロセッサ２３とを含み得る。いくつかのケースでは、図１に示されているＣＰＵ６、メモリコントローラ８、ビデオ再圧縮ユニット１２、およびビデオプロセッサ２３は、たとえば、システムオンチップ（ＳｏＣ）設計におけるオンチップであり得る。ユーザ入力インターフェース４、ＣＰＵ６、メモリコントローラ８、およびビデオ再圧縮ユニット１２は、バス２０を使用して互いに通信し得る。メモリコントローラ８およびシステムメモリ１０はまた、バス２２を使用して互いと通信し得る。コンピューティングデバイス２がワイヤレス通信デバイスを備える例では、コンピューティングデバイス２は、ワイヤレス通信インターフェース（図示せず）も含み得る。
【００１８】
[0026]バス２０、２２は、第３世代バス（たとえば、ＨｙｐｅｒＴｒａｎｓｐｏｒｔバスまたはＩｎｆｉｎｉＢａｎｄバス）、第２世代バス（たとえばアドバンストグラフィックスポートバス、周辺構成要素相互接続（ＰＣＩ）エクスプレスバス、またはアドバンストエクステンシブルインターフェース（ＡＸＩ）バス）、または別のタイプのバスもしくはデバイスの相互接続など、様々なバス構造のいずれかであり得る。図１に示す異なる構成要素同士の間のバスおよび通信インターフェースの特定の構成は単なる例示であり、本開示の本技法を実装するために、同じまたは異なる構成要素を備えたコンピューティングデバイスおよび／または他のグラフィックス処理システムの他の構成が使用され得ることに留意されたい。
【００１９】
[0027]ＣＰＵ６は、コンピューティングデバイス２の動作を制御する汎用プロセッサまたは専用プロセッサを備えることができる。ユーザは、ＣＰＵ６に１つまたは複数のソフトウェアアプリケーションを実行させるためにコンピューティングデバイス２に入力を与え得る。ＣＰＵ６上で実行するソフトウェアアプリケーションは、たとえば、オペレーティングシステム、ワードプロセッサアプリケーション、電子メールアプリケーション、スプレッドシートアプリケーション、メディアプレーヤアプリケーション、ビデオゲームアプリケーション、グラフィカルユーザインターフェースアプリケーション、または別のプログラムを含み得る。ユーザは、ユーザインターフェース４を介してコンピューティングデバイス２に結合されたキーボード、マウス、マイクロフォン、タッチパッド、または別の入力デバイスなど、１つまたは複数の入力デバイス（図示せず）を介して、コンピューティングデバイス２に入力を与え得る。
【００２０】
[0028]メモリコントローラ８は、システムメモリ１０への、およびシステムメモリ１０からのデータの転送を促進する。たとえば、メモリコントローラ８は、コンピューティングデバイス２中の構成要素にメモリサービスを提供するために、メモリ読取りおよび書込みコマンドを受信し、システムメモリ１０に関するそのようなコマンドをサービスし得る。メモリコントローラ８は、メモリバス２２を介してシステムメモリ１０に通信可能に結合される。メモリコントローラ８は、ＣＰＵ６とシステムメモリ１０の両方とは別個である処理モジュールであるものとして図１に示されているが、他の例では、メモリコントローラ８の機能性の一部または全部は、ＣＰＵ６とシステムメモリ１０の一方または両方の上で実装され得る。
【００２１】
[0029]システムメモリ１０は、ＣＰＵ６が実行するためにアクセス可能であるプログラムモジュールおよび／もしくは命令、ならびに／またはＣＰＵ６上で実行しているプログラムによる使用のためのデータを記憶し得る。さらに、システムメモリ１０は、ビデオプロセッサ２３によって符号化されたビデオデータを記憶し得る。さらに、システムメモリ１０は、本開示の技法に従ってビデオ再圧縮ユニット１２によって再圧縮されているビデオデータを記憶するように構成され得る。システムメモリ１０は、ディスプレイ１８上にグラフィカルユーザインターフェース（ＧＵＩ）を提示するためにＣＰＵ６によって使用されるウィンドウマネージャアプリケーションを記憶し得る。さらに、システムメモリ１０は、ユーザアプリケーションと、アプリケーションに関連するアプリケーション表面データとを記憶し得る。システムメモリ１０は、コンピューティングデバイス２の他の構成要素による使用のための情報、および／または他の構成要素によって生成される情報をさらに記憶し得る。システムメモリ１０は、たとえば、ランダムアクセスメモリ（ＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、読取り専用メモリ（ＲＯＭ）、消去可能プログラマブルＲＯＭ（ＥＰＲＯＭ）、電気的消去可能プログラマブルＲＯＭ（ＥＥＰＲＯＭ（登録商標））、フラッシュメモリ、磁気データ媒体または光記憶媒体など、１つまたは複数の揮発性または不揮発性メモリまたは記憶デバイスを含み得る。
【００２２】
[0030]概して、ビデオプロセッサ２３は、ビデオデータを符号化し、復号するように構成され得る。たとえば、ビデオプロセッサ２３は、システムメモリ１０中に記憶されたビデオを符号化するように構成され得る。さらに、ビデオプロセッサ２３は、カメラ２１、ＣＰＵ６、および／または別のビデオデータソース（たとえば、グラフィックス処理ユニット（ＧＰＵ））によって生じられた（produced）ピクセル値から、ビデオデータを符号化するように構成され得る。以下でより詳しく説明するように、ビデオプロセッサ２３は、本開示の技法に従ってビデオデータを符号化および／またはトランスコードするように構成され得る。
【００２３】
[0031]ビデオプロセッサ２３は、ＩＴＵ−Ｔ  Ｈ．２６５、高効率ビデオコーディング（ＨＥＶＣ）、規格などのビデオ圧縮規格に従ってビデオデータを符号化し、復号するように構成され得る。ＨＥＶＣ規格文書は、ＩＴＵ−Ｔ  Ｈ．２６５，Ｓｅｒｉｅｓ  Ｈ：Ａｕｄｉｏｖｉｓｕａｌ  ａｎｄ  Ｍｕｌｔｉｍｅｄｉａ  Ｓｙｓｔｅｍｓ，Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ  ｏｆ  ａｕｄｉｏｖｉｓｕａｌ  ｓｅｒｖｉｃｅｓ−Ｃｏｄｉｎｇ  ｏｆ  ｍｏｖｉｎｇ  ｖｉｄｅｏ，Ｈｉｇｈ  ｅｆｆｉｃｉｅｎｃｙ  ｖｉｄｅｏ  ｃｏｄｉｎｇ、国際電気通信連合（ＩＴＵ）の電気通信標準化部門、２０１５年４月として公開されている。本開示で説明する技法はまた、ＨＥＶＣ規格の拡張に従って動作し得る。代替または追加として、ビデオプロセッサ２３は、代替的にＭＰＥＧ−４、Ｐａｒｔ  １０、アドバンストビデオコーディング（ＡＶＣ）と呼ばれるＩＴＵ−Ｔ  Ｈ．２６４規格など、他のプロプライエタリ規格もしくは業界規格、またはそのような規格の拡張に従って動作し得る。ただし、本開示の技法は、いかなる特定のコーディング規格にも限定されない。ビデオ圧縮規格の他の例は、ＩＴＵ−Ｔ  Ｈ．２６１、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−１  Ｖｉｓｕａｌ、ＩＴＵ−Ｔ  Ｈ．２６２またはＩＳＯ／ＩＥＣ  ＭＰＥＧ−２  Ｖｉｓｕａｌ、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  Ｖｉｓｕａｌ、および、スケーラブルビデオコーディング（ＳＶＣ）拡張とマルチビュービデオコーディング（ＭＶＣ）拡張とを含む（ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  ＡＶＣとしても知られる）ＩＴＵ−Ｔ  Ｈ．２６４を含む。
【００２４】
[0032]概して、ＨＥＶＣ規格は、ビデオフレームまたはピクチャが、ルーマサンプルとクロマサンプルの両方を含むツリーブロックまたは最大コーディングユニット（ＬＣＵ）のシーケンスに分割され得ることを記載している。ビットストリーム内のシンタックスデータは、ＬＣＵのサイズを定義することができ、ＬＣＵは、ピクセルの数に関して最大コーディングユニットである。スライスは、コーディング順序で、いくつかの連続するツリーブロックを含む。ビデオフレームまたはピクチャは、１つまたは複数のスライスに区分され得る。各ツリーブロックは、４分木に従って、コーディングユニット（ＣＵ）にスプリットされ得る。概して、４分木データ構造はＣＵごとに１つのノードを含み、ルートノードがツリーブロックに対応する。ＣＵが４つのサブＣＵにスプリットされる場合、ＣＵに対応するノードは、４つのリーフノードを含み、その各々は、サブＣＵの１つに対応する。
【００２５】
[0033]４分木データ構造の各ノードは、対応するＣＵのためのシンタックスデータを与え得る。たとえば、４分木のノードは、そのノードに対応するＣＵがサブＣＵにスプリットされるかどうかを示すスプリットフラグを含み得る。ＣＵのシンタックス要素は、再帰的に定義されてよく、ＣＵがサブＣＵにスプリットされるかどうかに依存し得る。ＣＵがさらに分割されない場合、そのＣＵはリーフＣＵと呼ばれる。本開示では、元のリーフＣＵの明示的スプリッティングが存在しない場合でも、リーフＣＵの４つのサブＣＵはリーフＣＵとも呼ばれる。たとえば、１６×１６サイズのＣＵがさらにスプリットされない場合、その１６×１６ＣＵが決してスプリットされなくても、４つの８×８サブＣＵもリーフＣＵと呼ばれるようになる。
【００２６】
[0034]ＣＵは、ＣＵがサイズ差異を有しないことを除いて、Ｈ．２６４規格のマクロブロックと同様の目的を有する。たとえば、ツリーブロックは、（サブＣＵとも呼ばれる）４つの子ノードにスプリットされ得、各子ノードは、今度は親ノードとなり、別の４つの子ノードにスプリットされ得る。４分木のリーフノードと呼ばれる、最後のスプリットされていない子ノードは、リーフＣＵとも呼ばれるコーディングノードを備える。コード化ビットストリームに関連するシンタックスデータは、最大ＣＵ深度と呼ばれる、ツリーブロックがスプリットされ得る最大回数を定義し得、コーディングノードの最小サイズも定義し得る。それに応じて、ビットストリームはまた、最小コーディングユニット（ＳＣＵ）を定義し得る。本開示は、「ブロック」という用語を、ＨＥＶＣのコンテキストにおいて、ＣＵ、ＰＵ、もしくはＴＵのうちのいずれか、または他の規格のコンテキストにおいて、同様のデータ構造（たとえば、Ｈ．２６４／ＡＶＣのマクロブロックおよびそのサブブロック）を指すために使用する。
【００２７】
[0035]ＣＵは、コーディングノードと、コーディングノードに関連付けられた予測ユニット（ＰＵ）および変換ユニット（ＴＵ）とを含む。ＣＵのサイズは、コーディングノードのサイズに対応し、形状が正方形でなければならない。ＣＵのサイズは、８×８ピクセルから最大６４×６４ピクセル以上をもつツリーブロックのサイズにまでわたり得る。各ＣＵは、１つまたは複数のＰＵと、１つまたは複数のＴＵとを含み得る。ＣＵに関連付けられたシンタックスデータは、たとえば、１つまたは複数のＰＵへのＣＵの区分を記述し得る。区分モードは、ＣＵが、スキップモード符号化もしくはダイレクトモード符号化されるのか、イントラ予測モード符号化されるのか、またはインター予測モード符号化されるのかによって異なり得る。ＰＵは、形状が非正方形になるように区分され得る。ＣＵに関連付けられたシンタックスデータは、たとえば、４分木に従って、ＣＵを１つまたは複数のＴＵに区分することも記述し得る。ＴＵは、形状において正方形または非正方形（たとえば、長方形）であってもよい。
【００２８】
[0036]ＨＥＶＣ規格は、異なるＣＵに対しては異なり得る、ＴＵに従う変換を可能にする。ＴＵは、一般に、区分されたＬＣＵについて定義された所与のＣＵ内のＰＵのサイズに基づいてサイズ決定されるが、これは常にそうであるとは限らない。ＴＵは、一般に、ＰＵと同じサイズであるか、またはそれよりも小さい。いくつかの例では、ＣＵに対応する残差サンプルは、「残差４分木」（ＲＱＴ）として知られる４分木構造を使用して、より小さいユニットに再分割され得る。ＲＱＴのリーフノードは変換ユニット（ＴＵ）と呼ばれ得る。ＴＵに関連するピクセル差分値は、変換係数を生成するために変換され得、その変換係数は量子化され得る。
【００２９】
[0037]リーフＣＵは、１つまたは複数の予測ユニット（ＰＵ）を含み得る。概して、ＰＵは、対応するＣＵの全部または一部分に対応する空間エリアを表し、そのＰＵのための参照サンプルを取り出すためのデータを含み得る。さらに、ＰＵは、予測に関するデータを含む。たとえば、ＰＵがイントラモード符号化されるとき、ＰＵのデータは、ＰＵに対応するＴＵについてのイントラ予測モードを記述するデータを含み得る残差４分木（ＲＱＴ）中に含まれ得る。別の例として、ＰＵがインターモード符号化されるとき、ＰＵは、ＰＵ用の１つまたは複数の動きベクトルを定義するデータを含む場合がある。ＰＵの動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度（たとえば、１／４ピクセル精度または１／８ピクセル精度）、動きベクトルが指す参照ピクチャ、および／または動きベクトルの参照ピクチャリストを記述し得る。
【００３０】
[0038]１つまたは複数のＰＵを有するリーフＣＵは、１つまたは複数の変換ユニット（ＴＵ）も含み得る。変換ユニットは、上述されたように、（ＴＵ４分木構造とも呼ばれる）ＲＱＴを使用して指定され得る。たとえば、スプリットフラグは、リーフＣＵが４つの変換ユニットにスプリットされるかどうかを示し得る。次いで、各変換ユニットは、さらなるサブＴＵにさらにスプリットされ得る。ＴＵは、さらにはスプリットされないとき、リーフＴＵと呼ばれ得る。概して、イントラコーディングの場合、リーフＣＵに属するすべてのリーフＴＵは、同じイントラ予測モードを共有する。すなわち、リーフＣＵのすべてのＴＵの予測値を算出するために、同じイントラ予測モードが概して適用される。イントラコーディングの場合、ビデオエンコーダは、イントラ予測モードを使用して、各リーフＴＵに対する残差値を、ＴＵに対応するＣＵの一部と元のブロックとの間の差分として算出することができる。ＴＵは、必ずしも、ＰＵのサイズに限定されるとは限らない。したがって、ＴＵはＰＵよりも大きくても、または小さくてもよい。イントラコーディングの場合、ＰＵは、同じＣＵの対応するリーフＴＵとコロケートされ得る。いくつかの例では、リーフＴＵの最大サイズは、対応するリーフＣＵのサイズに対応し得る。
【００３１】
[0039]その上、リーフＣＵのＴＵは、残差４分木（ＲＱＴ）と呼ばれる、それぞれの４分木データ構造にも関連付けられ得る。すなわち、リーフＣＵは、リーフＣＵがどのようにＴＵに区分されるかを示す４分木を含むことができる。ＴＵ４分木のルートノードは一般に、リーフＣＵに対応し、一方、ＣＵ４分木のルートノードは一般に、ツリーブロック（またはＬＣＵ）に対応する。スプリットされないＲＱＴのＴＵは、リーフＴＵと呼ばれる。概して、本開示では、別段に明記されていない限り、リーフＣＵおよびリーフＴＵに言及するためにそれぞれＣＵおよびＴＵという用語を使用する。
【００３２】
[0040]ビデオシーケンスは、通常、一連のビデオフレームまたはピクチャを含む。ピクチャのグループ（ＧＯＰ）は、概して、ビデオピクチャのうちの一連の１つまたは複数を備える。ＧＯＰは、ＧＯＰ中に含まれるいくつかのピクチャを記述するシンタックスデータを、ＧＯＰのヘッダ中、ピクチャの１つもしくは複数のヘッダ中、または他の場所に含み得る。ピクチャの各スライスは、それぞれのスライスの符号化モードを記述するスライスシンタックスデータを含み得る。ビデオプロセッサ２３は、一般に、ビデオデータを符号化するために、個々のビデオスライス内のビデオブロックに対して作用する。ビデオブロックはＣＵ内のコーディングノードに対応し得る。ビデオブロックは、固定サイズまたは変動サイズを有し得、指定されたコーディング規格に応じてサイズが異なり得る。
【００３３】
[0041]一例として、ＨＥＶＣ規格は、様々なＰＵサイズでの予測をサポートする。ＣＵのＰＵを使用したイントラ予測コーディングまたはインター予測コーディングに続いて、ビデオプロセッサ２３は、ＣＵのＴＵについての残差データを算出し得る。ＰＵは、（ピクセル領域とも呼ばれる）空間領域において予測ピクセルデータを生成する方法またはモードを記述するシンタックスデータを備え得、ＴＵは、変換、たとえば、残差ビデオデータへの離散コサイン変換（ＤＣＴ）、整数変換、ウェーブレット変換、または概念的に同様の変換の適用後の、変換領域における係数を備え得る。残差データは、符号化されていないピクチャのピクセルと、ＰＵに対応する予測値との間のピクセル差分に対応し得る。ビデオプロセッサ２３は、ＣＵのための残差データを含むＴＵを形成し、次いで、ＣＵのための変換係数を生成するためにＴＵを変換し得る。
【００３４】
[0042]変換係数を生成するためのいずれかの変換に続いて、ビデオプロセッサ２３は、変換係数の量子化を実施し得る。量子化は、概して、係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化される、さらなる圧縮をもたらすプロセスを指す。量子化プロセスは、係数の一部または全部に関連付けられたビット深度を低減し得る。たとえば、ｎビット値は、量子化中にｍビット値に切り捨てられ得、ここで、ｎはｍよりも大きい。
【００３５】
[0043]量子化の後に、ビデオプロセッサ２３は、変換係数を走査して、量子化変換係数を含む２次元行列から１次元ベクトルを生成し得る。走査は、アレイの前部により高いエネルギー（したがって、より低い周波数）係数を配置し、アレイの後部により低いエネルギー（したがって、より高い周波数）係数を配置するように設計され得る。いくつかの例では、ビデオプロセッサ２３は、エントロピー符号化され得るシリアル化ベクトルを生成するために、量子化変換係数を走査するためのあらかじめ定義された走査順序を利用し得る。他の例では、ビデオプロセッサ２３は適応型走査を実施し得る。
【００３６】
[0044]量子化変換係数を走査して１次元ベクトルを形成した後に、ビデオプロセッサ２３は、たとえば、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ）、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）、シンタックスベースコンテキスト適応型バイナリ算術コーディング（ＳＢＡＣ）、確率間隔区分エントロピー（ＰＩＰＥ）コーディングまたは別のエントロピー符号化方法に従って、１次元ベクトルをエントロピー符号化し得る。ビデオプロセッサ２３はまた、ビデオデータを復号する際にビデオデコーダが使用するための、符号化ビデオデータに関連付けられたシンタックス要素をエントロピー符号化し得る。
【００３７】
[0045]カメラ２１は、レンズと、光を検出し、カラーピクセル値（たとえば、ＲＧＢ値）を生成するように構成されたカメラセンサーとを含み得る。カメラ２１は、画像信号プロセッサをさらに含み得る。いくつかの例では、画像信号プロセッサは、レンズおよびカメラセンサーと同じパッケージ中に一緒に含まれる。他の例では、画像信号プロセッサは、レンズおよびカメラセンサーとは別個にパッケージングされ得る。画像信号プロセッサは、未加工（raw）センサーデータを受信し、未加工センサーデータを圧縮データフォーマット（たとえば、ＪＰＥＧファイル）にコンバートし、得られた（resultant）圧縮データをピクチャファイルに記憶するように構成され得る。他の例では、画像信号プロセッサは、未加工センサーデータを保持し、未加工センサーデータを別個のファイルに保存するように構成され得る。
【００３８】
[0046]他の例では、カメラ２１は、ビデオをキャプチャするように構成され得る。この例では、カメラ２１は、画像センサーによってキャプチャされたビデオデータをビデオプロセッサ２３に与え得る。ビデオプロセッサ２３は、キャプチャされたビデオデータを、上で言及したビデオ圧縮規格などのビデオ圧縮規格に従って圧縮／符号化するように構成され得る。
【００３９】
[0047]本開示の別の例では、カメラ２１は、コンピューティングデバイス２の１つまたは複数の他の構成要素とともに、接続カメラ（またはインターネット接続カメラ）の一部を形成し得る。接続カメラとして構成されるとき、コンピューティングデバイス２（カメラ２１を含む）は、ビデオデータのキャプチャならびにキャプチャされたビデオデータの、１つまたは複数の他のネットワーク接続デバイスへの（ワイヤードまたはワイヤレス接続を用いる）ストリーミングの両方を行うように構成され得る。
【００４０】
[0048]ＣＰＵ６、カメラ２１、および／またはビデオプロセッサ２３は、ビデオデータをフレームバッファ１５に記憶することができる。フレームバッファ１５は、独立したメモリであり得るか、またはシステムメモリ１０内に割り振られ得る。ディスプレイインターフェースは、フレームバッファ１５からデータを取り出し、ビデオデータによって表される画像を表示するようにディスプレイ１８を構成し得る。いくつかの例では、ディスプレイインターフェースは、フレームバッファから取り出されたデジタル値を、ディスプレイ１８によって消費可能なアナログ信号にコンバートするように構成されたデジタルアナログコンバータ（ＤＡＣ）を含み得る。他の例では、ディスプレイインターフェースは、処理のために、デジタル値をディスプレイ１８に直接渡し得る。ディスプレイ１８は、モニタ、テレビジョン、投影デバイス、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイパネル、有機ＬＥＤ（ＯＬＥＤ）ディスプレイなどの発光ダイオード（ＬＥＤ）アレイ、陰極線管（ＣＲＴ）ディスプレイ、電子ペーパー、表面伝導電子放出ディスプレイ（ＳＥＤ）、レーザーテレビジョンディスプレイ、ナノ結晶ディスプレイ、または別のタイプのディスプレイユニットを含み得る。ディスプレイ１８は、コンピューティングデバイス２内に組み込まれ得る。たとえば、ディスプレイ１８は携帯電話のスクリーンであり得る。代替的に、ディスプレイ１８は、ワイヤードまたはワイヤレス通信リンクを介してコンピューティングデバイス２に結合されたスタンドアロンデバイスであり得る。たとえば、ディスプレイ１８は、ケーブルまたはワイヤレスリンクを介してパーソナルコンピュータに接続されたコンピュータモニタまたはフラットパネルディスプレイであり得る。
【００４１】
[0049]ビデオ再圧縮ユニット１２は、ビデオデータの再圧縮、符号化、および／またはトランスコーディングを命じ（direct）、引き起こすように構成される。本開示の技法によると、ビデオ再圧縮ユニット１２は、再圧縮、符号化、および／またはトランスコードされたビデオデータの最終ビットレートが、元のビデオデータよりも低いビットレートでのように、ビデオデータを再圧縮、符号化および／またはトランスコードするためのビットレートを決定するように構成され得る。本開示の一例では、ビデオ再圧縮ユニット１２は、得られたビデオが、元のビデオデータと比較して無損失であるように見えるか、またはそうであるのに非常に近く見えるように、ビデオデータを再圧縮／符号化／トランスコードするための最終ビットレートを決定するように構成され得る。ビデオ再圧縮ユニット１２は、ビットレートと他の符号化パラメータとを決定し、決定されたパラメータに従ってビデオデータをトランスコードおよび／または符号化するよう、ビデオプロセッサ２３に命令するように構成され得る。ビデオ再圧縮ユニット１２は、プロセッサ（たとえば、ＣＰＵ６、グラフィックス処理ユニット、デジタル信号プロセッサなど）上で実行するソフトウェアとして、プロセッサ上で実行するファームウェアとして、専用のハードウェアとして、または上記の任意の組合せとして構成され得る。
【００４２】
[0050]後でより詳しく論じるように、本開示のトランスコーディングおよび符号化技法の結果、高い視覚的品質を依然として維持したまま、元のビデオデータよりもサイズが（すなわち、ビットの数において）小さいトランスコード化ビデオデータが生じ得る。したがって、より長い尺の高解像度ビデオ（たとえば、ＨＤビデオ、１０８０Ｐ、１０８０ｉ、４ｋなど）が、記憶制限のあるモバイルデバイス（たとえば、スマートフォン、タブレットコンピュータ、ラップトップコンピュータ、接続カメラなど）上で記憶され得る。さらに、帯域幅制限のあるモバイルデバイス（たとえば、スマートフォン、タブレットコンピュータ、ラップトップコンピュータ、接続カメラなど）上で高解像度ビデオをアップロードおよび／または送信するのにかかる時間が減少され得る。
【００４３】
[0051]モバイルデバイスを使ってビデオファイルを記録し、記憶し、送信することに関連したいくつかの問題について、ここで記載する。いわゆる４Ｋビデオデータを含む高精細ビデオデータはしばしば、非常に大きいファイルサイズを生じる。ビデオが長いほど、ビデオを記憶するのに必要とされる記憶量が大きくなる。同様に、４ｋ６０（４ｋ、６０フレーム毎秒）のデータを生じる接続カメラは、非常に大きいサイズのビデオファイルを生じ得る。たとえば、Ｈ．２６４ビデオ圧縮規格に従って生じた４ｋビデオは通常（typically）、４８ｍｂｐｓ（メガビット毎秒）のビットレートを使う。４８ｍｂｐｓでの、１秒間のＨ．２６４  ４Ｋビデオは、６ＭＢの記憶空間（storage space）を使う。４８ｍｐｂｓでの、１分間のＨ．２６４  ４Ｋビデオは、３６０ＭＢの記憶空間を使う。４８ｍｐｂｓでの、１時間のＨ．２６４  ４Ｋビデオは、２１．６ＧＢの記憶空間を使う。多くのモバイルデバイスは、１６ＧＢのストレージまたはそれ未満を有するだけである。したがって、長い尺での４Ｋビデオの記憶は、多くのデバイスにおいて困難であるか、または不可能でさえあり得る。
【００４４】
[0052]同様に、そのような大きいビデオファイルをモバイルデバイスから転送することも困難であり得る。そのような大きいファイルサイズの結果、従来のワイヤレスサービス（たとえば、４ＧまたはＬＴＥ（登録商標））を使うとき、非常に長いアップロード時間が生じる。さらに、モバイルデバイス向けのワイヤレスサービスはしばしば、ユーザにとってひと月に利用可能な帯域幅の量が制限される。したがって、大きいビデオファイルのアップロードは、実現可能性が低くなる。
【００４５】
[0053]これらの欠点を鑑みて、本開示は、記憶およびアップロード使用ケースを容易にするために、視覚的品質の損失を最小限にして、比較的小さいビデオファイルの作成を可能にするビデオ再圧縮、符号化およびトランスコーディング技法を提案する。
【００４６】
[0054]以下のテーブル１は、本開示の技法向けの様々な使用ケースを概説する。テーブル１に含まれる使用ケースは、それぞれ、図４〜図６に関してより詳しく記載される。
【００４７】
【表１】
2018509067.tif 000003
【００４８】
[0055]一例として、モバイルデバイス上で利用可能な限られたメモリの結果、ストレージ短縮問題が生じ得る。すなわち、モバイルデバイスは、４Ｋまたは他のＨＤビデオを記憶しようと試みるとき、すぐに（quickly）メモリを使い果たす。現在、モバイルデバイスのユーザは、比較的少ない、比較的短いビデオの記録に制限されている。これは、モバイルデバイスのプレミアム特徴（すなわち、ＨＤおよび４Ｋビデオを符号化し、復号することができる）の使用を制限する。本開示の再圧縮技法（「ＶＺＩＰ」とも呼ばれる）は、より小さいファイルサイズをもたらすために、ビデオデータを符号化、再圧縮および／またはトランスコードするために使われ得る。
【００４９】
[0056]別の使用ケースとして、本開示の技法は、ビデオデータの共有およびアップロードのために使われ得る。現在、大きいビデオファイルは、アップロードするのに長い時間がかかる。さらに、しばしば、大きいファイルをアップロードするのに関連した高いデータ使用コストが存在する。現在、ビデオは、ビデオアップロードに関連した問題を緩和するために、より低い解像度、フレームレート（すなわち、フレーム毎秒（ｆｐｓ））、およびビットレートにトランスコードされる。ただし、現在のソリューションの結果、乏しい品質のビデオが生じる。本開示の技法は、ビデオ品質の損失を最小限にして、比較的低いビットレートでのビデオファイルの符号化／トランスコーディング／再圧縮を可能にする。
【００５０】
[0057]別の使用ケースとして、本開示の技法は、（たとえば、接続カメラを用いる）ビデオストリーミングのために使われ得る。現在のビデオストリーミングデバイスは、ＨＤおよび／または４ｋで記録するとき、ストレージをすぐに満杯にする。さらに、ストリーミングされるビデオは通常、低ビットレートに加え、低い視覚的品質で符号化されているので、ストリーミングされるビデオの品質は乏しい。やはり、本開示の技法は、ビデオ品質の損失を最小限にして、比較的低いビットレートでのビデオファイルのトランスコーディング／再圧縮を可能にする。
【００５１】
[0058]概して、本開示の技法は、ビデオの再圧縮、さらなるトランスコーディングのためのビデオの再圧縮、ライブストリーミングのためのビデオの１パス圧縮（符号化）、ならびに／または記録（たとえば、記憶）およびストリーミングのためのビデオの１パス圧縮（符号化）のうちの１つまたは複数を伴う。
【００５２】
[0059]ビデオ再圧縮ユニット１２は、比較的低いビットレートでビデオデータを再圧縮、符号化、および／またはトランスコードするようにビデオプロセッサ２３を制御するように構成され得る。このコンテキストにおいて、比較的低いビットレートとは、元のビデオデータよりも低いビットレートまたはＨＤおよび／または４Ｋビデオに通常使われるはずのもの（たとえば、ビデオ圧縮規格の技法によって規定されたビットレート）よりも低いビットレートである。特に、ビデオ再圧縮ユニット１２は、視覚的品質の最小限の損失のみを生じるように、比較的低いビットレートでビデオデータを再圧縮／符号化／トランスコードするように構成され得る。ビデオコーディングのための例示的なレート制御プロセスの考察について、以下で説明する。
【００５３】
[0060]一例では、元のビデオシーケンスのフレームは、イントラモード（Ｉモード）またはインターモード（ＰモードまたはＢモード）で符号化され得る長方形の領域またはブロックに区分される。ブロックは、ＤＣＴコーディングなど、何らかの種類の変換コーディングを使用してコーディングされる。ただし、純粋な変換ベースのコーディングは、単に、ピクセルのブロック間相関を考慮することなしに、特定のブロック内のピクセル間相関を低減するにすぎない。変換ベースのコーディングは、依然として、送信に対する高いビットレートを生じる。ＨＥＶＣなど、現在のデジタル画像コーディング規格はまた、ブロック間のピクセル値の相関を低減するいくつかの方法も活用する。
【００５４】
[0061]概して、Ｐモードで符号化されたブロックは、前にコーディングされ、送信されたフレームのうちの１つから予測される。ブロックの予測情報は、２次元（２Ｄ）動きベクトルによって表される。Ｉモードで符号化されたブロックの場合、予測ブロックは、同じフレーム内のすでに符号化された隣接ブロックからの空間予測を使用して形成される。予測誤差Ｅ（ｘ，ｙ）、すなわち、符号化されるブロックＩ（ｘ，ｙ）と予測されるブロックＰ（ｘ，ｙ）との間の差分は、変換基底関数ｆij（ｉ，ｊ）の加重和
【００５５】
【数１】
2018509067.tif 000004
【００５６】
として表される。
【００５７】
[0062]変換は、一般に８×８（Ｎ＝８）または４×４（Ｎ＝４）のブロックベースで実施される。予測誤差係数と呼ばれる重みｃijがその後、次のように量子化され、
【００５８】
【数２】
2018509067.tif 000005
【００５９】
上式で、ｌijは、量子化された係数またはレベルと呼ばれる。量子化の演算は情報の損失をもたらす。一方、量子化された係数は、より少ないビット数を用いて表され得る。圧縮（情報の損失）のレベルは、量子化パラメータ（ＱＰ）の値を調整することによって制御される。より低いＱＰ値は、一般的に、より少ない歪みをもたらすが、より多くのビット、したがってより高いビットレートを必要とすることがある。より高いＱＰ値は、一般的に、より多くの歪みをもたらすが、より少ないビット、したがってより低いビットレートを必要とすることがある。そのように、ＱＰの選択は、歪みとビットレートとの間のトレードオフがなされ得る１つの技法である。
【００６０】
[0063]量子化変換係数は、動きベクトルおよび何らかの制御情報とともに、完全なコード化シーケンス表現を形成し、シンタックス要素と呼ばれる。ビデオエンコーダからビデオデコーダへの送信の前に、シンタックス要素は、それらの表現に必要なビット数をさらに低減するようにエントロピーコーディングされ得る。
【００６１】
[0064]ビデオデコーダにおいて、現在のフレーム中の再構築ブロックは、ビデオエンコーダによって実施されるのと同様の方法でその予測を最初に構築し、圧縮された予測誤差を予測に追加することによって得られる。圧縮された予測誤差は、逆変換を実施することによる量子化解除された係数を使用することによって、次のように見出される。
【００６２】
【数３】
2018509067.tif 000006
【００６３】
[0065]量子化解除された係数（再構築された係数とも呼ばれる）γijは、次のように逆量子化によって算出される。
【００６４】
【数４】
2018509067.tif 000007
【００６５】
再構築フレームＲ（ｘ，ｙ）と元のフレームＩ（ｘ，ｙ）との間の差分は、再構築誤差と呼ばれる。
【００６６】
[0066]ＨＥＶＣ規格は、量子化、動きベクトルの選択、およびどのフレームが予測に使用されるべきかに関する決定を、ビデオエンコーダの実装者にゆだねる。レート歪み理論は、損失性圧縮の目標を、データをコーディングするためのレートにおける制約に従って、元のデータと選択されたメトリックに従う圧縮されたデータとの間の距離の測度であるコーディング歪みを最小化することの目標に形式化する。したがって、いくつかの例では、ビデオエンコーダの１つの目標は、各フレームに対して、予測誤差Ｅ（ｘ，ｙ）と予測誤差の再構築バージョン
【００６７】
【数５】
2018509067.tif 000008
【００６８】
との間の平均２乗誤差（ＭＳＥ）歪みＤが、シンタックス要素をコーディングするためのレートＲにおける制約に従って最小化されるようなシンタックス要素の値を見つけることである。
【００６９】
【数６】
2018509067.tif 000009
【００７０】
[0067]他の付加的な歪みメトリックは、ＭＳＥの代わりに、たとえばアクティビティ加重ＭＳＥなどを使用することができる。式（５）におけるレート制約問題は、ラグランジュ乗数λを使用して、レートと歪みとを「マージする」ことによって等価な制約なし問題にコンバートされることによって解決され得る。本開示では、ラグランジュ乗数λは、レート制御パラメータと呼ばれることになる。制約なし問題は、シンタックス要素の値の（固定されたλに対する）決定になり、次のように定義される最小総ラグランジュコストを生じる。
【００７１】
【数７】
2018509067.tif 000010
【００７２】
[0068]レート制御パラメータλは、レートと歪みとの間のトレードオフを決定するために使用されるパラメータと見なされ得る。低い値のλは、レートよりも歪みを最小化することを選好し、高い値のλは、歪みよりもレートを最小化することを選好する。極限では、λ＝０、すなわち歪みが最小化され、λ→∞、すなわちレートが最小化される。
【００７３】
[0069]上記考察からわかるように、ある程度の損失もとり込みながら、ビデオシーケンスのビットレートを低下するための一技法は、ＱＰの値を増大することである。本開示の技法によると、ビデオ再圧縮ユニット１２は、ＨＤおよび／または４ｋビデオを最初に符号化するのに使われているか、または使われていたはずのものよりも高いＱＰ値を使ってビデオデータを符号化／トランスコードするよう、ビデオプロセッサ２３に命令するように構成され得る。本開示の一例では、ビデオ再圧縮ユニット１２は、コンピューティングデバイス２上にあらかじめ記憶されているルックアップテーブルを使って、ビデオデータを符号化／トランスコードするために使うためのＱＰ値を決定するように構成され得る。ルックアップテーブルは、複数の異なるＱＰ値について、ビデオデータに対する視覚的品質における損失の量を示し得る。ルックアップテーブル中の視覚的品質メトリックにおける損失は、ビデオデータのフレームレート、解像度、および複雑度を含む、ビデオデータの他の特性に基づき得る。
【００７４】
[0070]ビデオ再圧縮ユニット１２は、ビデオ品質における得られた損失が、ある程度の閾（threshold）を下回るように、符号化／トランスコーディングに使うためのＱＰ値を決定するように構成され得る。一例では、閾は、知覚される視覚的無損失閾と呼ばれる場合があり、知覚される視覚的品質メトリックに基づき得る。知覚される視覚的無損失閾および知覚される視覚的品質メトリックは、人間の眼には検出不可能および／またはほぼ（barely）検出不可能である、視覚的品質の損失の量を表すように、あらかじめ決定されてよい。他の例では、知覚される視覚的無損失閾および知覚される視覚的品質メトリックは、ＨＤおよび／または４Ｋビデオという予想（expectations）が与えられたとき、平均的ユーザにとって受容可能な、視覚的品質の損失の量を表すように、あらかじめ決定されてよい。ビデオ再圧縮ユニット１２は、視覚的品質における、得られた損失が、知覚される視覚的無損失閾を依然として下回るように、ＱＰ値と、したがって量子化の程度（degree）とを選択するように構成され得る。
【００７５】
[0071]図２は、本開示に記載される技法を実装し得る、図１からのビデオ再圧縮ユニット１２の例を示すブロック図である。概して、ビデオ再圧縮ユニット１２は、単一ステップで、視覚的品質における知覚可能損失なしで、ビデオクリップを再圧縮するように構成される。さらに、ビデオ再圧縮ユニット１２は、フレームの復号または符号化が反復されないように、ビデオクリップの各フレームの一度の復号と符号化とを含む、ビデオクリップのワンステップ再圧縮を提供するように構成される。ほぼ視覚的無損失な再圧縮は、正常な再生速度では人間の眼には同じに見えるビデオクリップを結果として生じる再圧縮として定義され得る。より詳細には、ほぼ視覚的無損失な再圧縮は、対応するビデオ品質メトリックについて定義された視覚的無損失閾に基づいて測定され得る。
【００７６】
[0072]開示される再圧縮技法は結果として、同じか、またはより低いビットレートを有するビデオフレームを生じる。いくつかの例では、解像度、フレームレート、コーディング規格および他のビデオコーデック特徴など、他のビデオクリップパラメータが、ほぼ視覚的無損失な圧縮を達成するように変更され得る。ビデオクリップは、量子化パラメータ／ステップ／インデックス／値（ＨＥＶＣ、Ｈ．２６４、ＭＰＥＧ−４、ＭＰＥＧ−２、Ｈ．２６３、ＶＣ−１を含むが、それらに限定されない）または固有コーデック（ＶＰ９、ＶＰ８を含むが、それらに限定されない）を使う、どのビデオ規格において符号化されてもよい。
【００７７】
[0073]図２の図示される例では、ビデオ再圧縮ユニット１２は、デコーダ３０と、ＱＰ選択ユニット３２と、エンコーダ３４と、再符号化複雑度（ＲＥＣ）モデル３６とを含む。概して、開示される再圧縮技法は、オンライン段階とオフライン段階とを含む。たとえば、ビデオ再圧縮ユニット１２は、オフラインで生成されるＲＥＣモデル３６に基づく、ビデオフレームのオンライン再圧縮を実施し得る。ＲＥＣモデル３６のオフライン生成については、図３に関して以下でより詳しく説明する。
【００７８】
[0074]本開示に記載される再圧縮技法に従って、デコーダ３０は、第１のビットレート（たとえば、４Ｋビデオの場合は４８ｍｂｐｓ）で符号化されたビデオフレームをシステムメモリ１０から取り出し、ビデオフレームを復号する。デコーダ３０は、復号ビデオフレームのＱＰ値を記録し、シーンを特徴づけるシーン統計を抽出するＹＵＶ統計計算ライブラリに、復号ビデオフレームを渡せばよい。デコーダ３０は次いで、復号ビデオフレームに関連付けられたシーン統計（たとえば、ＹＵＶ統計）と、復号ビデオフレーム用のＱＰ値とを、ＱＰ選択ユニット３２に送る。ＱＰ選択ユニット３２は、ビデオ品質における視覚的に知覚可能な損失なしで、より低い第２のビットレートでビデオフレームを再圧縮するのに使われる新たなＱＰ値を選択する。ビデオエンコーダ３４は次いで、第２のビットレートで、選択されたＱＰ値に従ってビデオフレームを符号化すればよい。
【００７９】
[0075]本明細書に記載される視覚的無損失圧縮は、２つの統計セット、すなわち（１）ＹＵＶバッファ中の復号ビデオフレームからのＹＵＶまたはシーン統計および（２）エンコーダマクロブロック情報（ＭＢＩ）からのビットストリーム統計（ビーナス統計と呼ばれることもある）に基づいて可能にされる。ビットストリーム統計は、符号化統計であり、フレームレート（たとえば、ｆｐｓ）、複雑度、ＱＰ、ビットレート、コーディングモードなどのようなビデオ特性を含み得る。ＱＰ選択ユニット３２は、復号ビデオフレーム用のＱＰ値に基づく視覚的無損失ＱＰ値を選択するために、ビットストリーム統計をシーン統計と組み合わせる。ビデオフレームは次いで、この推定ＱＰを用いて再圧縮される。再符号化ビデオフレームは、そのＭＢＩが解析されて（parsed for）よく、符号化ビットストリーム統計が計算され、ＱＰ選択ユニット３２にフィードバックされる。ビデオ再圧縮ユニット１２は、開示される技法がフレーム単位で新たなＱＰ値を選択するので、レート制御がオフにされて動作する。
【００８０】
[0076]ＱＰ選択ユニット３２は、ＲＥＣモデル３６として記憶されている、事前計算されたＱＰ値から、ビデオフレームの再圧縮のための新たなＱＰ値を選択してよい。たとえば、ビデオ再圧縮ユニット１２のＱＰ選択ユニット３２は、ビデオデコーダ３０からのビデオフレームに関連付けられたシーン統計（たとえば、ＹＵＶ統計）と、ビデオエンコーダ３４からの、前に符号化されたビデオフレームに関連付けられたビットストリーム統計とに基づいて、ビデオフレーム用のＲＥＣ値または再圧縮統計を決定することができる。
【００８１】
[0077]このようにして、ＲＥＣ値は、未加工ピクチャ情報から生成された空間的、時間的、およびコーディング統計（たとえば、ＹＵＶまたはシーン統計）ならびにビデオクリップの前のフレームの符号化中に集められた情報（たとえば、ビットストリーム統計）を使って生成され得る。一例では、未加工ピクチャ情報は、３つの知覚的特徴、すなわちテクスチャマスキング、輝度マスキング、および時間的マスキングに対応するテクスチャ測度と、輝度測度と、時間的測度とを含み得る。この例では、コーディング複雑度統計は、符号化プロセス中に集められた情報から導出される空間的および動き複雑度測度を含み得る。再圧縮統計は次いで、個々の測度、プーリング、またはスカラーベクトルマシン（ＳＶＭ）の積をとることによる合成を含むが、それに限定されない方法を使うことによって、個々の空間的、時間的、およびコーディング統計の組合せとして導出され得る。
【００８２】
[0078]ＱＰ選択ユニット３２は、ビデオフレーム用に決定されたＲＥＣ値に基づいて、ＲＥＣモデル３６からＱＰ値を選択する。ＲＥＣモデル３６は、ＲＥＣ値または再圧縮統計を、ほぼ視覚的無損失な再圧縮のための最大ＱＰ値にマッピングし（map）得る。ＲＥＣモデル３６は、ルックアップテーブル（ＬＵＴ）または関数を使うことを含む、いくつかのやり方で実装され得る。一例では、ＲＥＣモデル３６は、所与のＱＰ値でのビデオフレーム用のＲＥＣ値によってインデックス付けされたデルタ（delta）ＱＰ  ＬＵＴを備え得る。別の例では、ＲＥＣモデル３６は、所与のＱＰ値でのビデオフレーム用のＲＥＣ値に基づくデルタＱＰ値を戻す関数を備え得る。ＱＰ選択ユニット３２は次いで、ビデオフレーム用のデルタＱＰ値および前のＱＰ値に基づいて、ビデオフレームを再圧縮するための新たなＱＰ値を算出する。
【００８３】
[0079]図２に示される例では、本開示のほぼ視覚的無損失なビデオ再圧縮技法は、ビデオクリップを復号することと、再圧縮統計（たとえば、ＲＥＣ値）を生成することと、視覚的無損失である再圧縮ビデオクリップを生成する最も高いＱＰ値を見つけるために、再圧縮統計からＱＰ値（たとえば、ＲＥＣモデル３６）へのマッピングを使うことと、ビデオクリップを再符号化することとを実施する。他の例では、本開示のほぼ視覚的無損失なビデオ再圧縮技法は、ビデオクリップを復号する必要をなくし、代わりに、ビデオ再圧縮技法を未加工ビデオに直接適用すること、異なる解像度、フレームレートおよびビットレートで複数の再圧縮ビデオクリップを生成すること、またはクリップ全体に対してではなく、フレームごとに圧縮を実施することのうちの１つまたは複数を実施し得る。
【００８４】
[0080]図３は、本開示に記載される技法に従って、ＲＥＣモデル３６を生成するのに使われ得る例示的なＬＵＴ生成システム４０を示すブロック図である。概して、ＲＥＣモデル３６は、ビデオクリップ用のＲＥＣ値を、ビデオ品質における視覚的に知覚可能な損失なしでビデオクリップを再符号化するのに使われ得る最も高いデルタＱＰ値にマッピングするように生成され得る。ＬＵＴ生成システム４０は、ビデオ再圧縮ユニット１２およびコンピューティングデバイス２にとって外部であり、それらとは別個であってよい。ＲＥＣモデル３６は、ＬＵＴ生成システム４０によってオフラインで生成され得る。図３の例では、ＲＥＣモデル３６は、ＬＵＴとして実装されるものとして記載される。他の例では、ＲＥＣモデル３６は、数学関数として実装されてよい。
【００８５】
[0081]図３に示される例では、ＬＵＴ生成システム４０は、ビデオデータベース４２と、エンコーダ４４と、品質メトリックユニット４６と、ＲＥＣ計算ユニット４８とを含む。ＲＥＣモデル３６は、複数のビデオクリップを含むビデオデータベース４２に基づくトレーニング方法に従って生成され得る。一例では、ビデオデータベース４２中の各ビデオクリップは、エンコーダ４４によって、特定の（certain）元のＱＰ値（たとえば、Ｈ．２６４の場合は０〜５１）で符号化され得る。品質メトリックユニット４６は次いで、ビデオクリップを、一定の範囲のＱＰ値で再圧縮し、再圧縮ビデオクリップの品質メトリックを、ＱＰ値の各々で測定する。通常、ビデオクリップ用の元のＱＰ値よりも大きいＱＰ値のみ（すなわち、ゼロでないデルタＱＰ値）が、トレーニング方法において使われる。このようにして、品質メトリックユニット４６は、ビデオクリップが、ビデオクリップの所与の内容と元のＱＰ値とに対するビデオ品質における視覚的知覚可能損失なしで再符号化され得る最も高いＱＰ値を決定することができる。
【００８６】
[0082]品質メトリックユニット４６は、客観的ビデオ品質メトリックのようなビデオ品質メトリック（ＶＱＭ）、視覚的情報忠実度（ＶＩＦ）、構造的類似性（ＳＳＩＭ）およびその変形体、量子化パラメータステップサイズ（ＱＳＴＥＰ）、ならびにピーク信号対ノイズ比（ＰＳＮＲ）／平均２乗誤差（ＭＳＥ）を含むが、それに限定されない、多くの異なるビデオ品質メトリックを使って、各ＱＰ値で再圧縮されたビデオクリップの視覚的品質を測定し得る。品質メトリックユニット４６は次いで、品質メトリックを、品質メトリック用に定義された視覚的無損失閾（ＶＬＴ）と比較すればよい。ビデオ品質が増すのに従って（as）ビデオ品質メトリックが増すと仮定すると、再圧縮ビデオクリップは、再圧縮ビデオクリップの品質メトリックがＶＬＴよりも大きいか、または等しい場合、視覚的に無損失であると決定され得る。一例では、ＶＬＴは、二重刺激連続品質尺度（ＤＳＣＱＳ）方法を使う主観的検査（testing）を使って決定され得る。
【００８７】
[0083]ＲＥＣ計算ユニット４８は、決定された最も高いＱＰ値でのビデオクリップ用のＲＥＣ値を生成するために、ビデオクリップについて導出された空間的、時間的、およびコーディング統計を使うことができる。これらのステップによって生成されたデータすべてから、ＲＥＣ値の平均および分散またはＱＰ値の範囲についての再圧縮統計を含むすべてのＱＰ値について、ＲＥＣモデル３６が生成される。このように、ＲＥＣモデル３６は、ビデオ品質における視覚的に知覚可能な損失なしでビデオフレームを再圧縮するための最大ＱＰ値を決定するためにビデオ再圧縮ユニット１２によって使われ得る、複数の事前計算されたＱＰ値を含む。
【００８８】
[0084]図４は、図１からのコンピューティングデバイス２のビデオ再圧縮ユニット１２によって実施されるストレージ短縮のためのビデオ再圧縮の例示的な使用ケースを示すブロック図である。図４に示されるストレージ短縮使用ケースにおいて、コンピューティングデバイス２のビデオ再圧縮ユニット１２は、より高い第１のビットレートで最初に符号化されるとともに第１のファイルサイズで記憶されたビデオフレームを、第１のファイルサイズよりも小さい第２のファイルサイズで記憶するために、より低い第２のビットレート（すなわち、第１のビットレートよりも低い）に再圧縮するように構成され得る。いくつかの例では、第２のビットレートは、第１のビットレートよりも３０〜７０％低くてよく、第２のファイルサイズは、第１のファイルサイズよりも３０〜７０％小さくてよい。
【００８９】
[0085]図４に示される例では、ビデオエンコーダ５２は、ビデオソース５０から未加工ビデオフレームを受信し、ビデオフレームをより高い第１のビットレート（たとえば、４８ｍｂｐｓ）で符号化し、ビデオフレームをシステムメモリ１０に記憶する。ビデオエンコーダ５２は、符号化ビデオフレームに関連付けられたビットストリーム統計をシステムメモリ１０に記憶することもできる。いくつかの例では、ビデオエンコーダ５２は、コンピューティングデバイス２のビデオプロセッサ２３のエンコーダ部分を備え得る。ビデオソース５０は、コンピューティングデバイス２のカメラ２１または外部カメラを備え得る。
【００９０】
[0086]開示される技法によると、ビデオフレームの再圧縮は、ビデオ再圧縮ユニット１２によって識別されたトリガ条件によってトリガされ得る。たとえば、トリガ条件は、プリセットされた、または周期タイマの満了、低い使用回数（たとえば、夜間）の検出、またはコンピューティングデバイス２がプラグインされたという検出など、コンピューティングデバイス２の特性を備え得る。トリガ条件は、再圧縮をいつ実施するかをユーザが明示的に選択すること、またはコンピューティングデバイス２上で実行される特定のアプリケーション、すなわち「アプリ」を使ってビデオフレームを共有し、アップロードし、またはストリーミングすることをユーザが要求することなど、コンピューティングデバイス２へのユーザ入力も備え得る。いくつかの例では、記憶されたビデオフレームの再圧縮は、ユーザエクスペリエンスに対して最小限の影響を課すように、バックグラウンドにおけるすべてのビデオファイルについて自動的に実施され得る。たとえば、すべての新たに記録されたビデオファイルが、コンピューティングデバイス２がプラグインされ、充電中のとき、毎晩再圧縮され得る。
【００９１】
[0087]トリガ条件を識別すると、ビデオ再圧縮ユニット１２は、再圧縮されるべきビデオフレームを取得する。上述したように、ビデオ再圧縮ユニット１２は、第１のビットレートで符号化されたビデオフレームを復号し、再圧縮ビデオフレームが、元のビデオフレームと比較してほぼ視覚的に無損失となるように、ビデオフレームを再圧縮するための新たなＱＰ値を選択し、より低い第２のビットレートで、選択されたＱＰ値に従ってビデオフレームを再符号化するように構成され得る。ビデオ再圧縮ユニット１２は次いで、第２のビットレートで再圧縮されたビデオフレームをシステムメモリ１０に記憶する。
【００９２】
[0088]図５は、図１からのコンピューティングデバイス２のビデオ再圧縮ユニット１２によって実施されるビデオ共有のためのビデオ再圧縮の例示的な使用ケースを示すブロック図である。図５に示されるビデオ共有使用ケースにおいて、本開示のビデオ再圧縮技法は、コンピューティングデバイス２上で実行されるビデオ共有アプリケーション用のトランスコード設定（settings）に基づくビデオトランスコーディングとともに作用する（work in conjunction with）。コンピューティングデバイス２のビデオ再圧縮ユニット１２は、より高い第１のビットレートで最初に符号化されたビデオフレームを、記憶するとともに、ビデオ共有アプリケーションを介して後で共有し、アップロードし、またはストリーミングするために、より低い第２のビットレートにトランスコードし、再圧縮するように構成され得る。
【００９３】
[0089]図５に示される例では、ビデオエンコーダ５２は、ビデオソース５０から未加工ビデオフレームを受信し、ビデオフレームをより高い第１のビットレートで符号化し、ビデオフレームをシステムメモリ１０に記憶する。ビデオエンコーダ５２は、符号化ビデオフレームに関連付けられたビットストリーム統計をシステムメモリ１０に記憶することもできる。いくつかの例では、ビデオエンコーダ５２は、コンピューティングデバイス２のビデオプロセッサ２３のエンコーダ部分を備え得る。ビデオソース５０は、コンピューティングデバイス２のカメラ２１または外部カメラを備え得る。
【００９４】
[0090]開示される技法によると、ビデオフレームのトランスコードおよび再圧縮が、コンピューティングデバイス２上で実行されるビデオ共有アプリケーション（「ビデオアプリ」）５４を使って、記憶されたビデオファイルを共有し、アップロードし、またはストリーミングすることをユーザが要求することによってトリガされ得る。ビデオアプリ５４は、ビデオアプリ５４を介して共有され、アップロードされ、またはストリーミングされるべきビデオクリップについての解像度、フレームレート（たとえば、ｆｐｓ）、または目標ビットレート（target bitrate）のうちの１つまたは複数を指示する、トランスコード設定を、ビデオ再圧縮ユニット１２に与えればよい。トリガ条件を識別し、トランスコード設定を受信すると、ビデオ再圧縮ユニット１２は、トランスコードされ、再圧縮されるべきビデオフレームを取得する。
【００９５】
[0091]ビデオ再圧縮ユニット１２は、第１のビットレートで符号化されたビデオフレームを復号し、ビデオアプリ５４から受信されたトランスコード設定に従ってビデオフレームの設定を修正し、ビデオフレームのトランスコードされた内容と比較して、再圧縮ビデオフレームがほぼ視覚的に無損失になるようにビデオフレームを再圧縮するための新たなＱＰ値を選択し、より低い第２のビットレートで、選択されたＱＰ値に従ってビデオフレームを修正された設定で再符号化するように構成され得る。ビデオ再圧縮ユニット１２は次いで、第２のビットレートで再圧縮されたトランスコード化ビデオフレームをシステムメモリ１０に記憶する。
【００９６】
[0092]いくつかの例では、第２のビットレートは、第１のビットレートの両方よりも低く、ビデオ共有アプリケーション用のトランスコード設定によって指定された目標ビットレートよりも低いか、または等しくてよい。さらに、トランスコードおよび再圧縮されたビデオフレームは、目標ビットレートによって（depending on）は、ビデオフレームのトランスコードされた内容（content）と比較して、ほぼ視覚的に無損失であり得る。この場合、トランスコードされた内容は、ビデオフレームが復号され、ビデオ共有アプリケーション用のトランスコード設定によって指定された解像度およびフレームレートにトランスコードされた後に生成された未加工の内容である。
【００９７】
[0093]図６は、図１からのコンピューティングデバイス２のビデオ再圧縮ユニット１２によって実施されるライブビデオ録音のためのビデオ再圧縮の例示的な使用ケースを示すブロック図である。図６に示されるライブ記録使用ケースにおいて、コンピューティングデバイス２のビデオ再圧縮ユニット１２は、第１のビットレートでのライブ記録のビデオフレームを、記憶および／または送信用に、より低い第２のビットレートに圧縮するように構成され得る。いくつかのケースでは、ビデオ再圧縮ユニット１２は、ビデオフレームの２つの圧縮バージョンを生成することができ、１つは、記憶用により低い第２のビットレートにおけるものであり、もう１つは、送信用により一層低い第３のビットレートにおけるものである。
【００９８】
[0094]図６に示される例では、ビデオ再圧縮ユニット１２は、より高い第１のビットレートでの未加工ビデオフレームを、ビデオソース５０から直接受信する。開示される技法によると、ビデオ再圧縮ユニット１２は、システムメモリ１０への記憶またはコンピューティングデバイス２の送信機（「ＴＸ」）５６による送信のいずれかに先立って、未加工ビデオフレームの圧縮を実施することができる。ビデオ再圧縮ユニット１２は、符号化ビデオフレームに関連付けられたビットストリーム統計をシステムメモリ１０に記憶することもできる。ビデオソース５０は、コンピューティングデバイス２のカメラ２１または外部カメラを備え得る。
【００９９】
[0095]上述したように、ビデオ再圧縮ユニット１２は、元のビデオフレームと比較して圧縮ビデオフレームがほぼ視覚的に無損失になるように、ライブ記録のビデオフレームを圧縮するためのＱＰ値を選択し、より低い第２のビットレートで、選択されたＱＰ値に従ってビデオフレームを符号化するように構成され得る。一例では、ビデオ再圧縮ユニット１２は次いで、第２のビットレートで圧縮されたビデオフレームをシステムメモリ１０に記憶する。第２のビットレートは、第１のビットレートよりも３０〜７０％低くてよい。別の例では、ビデオ再圧縮ユニット１２は、第２のビットレートで圧縮されたビデオフレームを、送信、たとえば、ビデオ共有、アップロード、またはストリーミングのためにＴＸ５６に送る。
【０１００】
[0096]さらなる例では、本開示の再圧縮技法は、ライブ記録のビデオフレームを、記憶用により低い第２のビットレートで圧縮するために、および同じビデオフレームを、より一層低い第３のビットレートで送信用に圧縮するために適用され得る。ビデオフレームを送信用に生成するために、ビデオ再圧縮ユニット１２は、元のビデオフレームの設定を、ビデオ共有、アップロード、またはストリーミングのためのトランスコード設定に従って修正してよい。たとえば、ビデオ再圧縮ユニット１２は、ビデオフレームの解像度、フレームレート（たとえば、ｆｐｓ）、または目標ビットレートのうちの１つまたは複数を修正してよい。ビデオ再圧縮ユニット１２は、圧縮ビデオフレームが、ビデオフレームの修正された内容と比較してほぼ視覚的に無損失になるように、ビデオフレームを圧縮するためのＱＰ値を選択し、より低い第３のビットレートで、選択されたＱＰ値に従って、ビデオフレームを修正された設定で符号化するように構成され得る。ビデオ再圧縮ユニット１２は次いで、第３のビットレートで圧縮されたビデオフレームを、送信、たとえば、ビデオ共有、アップロード、またはストリーミングのためにＴＸ５６に送る。いくつかの例では、第３のビットレートは、第１のビットレートおよび第２のビットレートよりも低く、トランスコード設定によって指定された目標ビットレートよりも低いか、または等しくてよい。
【０１０１】
[0097]図７は、所与のビットレートにおける異なる品質レベルを有する異なるビデオクリップについての例示的なレート歪み曲線を示すグラフである。図７において、１０８０ｐで記録されたビデオクリップ６０、６２、６４および６６についてＲＤ曲線が示されている。見るとわかるように、ビデオクリップ６６は、他のビデオクリップよりも低いビットレートにおいて、より高い品質（すなわち、ピーク信号対ノイズ比（ＰＳＮＲ）を有する。たとえば、楕円６８によって示されるように、ビデオクリップ６０、６２、６４および６６は、２０ｍｂｐｓのビットレートにおいて３８ｄＢから４３ｄＢにまでわたる（ranging）それぞれの品質レベルを有する。
【０１０２】
[0098]通常、エンコーダビットレートは、最も複雑なビデオクリップが良好なビデオ品質を達成することを保証するように設定される。図７によって示される例では、良好なビデオ品質が３８ｄＢであると想定される場合、エンコーダビットレートは、ビデオクリップ６０、６２、６４および６６のすべてが良好なビデオ品質レベルを達成することを保証するために、２０ｍｂｐｓに設定され得る。ただし、見るとわかるように、ビデオクリップ６０、６２、６４および６６は、３８ｄＢという良好なビデオ品質レベルを依然として達成したまま、より低いビットレートで符号化され得る。
【０１０３】
[0099]本開示の技法は、視覚的無損失閾を使って、各ビデオクリップ用に可能なビットレート低減の量を決定する。ビットレート低減の量は、所与のビデオクリップの内容に依存する。たとえば、３８ｄＢのビデオ品質を達成するために、ビデオクリップ６０は、１０％のビットレート低減のために１８ｍｂｐｓのビットレートで再圧縮されてよく、ビデオクリップ６２は、５０％のビットレート低減のために１０ｍｂｐｓのビットレートで再圧縮されてよく、ビデオクリップ６４は、６５％のビットレート低減のために７ｍｂｐｓのビットレートで再圧縮されてよく、ビデオクリップ６６は、８５％のビットレート低減のために３ｍｂｐｓのビットレートで再圧縮されてよい。
【０１０４】
[0100]図８は、本開示に記載されるビデオ再圧縮技法の例示的な性能レベルを示すグラフである。図８において、元のビデオクリップ１〜５用の圧縮ビットレートは対角線ストリップボックス（diagonal stripped boxes）として示され、開示される技法に従って再圧縮されたビデオクリップ１〜５用の再圧縮ビットレートは白いボックスとして示される。さらに、開示される技法によって達成されるファイルサイズ低減パーセンテージ７０が、ビデオクリップ１〜５の各々について描かれる。見るとわかるように、開示される技法のファイルサイズ低減パーセンテージ７０は、ビデオクリップ１〜５の内容によって、３０％から７０％超にまでわたる。ビデオクリップ１〜５は、半速度（half-speed）では４Ｋ３０、またはリアルタイムでは１０８０ｐ３０で記録され得る。
【０１０５】
[0101]図９は、本開示で説明するビデオ再圧縮技法の例示的な動作を示すフローチャートである。図９の例示的な動作が、図２からのビデオ再圧縮ユニット１２に関して説明される。
【０１０６】
[0102]概して、ビデオ再圧縮ユニット１２は、コンピューティングデバイス２のシステムメモリ１０中での記憶またはコンピューティングデバイス２による送信（たとえば、ビデオ共有、アップロード、またはストリーミング）のうちの１つまたは複数のために、ビデオフレームを再圧縮し得る。一例では、ビデオ再圧縮ユニット１２は、メモリ消費を削減するように、ビデオフレームを、記憶のために再圧縮し得る。たとえば、第１のビットレートで符号化されたビデオフレームは、第１のファイルサイズを有するシステムメモリ１０中に記憶されてよく、第２のビットレートで再圧縮されたビデオフレームは、第１のファイルサイズよりも小さい第２のファイルサイズを有するシステムメモリ１０中に記憶されてよい。別の例では、ビデオ再圧縮ユニット１２は、ビデオ共有、アップロード、またはストリーミング中の電力消費を削減するように、ビデオフレームを送信用に再圧縮し得る。
【０１０７】
[0103]本開示の技法によると、ビデオ再圧縮ユニット１２は最初に、複数の事前計算されたＱＰ値を記憶する（８０）。事前計算されたＱＰ値は、ＲＥＣモデル３６として記憶され得る。いくつかの例では、ＲＥＣモデル３６は、所与のＱＰ値でのビデオフレームについての複雑度値によってインデックス付けされたデルタＱＰルックアップテーブル（ＬＵＴ）を備え得る。他の例では、ＲＥＣモデル３６は、所与のＱＰ値でのビデオフレームについての複雑度値、たとえば、ＲＥＣ値に基づくデルタＱＰ値を戻す関数を備え得る。いずれのフォーマットでも、事前計算されたＱＰ値は、コンピューティングデバイス２のシステムメモリ１０中に記憶され得る。図３に関して上述したように、複数の事前計算されたＱＰ値は、ビデオクリップのデータベースと、ビデオ品質における視覚的に知覚可能な損失を結果として生じない、ビデオクリップの各々を再圧縮するのに使われる最大ＱＰ値を決定するための品質メトリックとに基づいて事前計算され得る。
【０１０８】
[0104]動作中、ビデオ再圧縮ユニット１２は、第１のビットレートでビデオフレームを取得する（８２）。一例では、ビデオ再圧縮ユニット１２は、第１のビットレートで符号化されたビデオフレームをシステムメモリ１０から取り出すことができる。たとえば、コンピューティングデバイス２は、第１のビットレートで符号化されたビデオフレームをシステムメモリ１０へ記憶してよい。ビデオ再圧縮ユニット１２は、ビデオフレームの再圧縮のためのトリガ条件を識別し、トリガ条件を識別したこと（identifying）に応答して、第１のビットレートで符号化されたビデオフレームを、ビデオフレームの再圧縮のためにシステムメモリ１０から取り出すことができる。
【０１０９】
[0105]トリガ条件は、低い使用回数（たとえば、夜間）を検出したとき、またはコンピューティングデバイス２がプラグインされたことを検出したときの、プリセットされた、または周期タイマの満了など、コンピューティングデバイス２の特性を備え得る。トリガ条件は、再圧縮をいつ実施するかをユーザが明示的に選択すること、またはコンピューティングデバイス２上で実行される特定のアプリケーション、すなわち「アプリ」を使ってビデオフレームを共有し、アップロードし、またはストリーミングすることをユーザが要求することなど、デバイスへのユーザ入力も備え得る。
【０１１０】
[0106]別の例では、ビデオ再圧縮ユニット１２は、ビデオフレームを、ライブビデオ記録から直接取得し得る。たとえば、コンピューティングデバイス２は、未加工ビデオフレームのシーケンスを、コンピューティングデバイス２のカメラ２１から、または外部カメラから受信し得る。コンピューティングデバイス２のビデオプロセッサ２３は次いで、未加工ビデオフレームのシーケンスを、ビデオフレームの圧縮のために、第１のビットレートでビデオ再圧縮ユニット１２に直接送ればよい。
【０１１１】
[0107]第１のビットレートでビデオフレームを取得すると、ビデオ再圧縮ユニット１２は、ビデオフレームについての複雑度値、たとえば、ＲＥＣ値を、ビデオフレームに関連付けられた空間的、時間的、およびコーディング統計に基づいて決定する（８４）。たとえば、ビデオ再圧縮ユニット１２のＱＰ選択ユニット３２は、ビデオフレームに関連付けられたシーン統計（たとえば、ＹＵＶ統計）と、前に符号化されたビデオフレームに関連付けられたビットストリーム統計とに基づいて、ビデオフレーム用のＲＥＣ値を決定することができる。
【０１１２】
[0108]ビデオ再圧縮ユニット１２は次いで、ビデオフレームについての複雑度値（たとえば、ＲＥＣ値）に基づいて、複数の事前計算されたＱＰ値からＱＰ値を選択する（８６）。たとえば、ＱＰ選択ユニット３２は、ビデオフレーム用の前のＱＰ値でのビデオフレームについての複雑度値によってインデックス付けされたルックアップテーブルとしてフォーマットされたＲＥＣモデル３６から、デルタＱＰ値を選択すればよい。ＱＰ選択ユニット３２は次いで、デルタＱＰ値および前のＱＰ値に基づいて、ビデオフレーム用の新たなＱＰ値を算出する。
【０１１３】
[0109]複数の事前計算されたＱＰ値は、ＱＰ選択ユニット３２が、ビデオフレーム用のＱＰ値をワンステップで選択することを可能にする。このようにして、ＱＰ選択ユニット３２は、ビデオフレーム用の新たなＱＰ値の選択の複数回の繰返しを実施する（performing）のを避ける。ＱＰ選択と、したがってビデオフレーム再圧縮とを、ワンステップで実施することによって、本開示の技法は、コンピューティングデバイス２におけるビデオ再圧縮ユニット１２の計算的負担および／または電力消費量を低減することができる。
【０１１４】
[0110]ビデオ再圧縮ユニット１２は次いで、選択されたＱＰ値に従って、ビデオ品質における視覚的に知覚可能な損失なしで、ビデオフレームを第１のビットレートから第２のビットレートに再圧縮し、第２のビットレートは第１のビットレートよりも低い（８８）。一例では、ビデオ再圧縮ユニット１２のデコーダ３０が、第１のビットレートで符号化されたビデオフレームを最初に復号し、ビデオ再圧縮ユニット１２のエンコーダ３４が、第２のビットレートで、選択されたＱＰ値に従ってビデオフレームを再符号化する。この例では、ＱＰ選択ユニット３２は、デコーダ３０から受信された復号ビデオフレームのシーン統計と、エンコーダ３４から受信された、前に符号化されたビデオフレームのビットストリーム統計とに基づいて、複雑度値（たとえば、ＲＥＣ値）を決定し得る。ＱＰ選択ユニット３２は次いで、決定された複雑度値に基づいて、ビデオフレーム用のＱＰ値を選択する。
【０１１５】
[0111]別の例では、ビデオ再圧縮ユニット１２のデコーダ３０が最初に、第１のビットレートで符号化されたビデオフレームを復号し、ＱＰ選択ユニット３２がビデオフレームの設定を修正し、ビデオ再圧縮ユニット１２のエンコーダ３４が、第２のビットレートで、選択されたＱＰ値に従って、修正された設定でビデオフレームを再符号化する。
【０１１６】
[0112]この例では、ＱＰ選択ユニット３２はやはり、デコーダ３０から受信された復号ビデオフレームのシーン統計と、エンコーダ３４から受信された、前に符号化されたビデオフレームのビットストリーム統計とに基づいて、複雑度値（たとえば、ＲＥＣ値）を決定し、次いで、決定された複雑度値に基づいてビデオフレーム用のＱＰ値を選択し得る。さらに、ＱＰ選択ユニット３２は、復号ビデオフレームをトランスコードするために、ビデオフレームの解像度、フレームレート、または目標ビットレートのうちの１つまたは複数を修正してよい。ビデオフレームをトランスコードすることとの組合せで再圧縮を実施することは、コンピューティングデバイス２上で実行される特定のアプリケーション、すなわち「アプリ」を使って、ビデオフレームを共有、アップロード、またはストリーミングのために準備するとき、特に有用であり得る。
【０１１７】
[0113]さらなる例では、ビデオ再圧縮ユニット１２は、ビデオフレームをシステムメモリ１０中に記憶するために、第１のビットレートから第２のビットレートへの、ビデオフレームの第１の圧縮を実施し、ビデオフレームを送信するために、第１のビットレートから第３のビットレートへの、ビデオフレームの第２の圧縮も実施し、第３のビットレートは第１のビットレートよりも低い。いくつかのケースでは、第３のビットレートは、第２のビットレートよりも低くてもよい。この場合、ビデオフレームは、第１のビットレートでの元のビデオフレームと比較して、ビデオ品質における視覚的に知覚可能な損失なしで、第２のビットレートで記憶され得る。さらに、ビデオフレームは、共有、アップロード、またはストリーミングのために、修正またはトランスコード化ビデオフレームと比較して、ビデオ品質における視覚的に知覚可能な損失なしで、第３のビットレートで送信され得る。
【０１１８】
[0114]例に応じて、本明細書で説明される技法のうちのいずれかのいくつかの行為またはイベントは、異なるシーケンスで実施され得、追加、マージ、または完全に除外され得る（たとえば、すべての説明される行為またはイベントが本技法の実践のために必要であるとは限らない）ことを認識されたい。その上、いくつかの例では、行為またはイベントは、たとえば、マルチスレッド処理、割込み処理、または複数のプロセッサを用いて、連続的にではなく同時に実施され得る。
【０１１９】
[0115]１つまたは複数の例では、説明される機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、１つまたは複数の命令またはコードとして、コンピュータ可読媒体上に記憶されるか、またはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に対応する、コンピュータ可読記憶媒体を含み得るか、または、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む通信媒体を含み得る。
【０１２０】
[0116]このように、コンピュータ可読媒体は、概して、（１）非一時的である有形コンピュータ可読記憶媒体、または（２）信号もしくは搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明された技法の実装のために命令、コード、および／またはデータ構造を取り出すために、１つもしくは複数のコンピュータまたは１つもしくは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含むことできる。
【０１２１】
[0117]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭもしくは他の光ディスクストレージ、磁気ディスクストレージ、もしくは他の磁気ストレージデバイス、フラッシュメモリ、または、命令もしくはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る任意の他の媒体を備え得る。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者線（ＤＳＬ）、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、およびマイクロ波などのワイヤレス技術は媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用されるディスク（disk）およびディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザーディスク（登録商標）（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）およびＢｌｕ−ｒａｙ（登録商標）ディスク（disc）を含み、ここで、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲に含まれるべきである。
【０１２２】
[0118]命令は、１つまたは複数のデジタルシグナルプロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、または他の同等の集積された論理回路もしくは個別の論理回路構成など、１つまたは複数のプロセッサによって実行され得る。したがって、本明細書で使用される「プロセッサ」という用語は、上記の構造、または本明細書で説明された技法の実装に好適な他の構造のいずれかを指すことがある。加えて、いくつかの態様では、本明細書に記載された機能は、符号化および復号のために構成された専用ハードウェアおよび／もしくはソフトウェアモジュール内に設けられるか、または複合コーデックに組み込まれる場合がある。また、本技法は、１つまたは複数の回路または論理要素で十分に実装され得る。
【０１２３】
[0119]本開示の技法は、ワイヤレス通信デバイス、ワイヤレスハンドセット、集積回路（ＩＣ）またはＩＣのセット（たとえば、チップセット）を含む、多種多様なデバイスまたは装置に実装される場合がある。本開示では、開示する技法を実施するように構成されたデバイスの機能的態様を強調するために様々な構成要素、モジュール、またはユニットについて説明したが、それらの構成要素、モジュール、またはユニットは、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェアおよび／またはファームウェアとともに、上記で説明した１つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作ハードウェアユニットの集合によって与えられ得る。
【０１２４】
[0120]本開示の様々な例について説明した。説明されたシステム、動作、または機能の任意の組合せが企図される。これらおよび他の例は以下の特許請求の範囲内にある。
【図１】
2018509067.tif 000011
【図２】
2018509067.tif 000012
【図３】
2018509067.tif 000013
【図４】
2018509067.tif 000014
【図５】
2018509067.tif 000015
【図６】
2018509067.tif 000016
【図７】
2018509067.tif 000017
【図８】
2018509067.tif 000018
【図９】
2018509067.tif 000019
【手続補正書】
【提出日】平成29年10月27日(2017.10.27)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ビデオデータを処理する方法であって、
複数の事前計算された量子化パラメータ（ＱＰ）値を記憶することと、ここにおいて、前記複数の事前計算されたＱＰ値は、ビデオクリップのデータベースと、ビデオ品質における視覚的に知覚可能な損失を結果として生じない、前記ビデオクリップの各々を再圧縮するのに使われる最大ＱＰ値を決定するための品質メトリックとに基づいて事前計算される、
第１のビットレートで符号化されたビデオフレームを取得することと、
前記ビデオフレームに関連付けられた空間的、時間的、およびコーディング統計に基づいて、前記ビデオフレームについての複雑度値を決定することと、
前記ビデオフレームについての前記複雑度値に基づいて、前記複数の事前計算されたＱＰ値から、ＱＰ値を選択することと、
前記複数の事前計算されたＱＰ値を事前計算するのに使われる、前記品質メトリックについて定義された視覚的無損失閾によって測定されるように、前記ビデオフレームを、ビデオ品質における視覚的に知覚可能な損失なしで、前記選択されたＱＰ値に従って、前記第１のビットレートから第２のビットレートに再圧縮することと、前記第２のビットレートは前記第１のビットレートよりも低い、を備える方法。
【請求項２】
前記第１のビットレートで符号化された前記ビデオフレームをデバイスのメモリへ記憶することをさらに備え、前記ビデオフレームを取得することは、
前記ビデオフレームの再圧縮のためのトリガ条件を識別することと、ここにおいて、前記トリガ条件は、前記デバイスの特性または前記デバイスへのユーザ入力のうちの少なくとも１つを備える、
前記トリガ条件を識別したことに応答して、前記第１のビットレートで符号化された前記ビデオフレームを、前記ビデオフレームの再圧縮のために前記メモリから取り出すこととを備える、請求項１に記載の方法。
【請求項３】
前記ビデオフレームを取得することは、前記第１のビットレートで符号化された前記ビデオフレームをメモリから取り出すことを備え、前記符号化ビデオフレームは第１のファイルサイズを有し、前記方法は、
前記第２のビットレートで再圧縮された前記ビデオフレームを前記メモリへ記憶すること、前記再圧縮ビデオフレームは、前記第１のファイルサイズよりも小さい第２のファイルサイズを有する、をさらに備える、請求項１に記載の方法。
【請求項４】
前記ビデオフレームを前記第１のビットレートから前記第２のビットレートに再圧縮することは、前記ビデオフレームの記憶のために、前記ビデオフレームの第１の再圧縮を実施することを備え、前記方法は、
前記ビデオフレームの送信のために、前記第１のビットレートから第３のビットレートへの、前記ビデオフレームの第２の再圧縮を実施すること、前記第３のビットレートは前記第１のビットレートよりも低い、をさらに備える、請求項１に記載の方法。
【請求項５】
前記ビデオフレームを再圧縮することは、
前記第１のビットレートで符号化された前記ビデオフレームを復号することと、
前記第２のビットレートで、前記選択されたＱＰ値に従って、前記ビデオフレームを再符号化することとを備える、請求項１に記載の方法。
【請求項６】
前記ビデオフレームを再圧縮することは、
前記第１のビットレートで符号化された前記ビデオフレームを復号することと、
前記ビデオフレームのアプリケーションに関連付けられた設定を修正することと、前記設定は、前記アプリケーション内のビデオクリップについての解像度、フレームレート、または目標ビットレートのうちの１つまたは複数を含む、
前記ビデオフレームを、前記第２のビットレートで、前記選択されたＱＰ値に従って、前記修正された設定で再符号化することとを備える、請求項１に記載の方法。
【請求項７】
前記ＱＰ値を、前記複数の事前計算されたＱＰ値から選択することは、
前記ビデオフレームについての前記複雑度値によってインデックス付けされたルックアップテーブルから、デルタＱＰ値を選択することと、
前記デルタＱＰ値、および前記第１のビットレートで符号化された前記ビデオフレーム用の前のＱＰ値に基づいて、前記ＱＰ値を算出することとを備える、請求項１に記載の方法。
【請求項８】
前記ビデオフレームについての前記複雑度値を決定することは、前記ビデオフレームに関連付けられたシーン統計および前に符号化されたビデオフレームに関連付けられたビットストリーム統計に基づいて、再符号化複雑度（ＲＥＣ）値を決定することを備える、請求項１に記載の方法。
【請求項９】
前記ＱＰ値を選択することは、ワンステップで、前記ビデオフレームについての前記複雑度値によってインデックス付けされたルックアップテーブルから、前記ＱＰ値を選択することを備える、ここにおいて、前記ワンステップは、テーブルルックアップステップを備える、請求項１に記載の方法。
【請求項１０】
ビデオ処理デバイスであって、
複数の事前計算された量子化パラメータ（ＱＰ）値を記憶するように構成されたメモリと、ここにおいて、前記複数の事前計算されたＱＰ値は、ビデオクリップのデータベースと、ビデオ品質における視覚的に知覚可能な損失を結果として生じない、前記ビデオクリップの各々を再圧縮するのに使われる最大ＱＰ値を決定するための品質メトリックとに基づいて事前計算される、
前記メモリと通信している１つまたは複数のプロセッサとを備え、前記１つまたは複数のプロセッサは、
第１のビットレートで符号化されたビデオフレームを取得することと、
前記ビデオフレームに関連付けられた空間的、時間的、およびコーディング統計に基づいて、前記ビデオフレームについての複雑度値を決定することと、
前記ビデオフレームについての前記複雑度値に基づいて、前記複数の事前計算されたＱＰ値から、ＱＰ値を選択することと、
前記複数の事前計算されたＱＰ値を事前計算するのに使われる、前記品質メトリックについて定義された視覚的無損失閾によって測定されるように、前記ビデオフレームを、ビデオ品質における視覚的に知覚可能な損失なしで、前記選択されたＱＰ値に従って、前記第１のビットレートから第２のビットレートに再圧縮することと、前記第２のビットレートは前記第１のビットレートよりも低い、を行うように構成される、デバイス。
【請求項１１】
前記１つまたは複数のプロセッサは、
前記第１のビットレートで符号化された前記ビデオフレームを前記メモリへ記憶することと、
前記ビデオフレームの再圧縮のためのトリガ条件を識別することと、ここにおいて、前記トリガ条件は、前記デバイスの特性または前記デバイスへのユーザ入力のうちの少なくとも１つを備える、
前記トリガ条件を識別したことに応答して、前記第１のビットレートで符号化された前記ビデオフレームを、前記ビデオフレームの再圧縮のために前記メモリから取り出すこととを行うように構成される、請求項１０に記載のデバイス。
【請求項１２】
前記１つまたは複数のプロセッサは、
前記第１のビットレートで符号化された前記ビデオフレームを前記メモリから取り出すことと、前記符号化ビデオフレームは第１のファイルサイズを有する、
前記第２のビットレートで再圧縮された前記ビデオフレームを前記メモリへ記憶することと、前記再圧縮ビデオフレームは、前記第１のファイルサイズよりも小さい第２のファイルサイズを有する、を行うように構成される、請求項１０に記載のデバイス。
【請求項１３】
前記１つまたは複数のプロセッサは、
前記ビデオフレームの記憶のために、前記第１のビットレートから前記第２のビットレートへの、前記ビデオフレームの第１の再圧縮を実施することと、
前記ビデオフレームの送信のために、前記第１のビットレートから第３のビットレートへの、前記ビデオフレームの第２の再圧縮を実施することと、前記第３のビットレートは前記第１のビットレートよりも低い、を行うように構成される、請求項１０に記載のデバイス。
【請求項１４】
前記ビデオフレームを再圧縮するために、前記１つまたは複数のプロセッサは、
前記第１のビットレートで符号化された前記ビデオフレームを復号し、
前記第２のビットレートで、前記選択されたＱＰ値に従って、前記ビデオフレームを再符号化するように構成される、請求項１０に記載のデバイス。
【請求項１５】
前記ビデオフレームを再圧縮するために、前記１つまたは複数のプロセッサは、
前記第１のビットレートで符号化された前記ビデオフレームを復号することと、
前記ビデオフレームのアプリケーションに関連付けられた設定を修正することと、前記設定は、前記アプリケーション内のビデオクリップについての解像度、フレームレート、または目標ビットレートのうちの１つまたは複数を含む、
前記ビデオフレームを、前記第２のビットレートで、前記選択されたＱＰ値に従って、前記修正された設定で再符号化することとを行うように構成される、請求項１０に記載のデバイス。
【請求項１６】
前記ＱＰ値を、前記複数の事前計算されたＱＰ値から選択するために、前記１つまたは複数のプロセッサは、
前記ビデオフレームについての前記複雑度値によってインデックス付けされたルックアップテーブルから、デルタＱＰ値を選択し、
前記デルタＱＰ値、および前記第１のビットレートでの前記ビデオフレーム用の前のＱＰ値に基づいて、前記ＱＰ値を算出するように構成される、請求項１０に記載のデバイス。
【請求項１７】
前記ビデオフレームについての前記複雑度値を決定するために、前記１つまたは複数のプロセッサは、前記ビデオフレームに関連付けられたシーン統計および前に符号化されたビデオフレームに関連付けられたビットストリーム統計に基づいて、再符号化複雑度（ＲＥＣ）値を決定するように構成される、請求項１０に記載のデバイス。
【請求項１８】
前記１つまたは複数のプロセッサは、ワンステップで、前記ビデオフレームについての前記複雑度値によってインデックス付けされたルックアップテーブルから、前記ＱＰ値を選択するように構成される、ここにおいて、前記ワンステップは、テーブルルックアップステップを備える、請求項１０に記載のデバイス。
【請求項１９】
前記デバイスが、
集積回路、
マイクロプロセッサ、または
ワイヤレス通信デバイスのうちの少なくとも１つを備える、請求項１０に記載のデバイス。
【請求項２０】
前記デバイスは、未加工ビデオフレームのシーケンスをキャプチャするように構成されたカメラを備える、請求項１０に記載のデバイス。
【請求項２１】
ビデオ処理デバイスであって、
複数の事前計算された量子化パラメータ（ＱＰ）値を記憶するための手段と、ここにおいて、前記複数の事前計算されたＱＰ値は、ビデオクリップのデータベースと、ビデオ品質における視覚的に知覚可能な損失を結果として生じない、前記ビデオクリップの各々を再圧縮するのに使われる最大ＱＰ値を決定するための品質メトリックとに基づいて事前計算される、
第１のビットレートで符号化されたビデオフレームを取得するための手段と、
前記ビデオフレームに関連付けられた空間的、時間的、およびコーディング統計に基づいて、前記ビデオフレームについての複雑度値を決定するための手段と、
前記ビデオフレームについての前記複雑度値に基づいて、前記複数の事前計算されたＱＰ値から、ＱＰ値を選択するための手段と、
前記複数の事前計算されたＱＰ値を事前計算するのに使われる、前記品質メトリックについて定義された視覚的無損失閾によって測定されるように、前記ビデオフレームを、ビデオ品質における視覚的に知覚可能な損失なしで、前記選択されたＱＰ値に従って、前記第１のビットレートから第２のビットレートに再圧縮するための手段と、前記第２のビットレートは前記第１のビットレートよりも低い、を備えるデバイス。
【請求項２２】
前記ビデオフレームを再圧縮するための前記手段は、
前記第１のビットレートで符号化された前記ビデオフレームを復号するための手段と、
前記第２のビットレートで、前記選択されたＱＰ値に従って、前記ビデオフレームを再符号化するための手段とを備える、請求項２１に記載のデバイス。
【請求項２３】
前記ＱＰ値を、前記複数の事前計算されたＱＰ値から選択するための前記手段は、
前記ビデオフレームについての前記複雑度値によってインデックス付けされたルックアップテーブルから、デルタＱＰ値を選択するための手段と、
前記デルタＱＰ値、および前記第１のビットレートでの前記ビデオフレーム用の前のＱＰ値に基づいて、前記ＱＰ値を算出するための手段とを備える、請求項２１に記載のデバイス。
【請求項２４】
前記ビデオフレームについての前記複雑度値を決定するための前記手段は、前記ビデオフレームに関連付けられたシーン統計および前に符号化されたビデオフレームに関連付けられたビットストリーム統計に基づいて、再符号化複雑度（ＲＥＣ）値を決定するための手段を備える、請求項２１に記載のデバイス。
【請求項２５】
命令を記憶する非一時的コンピュータ可読媒体であって、前記命令は、実行されると、１つまたは複数のプロセッサに、
複数の事前計算された量子化パラメータ（ＱＰ）値を記憶することと、ここにおいて、前記複数の事前計算されたＱＰ値は、ビデオクリップのデータベースと、ビデオ品質における視覚的に知覚可能な損失を結果として生じない、前記ビデオクリップの各々を再圧縮するのに使われる最大ＱＰ値を決定するための品質メトリックとに基づいて事前計算される、
第１のビットレートで符号化されたビデオフレームを取得することと、
前記ビデオフレームに関連付けられた空間的、時間的、およびコーディング統計に基づいて、前記ビデオフレームについての複雑度値を決定することと、
前記ビデオフレームについての前記複雑度値に基づいて、前記複数の事前計算されたＱＰ値から、ＱＰ値を選択することと、
前記複数の事前計算されたＱＰ値を事前計算するのに使われる、前記品質メトリックについて定義された視覚的無損失閾によって測定されるように、前記ビデオフレームを、ビデオ品質における視覚的に知覚可能な損失なしで、前記選択されたＱＰ値に従って、前記第１のビットレートから第２のビットレートに再圧縮することと、前記第２のビットレートは前記第１のビットレートよりも低い、を行わせる、非一時的コンピュータ可読媒体。
【請求項２６】
前記１つまたは複数のプロセッサに、前記ビデオフレームを再圧縮させる前記命令は、前記１つまたは複数のプロセッサにさらに、
前記第１のビットレートで符号化された前記ビデオフレームを復号させ、
前記第２のビットレートで、前記選択されたＱＰ値に従って、前記ビデオフレームを再符号化させる、請求項２５に記載の非一時的コンピュータ可読媒体。
【請求項２７】
前記方法は、ワイヤレス通信デバイス上で実行可能であり、前記デバイスは、
ビデオデータを記憶するように構成されたメモリと、
前記メモリに記憶された前記ビデオデータを処理するために命令を実行するように構成されたプロセッサと、
前記第１のビットレートで符号化された前記ビデオフレームを取得するように構成された受信機とを備える、請求項１に記載の方法。
【請求項２８】
前記ワイヤレス通信デバイスは、セルラー電話であり、前記第１のビットレートで符号化された前記ビデオフレームは、前記受信機で受信され、セルラー通信規格に従って変調される、請求項２７に記載の方法。
【請求項２９】
前記デバイスは、ワイヤレス通信デバイスであり、前記第１のビットレートで符号化された前記ビデオフレームを取得するように構成された受信機をさらに備える、請求項１０に記載のデバイス。
【請求項３０】
前記ワイヤレス通信デバイスは、セルラー電話であり、前記第１のビットレートで符号化された前記ビデオフレームは、前記受信機によって受信され、セルラー通信規格に従って変調される、請求項２９に記載のデバイス。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０１２４
【補正方法】変更
【補正の内容】
【０１２４】
[0120]本開示の様々な例について説明した。説明されたシステム、動作、または機能の任意の組合せが企図される。これらおよび他の例は以下の特許請求の範囲内にある。
以下に本願の出願当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
ビデオデータを処理する方法であって、
複数の事前計算された量子化パラメータ（ＱＰ）値を記憶することと、ここにおいて、前記複数の事前計算されたＱＰ値は、ビデオクリップのデータベースと、ビデオ品質における視覚的に知覚可能な損失を結果として生じない、前記ビデオクリップの各々を再圧縮するのに使われる最大ＱＰ値を決定するための品質メトリックとに基づいて事前計算される、
第１のビットレートでビデオフレームを取得することと、
前記ビデオフレームに関連付けられた空間的、時間的、およびコーディング統計に基づいて、前記ビデオフレームについての複雑度値を決定することと、
前記ビデオフレームについての前記複雑度値に基づいて、前記複数の事前計算されたＱＰ値から、ＱＰ値を選択することと、
前記ビデオフレームを、ビデオ品質における視覚的に知覚可能な損失なしで、前記選択されたＱＰ値に従って、前記第１のビットレートから第２のビットレートに再圧縮することと、前記第２のビットレートは前記第１のビットレートよりも低い、を備える方法。
［Ｃ２］
前記第１のビットレートで符号化された前記ビデオフレームをデバイスのメモリへ記憶することをさらに備え、前記ビデオフレームを取得することは、
前記ビデオフレームの再圧縮のためのトリガ条件を識別することと、ここにおいて、前記トリガ条件は、前記デバイスの特性または前記デバイスへのユーザ入力のうちの少なくとも１つを備える、
前記トリガ条件を識別したことに応答して、前記ビデオフレームを、前記ビデオフレームの再圧縮のために前記メモリから前記第１のビットレートで取り出すこととを備える、Ｃ１に記載の方法。
［Ｃ３］
前記ビデオフレームを取得することは、未加工ビデオフレームのシーケンスをカメラから前記第１のビットレートで受信することを備える、Ｃ１に記載の方法。
［Ｃ４］
前記ビデオフレームを取得することは、前記第１のビットレートで符号化された前記ビデオフレームをメモリから取り出すことを備え、前記符号化ビデオフレームは第１のファイルサイズを有し、前記方法は、
前記第２のビットレートで再圧縮された前記ビデオフレームを前記メモリへ記憶すること、前記再圧縮ビデオフレームは、前記第１のファイルサイズよりも小さい第２のファイルサイズを有する、をさらに備える、Ｃ１に記載の方法。
［Ｃ５］
前記ビデオフレームを前記第１のビットレートから前記第２のビットレートに再圧縮することは、前記ビデオフレームの記憶のために、前記ビデオフレームの第１の再圧縮を実施することを備え、前記方法は、
前記ビデオフレームの送信のために、前記第１のビットレートから第３のビットレートへの、前記ビデオフレームの第２の再圧縮を実施すること、前記第３のビットレートは前記第１のビットレートよりも低い、をさらに備える、Ｃ１に記載の方法。
［Ｃ６］
前記ビデオフレームを再圧縮することは、
前記第１のビットレートで符号化された前記ビデオフレームを復号することと、
前記第２のビットレートで、前記選択されたＱＰ値に従って、前記ビデオフレームを再符号化することとを備える、Ｃ１に記載の方法。
［Ｃ７］
前記ビデオフレームを再圧縮することは、
前記第１のビットレートで符号化された前記ビデオフレームを復号することと、
前記ビデオフレームの設定を修正することと、前記設定は、前記ビデオフレームの解像度、フレームレート、または目標ビットレートのうちの１つまたは複数を含む、
前記ビデオフレームを、前記第２のビットレートで、前記選択されたＱＰ値に従って、前記修正された設定で再符号化することとを備える、Ｃ１に記載の方法。
［Ｃ８］
前記ＱＰ値を、前記複数の事前計算されたＱＰ値から選択することは、
前記ビデオフレームについての前記複雑度値によってインデックス付けされたルックアップテーブルから、デルタＱＰ値を選択することと、
前記デルタＱＰ値、および前記第１のビットレートで符号化された前記ビデオフレーム用の前のＱＰ値に基づいて、前記ＱＰ値を算出することとを備える、Ｃ１に記載の方法。
［Ｃ９］
前記ビデオフレームについての前記複雑度値を決定することは、前記ビデオフレームに関連付けられたシーン統計および前に符号化されたビデオフレームに関連付けられたビットストリーム統計に基づいて、再符号化複雑度（ＲＥＣ）値を決定することを備える、Ｃ１に記載の方法。
［Ｃ１０］
前記ＱＰ値を選択することは、ワンステップで前記ＱＰ値を選択することを備える、Ｃ１に記載の方法。
［Ｃ１１］
ビデオ処理デバイスであって、
複数の事前計算された量子化パラメータ（ＱＰ）値を記憶するように構成されたメモリと、ここにおいて、前記複数の事前計算されたＱＰ値は、ビデオクリップのデータベースと、ビデオ品質における視覚的に知覚可能な損失を結果として生じない、前記ビデオクリップの各々を再圧縮するのに使われる最大ＱＰ値を決定するための品質メトリックとに基づいて事前計算される、
前記メモリと通信している１つまたは複数のプロセッサとを備え、前記１つまたは複数のプロセッサは、
第１のビットレートでビデオフレームを取得することと、
前記ビデオフレームに関連付けられた空間的、時間的、およびコーディング統計に基づいて、前記ビデオフレームについての複雑度値を決定することと、
前記ビデオフレームについての前記複雑度値に基づいて、前記複数の事前計算されたＱＰ値から、ＱＰ値を選択することと、
前記ビデオフレームを、ビデオ品質における視覚的に知覚可能な損失なしで、前記選択されたＱＰ値に従って、前記第１のビットレートから第２のビットレートに再圧縮することと、前記第２のビットレートは前記第１のビットレートよりも低い、を行うように構成される、デバイス。
［Ｃ１２］
前記１つまたは複数のプロセッサは、
前記第１のビットレートで符号化された前記ビデオフレームを前記メモリへ記憶することと、
前記ビデオフレームの再圧縮のためのトリガ条件を識別することと、ここにおいて、前記トリガ条件は、前記デバイスの特性または前記デバイスへのユーザ入力のうちの少なくとも１つを備える、
前記トリガ条件を識別したことに応答して、前記第１のビットレートで符号化された前記ビデオフレームを、前記ビデオフレームの再圧縮のために前記メモリから取り出すこととを行うように構成される、Ｃ１１に記載のデバイス。
［Ｃ１３］
前記１つまたは複数のプロセッサは、未加工ビデオフレームのシーケンスをカメラから前記第１のビットレートで受信するように構成される、Ｃ１１に記載のデバイス。
［Ｃ１４］
前記１つまたは複数のプロセッサは、
前記第１のビットレートで符号化された前記ビデオフレームを前記メモリから取り出すことと、前記符号化ビデオフレームは第１のファイルサイズを有する、
前記第２のビットレートで再圧縮された前記ビデオフレームを前記メモリへ記憶することと、前記再圧縮ビデオフレームは、前記第１のファイルサイズよりも小さい第２のファイルサイズを有する、を行うように構成される、Ｃ１１に記載のデバイス。
［Ｃ１５］
前記１つまたは複数のプロセッサは、
前記ビデオフレームの記憶のために、前記第１のビットレートから前記第２のビットレートへの、前記ビデオフレームの第１の再圧縮を実施することと、
前記ビデオフレームの送信のために、前記第１のビットレートから第３のビットレートへの、前記ビデオフレームの第２の再圧縮を実施することと、前記第３のビットレートは前記第１のビットレートよりも低い、を行うように構成される、Ｃ１１に記載のデバイス。
［Ｃ１６］
前記ビデオフレームを再圧縮するために、前記１つまたは複数のプロセッサは、
前記第１のビットレートで符号化された前記ビデオフレームを復号し、
前記第２のビットレートで、前記選択されたＱＰ値に従って前記ビデオフレームを再符号化するように構成される、Ｃ１１に記載のデバイス。
［Ｃ１７］
前記ビデオフレームを再圧縮するために、前記１つまたは複数のプロセッサは、
前記第１のビットレートで符号化された前記ビデオフレームを復号することと、
前記ビデオフレームの設定を修正することと、前記設定は、前記ビデオフレームの解像度、フレームレート、または目標ビットレートのうちの１つまたは複数を含む、
前記ビデオフレームを、前記第２のビットレートで、前記選択されたＱＰ値に従って、前記修正された設定で再符号化することとを行うように構成される、Ｃ１１に記載のデバイス。
［Ｃ１８］
前記ＱＰ値を、前記複数の事前計算されたＱＰ値から選択するために、前記１つまたは複数のプロセッサは、
前記ビデオフレームについての前記複雑度値によってインデックス付けされたルックアップテーブルから、デルタＱＰ値を選択し、
前記デルタＱＰ値、および前記第１のビットレートでの前記ビデオフレーム用の前のＱＰ値に基づいて、前記ＱＰ値を算出するように構成される、Ｃ１１に記載のデバイス。
［Ｃ１９］
前記ビデオフレームについての前記複雑度値を決定するために、前記１つまたは複数のプロセッサは、前記ビデオフレームに関連付けられたシーン統計および前に符号化されたビデオフレームに関連付けられたビットストリーム統計に基づいて、再符号化複雑度（ＲＥＣ）値を決定するように構成される、Ｃ１１に記載のデバイス。
［Ｃ２０］
前記１つまたは複数のプロセッサは、前記ＱＰ値をワンステップで選択するように構成される、Ｃ１１に記載のデバイス。
［Ｃ２１］
前記デバイスが、
集積回路、
マイクロプロセッサ、または
ワイヤレス通信デバイスのうちの少なくとも１つを備える、Ｃ１１に記載のデバイス。
［Ｃ２２］
前記デバイスは、未加工ビデオフレームのシーケンスをキャプチャするように構成されたカメラを備える、Ｃ１１に記載のデバイス。
［Ｃ２３］
ビデオ処理デバイスであって、
複数の事前計算された量子化パラメータ（ＱＰ）値を記憶するための手段と、ここにおいて、前記複数の事前計算されたＱＰ値は、ビデオクリップのデータベースと、ビデオ品質における視覚的に知覚可能な損失を結果として生じない、前記ビデオクリップの各々を再圧縮するのに使われる最大ＱＰ値を決定するための品質メトリックとに基づいて事前計算される、
第１のビットレートでビデオフレームを取得するための手段と、
前記ビデオフレームに関連付けられた空間的、時間的、およびコーディング統計に基づいて、前記ビデオフレームについての複雑度値を決定するための手段と、
前記ビデオフレームについての前記複雑度値に基づいて、前記複数の事前計算されたＱＰ値から、ＱＰ値を選択するための手段と、
前記ビデオフレームを、ビデオ品質における視覚的に知覚可能な損失なしで、前記選択されたＱＰ値に従って、前記第１のビットレートから第２のビットレートに再圧縮するための手段と、前記第２のビットレートは前記第１のビットレートよりも低い、を備えるデバイス。
［Ｃ２４］
前記ビデオフレームを再圧縮するための前記手段は、
前記第１のビットレートで符号化された前記ビデオフレームを復号するための手段と、
前記第２のビットレートで、前記選択されたＱＰ値に従って、前記ビデオフレームを再符号化するための手段とを備える、Ｃ２３に記載のデバイス。
［Ｃ２５］
前記ＱＰ値を、前記複数の事前計算されたＱＰ値から選択するための前記手段は、
前記ビデオフレームについての前記複雑度値によってインデックス付けされたルックアップテーブルから、デルタＱＰ値を選択するための手段と、
前記デルタＱＰ値、および前記第１のビットレートでの前記ビデオフレーム用の前のＱＰ値に基づいて、前記ＱＰ値を算出するための手段とを備える、Ｃ２３に記載のデバイス。
［Ｃ２６］
前記ビデオフレームについての前記複雑度値を決定するための前記手段は、前記ビデオフレームに関連付けられたシーン統計および前に符号化されたビデオフレームに関連付けられたビットストリーム統計に基づいて、再符号化複雑度（ＲＥＣ）値を決定するための手段を備える、Ｃ２３に記載のデバイス。
［Ｃ２７］
命令を記憶する非一時的コンピュータ可読媒体であって、前記命令は、実行されると、１つまたは複数のプロセッサに、
複数の事前計算された量子化パラメータ（ＱＰ）値を記憶することと、ここにおいて、前記複数の事前計算されたＱＰ値は、ビデオクリップのデータベース、およびビデオ品質における視覚的に知覚可能な損失を結果として生じない、前記ビデオクリップの各々を再圧縮するのに使われる最大ＱＰ値を決定するための品質メトリックに基づいて事前計算される、
第１のビットレートでビデオフレームを取得することと、
前記ビデオフレームに関連付けられた空間的、時間的、およびコーディング統計に基づいて、前記ビデオフレームについての複雑度値を決定することと、
前記ビデオフレームについての前記複雑度値に基づいて、前記複数の事前計算されたＱＰ値から、ＱＰ値を選択することと、
前記ビデオフレームを、ビデオ品質における視覚的に知覚可能な損失なしで、前記選択されたＱＰ値に従って、前記第１のビットレートから第２のビットレートに再圧縮することと、前記第２のビットレートは前記第１のビットレートよりも低い、を行わせる、非一時的コンピュータ可読媒体。
［Ｃ２８］
前記１つまたは複数のプロセッサに、前記ビデオフレームを再圧縮させる前記命令は、前記１つまたは複数のプロセッサにさらに、
前記第１のビットレートで符号化された前記ビデオフレームを復号させ、
前記第２のビットレートで、前記選択されたＱＰ値に従って、前記ビデオフレームを再符号化させる、Ｃ２７に記載の非一時的コンピュータ可読媒体。
［Ｃ２９］
前記１つまたは複数のプロセッサに、前記ＱＰ値を、前記複数の事前計算されたＱＰ値から選択させる前記命令は、前記１つまたは複数のプロセッサにさらに、
前記ビデオフレームについての前記複雑度値によってインデックス付けされたルックアップテーブルから、デルタＱＰ値を選択させ、
前記デルタＱＰ値、および前記第１のビットレートでの前記ビデオフレーム用の前のＱＰ値に基づいて、前記ＱＰ値を算出させる、Ｃ２７に記載の非一時的コンピュータ可読媒体。
［Ｃ３０］
前記１つまたは複数のプロセッサに、前記ビデオフレームについての前記複雑度値を決定させる前記命令は、前記１つまたは複数のプロセッサにさらに、前記ビデオフレームに関連付けられたシーン統計および前に符号化されたビデオフレームに関連付けられたビットストリーム統計に基づいて、再符号化複雑度（ＲＥＣ）値を決定させる、Ｃ２７に記載の非一時的コンピュータ可読媒体。
【国際調査報告】
2018509067.tif 000020
2018509067.tif 000021