(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-01-29
(45)【発行日】2025-02-06
(54)【発明の名称】適応クロッピングのための方法及びシステム
(51)【国際特許分類】
H04N 19/70 20140101AFI20250130BHJP
【FI】
H04N19/70
(21)【出願番号】P 2022526280
(86)(22)【出願日】2020-11-06
(86)【国際出願番号】 US2020059323
(87)【国際公開番号】W WO2021092319
(87)【国際公開日】2021-05-14
【審査請求日】2023-11-01
(32)【優先日】2019-11-08
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-11-06
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】521328755
【氏名又は名称】オーピー ソリューションズ, エルエルシー
(74)【代理人】
【識別番号】100147485
【氏名又は名称】杉村 憲司
(74)【代理人】
【識別番号】230118913
【氏名又は名称】杉村 光嗣
(74)【代理人】
【識別番号】100211395
【氏名又は名称】鈴木 裕貴
(72)【発明者】
【氏名】ハリ カルバ
(72)【発明者】
【氏名】ボリヴォイェ ファート
(72)【発明者】
【氏名】ヴェリボール アジッチ
【審査官】岩井 健二
(56)【参考文献】
【文献】国際公開第2019/162230(WO,A1)
【文献】Byeongdoo Choi, Stephan Wenger, and Shan Liu,AHG8/AHG17: On signaling reference picture resampling,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-P0219,16th Meeting: Geneva, CH,2019年09月,pp.1-3
【文献】Vadim Seregin, Adarsh K. Ramasubramonian, Muhammed Coban, and Marta Karczewicz,AHG8: Scaling window for scaling ratio derivation,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-P0590-v3,16th Meeting: Geneva, CH,2019年10月,pp.1-4
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
ビットストリームを受信することと、
前記ビットストリームの関数として、現在のフレームと、前記現在のフレームのサブフレームとを識別することと、
前記ビットストリームの関数として、前記サブフレームに関連付けられたスケーリング定数を判定することであって、前記スケーリング定数は、前記ビットストリーム内でシグナリングされ、且つ、前記スケーリング定数は、ルーマサンプルにおけるピクチャ幅のパラメータ、スケーリングウィンドウ右オフセットのパラメータ、及びスケーリングウィンドウ左オフセットのパラメータの関数としてシグナリングされる、前記判定することと、
前記スケーリング定数を使用して前記サブフレームの画素データを再構成することと、
を行うように構成されている回路を含む、デコーダ。
【請求項2】
前記サブフレームは、シーケンスパラメータセット(SPS)でシグナリングされる、請求項1に記載のデコーダ。
【請求項3】
前記スケーリング定数は、垂直スケーリング成分及び水平スケーリング成分を含む、請求項1に記載のデコーダ。
【請求項4】
前記スケーリング定数は、ピクチャパラメータセット(PPS)でシグナリングされる、請求項1に記載のデコーダ。
【請求項5】
前記デコーダは、画素値を補間することによって、前記サブフレームをスケーリングするように構成されている、請求項1に記載のデコーダ。
【発明の詳細な説明】
【関連出願】
【0001】
本出願は、2020年11月6日に出願され、「METHODS AND SYSTEMS FOR ADAPTIVE CROPPING」と題された米国非仮特許出願第17,091,052の優先権の利益を主張し、その全文を参照により本明細書に援用し、且つ、2019年11月8日に出願され、「METHODS AND SYSTEMS FOR ADAPTIVE CROPPING」と題された米国仮特許出願第62/932,597の優先権の利益を主張し、その全文を参照により本明細書に援用する。
【技術分野】
【0002】
本発明は、一般的に、ビデオ圧縮の分野に関する。特に、本発明は、適応クロッピングのための方法及びシステムを対象とされる。
【背景技術】
【0003】
ビデオコーデックは、デジタルビデオを圧縮し、或いは解凍する電子回路又はソフトウェアを含み得る。それは、圧縮されていないビデオを圧縮されたフォーマットに変換し得、或いはその逆も同様であり得る。ビデオ圧縮のコンテキストでは、ビデオを圧縮する(且つ/或いはそのいくつかの機能を実行する)デバイスは典型的に、エンコーダと呼ばれ得、ビデオを解凍する(且つ/或いはそのいくつかの機能を実行する)デバイスは、デコーダと呼ばれ得る。
【0004】
圧縮されたデータのフォーマットは、標準的なビデオ圧縮仕様に準拠し得る。圧縮は、圧縮されたビデオが元のビデオに存在するいくつかの情報を欠くという点で非可逆的であり得る。この結果は、元のビデオを正確に再構成するための情報が不十分であるので、解凍されたビデオは、元の圧縮されていないビデオよりも低い品質を有し得ることを含み得る。
【0005】
ビデオ品質、(例えば、ビットレートによって判定される)ビデオを表すために使用されるデータ量、符号化及び復号化アルゴリズムの複雑さ、データ損失及びエラーに対する感度、編集の容易さ、ランダムアクセス、エンドツーエンド遅延(例えば、遅延)などの間に複雑な関係が存在し得る。
【0006】
動き補償は、ビデオ内のカメラ及び/又はオブジェクトの動きを考慮することによって、以前の且つ/或いは未来のフレームのような、参照フレームを与えられたビデオフレーム又はその一部分を予測するアプローチを含み得る。それは、ビデオ圧縮のためのビデオデータの符号化及び復号化、例えば、Motion Picture Experts Group(MPEG)のadvanced video coding(AVC)規格(H.264とも呼ばれる)を使用した符号化及び復号化で採用され得る。動き補償は、参照ピクチャから現在のピクチャへの変換という観点でピクチャを記述し得る。参照ピクチャは、現在のピクチャと比較すると時間的に以前のものであり得、現在のピクチャと比較すると未来からのものであり得る。画像が、以前に送信され且つ/或いは格納された画像から正確に画像を合成され得るとき、圧縮効率が向上され得る。
【発明の概要】
【0007】
一態様では、デコーダは、ビットストリームを受信することと、ビットストリームの関数として、現在のフレームと、現在のフレームのクロップされたサブフレームとを識別することと、ビットストリームの関数として、クロップされたサブフレームに関連付けられたスケーリング定数を判定することと、スケーリング定数を使用してクロップされたサブフレームの画素データを再構成することと、を行うように構成されている回路を含む。
【0008】
別の態様では、方法は、デコーダによって、ビットストリームを受信することと、デコーダによって且つビットストリームの関数として、現在のフレームと、現在のフレームのクロップされたサブフレームとを識別することと、デコーダによって且つビットストリームの関数として、クロップされたサブフレームに関連付けられたスケーリング定数を判定することと、デコーダによって、スケーリング定数を使用してクロップされたサブフレームの画素データを再構成することと、を含む。
【0009】
本明細書で説明される対象の1つ又は複数の変形例の詳細は、添付の図面及び以下の説明で説明される。本明細書で説明される対象の他の特徴及び利点は、説明及び図面、並びに特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0010】
本発明を説明する目的で、図面は、本発明の1つ又は複数の実施形態の態様を示す。しかしながら、本発明は、図面に示される正確な配置及び手段に限定されないことを理解されたい。
【0011】
【
図1】
図1は、既存のクロッピング方法の例示的な実施形態を説明するブロック図である。
【
図2】
図2は、参照フレーム及びサブフレームの例示的な実施形態の概略図である。
【
図3】
図3は、参照フレーム及びサブフレームの例示的な実施形態の概略図である。
【
図4】
図4は、例示的な参照フレーム及び例示的な予測フレームの概略図である。
【
図5】
図5は、例示的な参照フレーム及び例示的な予測フレームの概略図である。
【
図6】
図6は、本対象のいくつかの実装による例示的なプロセスを説明するプロセスフロー図である。
【
図7】
図7は、本対象のいくつかの実装によるビットストリームを復号化することが可能な例示的なデコーダを説明するシステムブロック図である。
【
図8】
図8は、本対象のいくつかの実装によるビデオを符号化するための例示的なプロセスを説明するプロセスフロー図である。
【
図9】
図9は、本対象のいくつかの実装による例示的なビデオエンコーダを説明するシステムブロック図である。
【
図10】
図10は、本明細書に開示される任意の1つ又は複数の方法論、及び任意の1つ又は複数のその部分を実装するために使用され得るコンピューティングシステムのブロック図である。
【0012】
図面は、必ずしも縮尺通りではなく、想像線、図表示、及び部分図によって説明され得る。場合によっては、実施形態の理解に必要でない詳細、又は他の詳細を把握することを困難にする詳細は、省略され得る。様々な図面における同様の参照符号は、同様の要素を示す。
【発明を実施するための形態】
【0013】
従来の映像符号化方式では、ビデオシーケンスは、GOP(Group-of-Pictures)に分割される。各GOPは、時間的な且つ空間的な予測という意味で自己完結されている。通常、グループ内の最初のピクチャは、後のピクチャのための参照ピクチャとして使用される。ピクチャ間の時間的な且つ空間的な関係は、予測符号化を使用して非常に効率的な圧縮を可能にする。
【0014】
ビデオの送信中のいくつかのシナリオでは、例えば連続再生を容易にするためにビットレートを下げるように、復号化されるべきフレームをクロップする必要が生じ得る。多くの現在の最新式エンコーダでは、クロッピングは、グループオブピクチャ(GOP)として知られるビデオの全部分を再符号化し、再送信することによって管理され、GOPは、参照として使用されるイントラフレーム(I-フレーム)と、その参照から他のフレームを予測するために使用できる情報とを含む。これは、これらのフレームがGOP内のビットの大部分を占めるので、追加のコストを招き得るイントラフレーム(I-フレーム)を送信する必要がある。例示的な一実施例として、ビデオ送信システムが利用可能な帯域幅の急激な低下を経験するシナリオ、又はビデオの消費者がビデオピクチャ内の特定の領域に関心を持つシナリオでは、ビデオピクチャ内の所定の関心領域を送信し、提示する必要があり得る。既存の映像符号化方式は、既に送信されたビデオの部分を破棄し、新しいビデオを再符号化し、再送信することによってこれを達成する。例えば、
図1で説明されるように、第1の参照ピクチャ104、第2の参照ピクチャ108の両方が112のように符号化され、送信され得る。これは、非効率的であるばかりでなく、ユーザエクスペリエンスを損なうデコーダ側で遅延を誘発する。
【0015】
本対象は、システム及びプロセスの適応クロッピングに関し、様々な使用例においてビットレートの節約を可能にするビデオエンコーダ/デコーダのためのさらなる柔軟性を可能にする技術である。一般的に、適応クロッピングは、ビットストリームでシグナリングされるようなクロッピングを、ビットストリームでシグナリングされるような適応スケーリングと結び付ける。適応クロッピングは、現在のフレームのための参照として参照フレームの参照領域を使用して予測を実行することを含み得、参照領域「サブフレーム」は、参照フレームの領域よりも小さい、例えば画素で定義される、領域を有する。現在の符号化規格では、予測フレームは、全体の参照フレームから生成される。適応クロッピングでは、参照フレーム内の参照領域は、予測フレームを生成するための参照ピクチャとして使用され得る。このアプローチは、視聴者にとっての関心領域に焦点を当てるために、且つ/或いは、いくつかの目的及び/又はタスクに、より関連性の高い視覚データを含むものとして、自動化された或いはユーザにとって容易である検出によって識別された領域に焦点を当てるために、ビデオ解像度を下げるように使用され得、したがって、ビットレートを下げる。
【0016】
いくつかの実施形態では、適応クロッピングは、GOP内の任意の位置で、任意のフレーム数に使用されてもよく、したがって、I-フレームの再符号化及び/又は再送信の要件を除外する。
【0017】
ここで
図2を参照すると、フレーム204の例示的な実施形態が説明され、フレーム204は、ビデオビューのクロップされた一部分を表すサブフレームを有する、参照フレームを含み得る。サブフレームは、例えば、以下でさらに詳細に説明されるように、デコーダによって、参照フレーム内で識別されてもよい。サブフレームは、復号化されたフレーム208を生成するために、クロップされた参照フレームを別々に送信させることを必要とせず、クロップされた参照フレームの使用に類似する方法で参照領域として使用されてもよい。代替的に、参照フレームは、現在のフレームを生成するためにクロッピングせずに使用されてもよく、同様に、クロップされた参照フレームの再送信なしに、以下でさらに詳細に説明するようにクロップされてもよく、且つ/或いはサイズ変更されてもよい。このアプローチに与えられる利点は、ビデオ送信に使用される帯域幅を節約すること、ビデオの符号化に使用される資源を節約すること、及び/又はビデオを復号化し、再生するのに必要とされる時間を節約することを含み得る。開示された実施形態を実装するデバイス及び/又はネットワークにおいて、資源の、より有効な使用だけでなく、優れたユーザエクスペリエンスという結果になり得る。
【0018】
ここで
図3を参照すると、非限定的且つ例示的な一実施例として、参照フレームは、第1の幅D1及び第1の高さD2によって定義される第1の解像度を有してもよく、D1及びD2は、限定されないが、画素及び/又は画素の端数のような測定単位の数であってもよい。参照フレームの領域は、解像度D1×D2として定義される、測定単位D1及びD2の長方形の配列の領域として定義されてもよい。サブフレーム304は、W×Hの領域又は解像度を定義する、幅W及び高さHを有してもよい。サブフレーム304は、同じ、或いは、より小さい寸法を有する参照ピクチャ内のサブピクチャを定義してもよく、「より小さい寸法」は、W及びHの少なくとも1つが参照フレームの対応する寸法よりも小さいことを意味する。言い換えれば、WがD1よりも小さいか、或いはHがD2よりも小さいかのいずれかである。その結果、解像度又は領域W×Hは、解像度又は領域D1×D2よりも小さくてもよい。サブフレーム304は、4項組(X,Y,W,H)によって定義されてもよく、X,Yは、参照ピクチャの左上隅に対するサブフレーム304の左上隅の座標であり、W,Hは、測定単位で表されるサブフレーム304の幅及び高さである。代替の4項組は、限定されないが、サブフレーム304の代替の隅の座標、2つの対角線上に対向する頂点のセット、及び/又は任意の定義された点へのベクトルのように、サブフレーム304を定義するために選択され得ることに留意されたい。サブフレーム304を定義するデータは、GOPにわたって静的であってもよい。例えば、4項組(X,Y,W,H)又は同等のものが、GOPにわたって静的であってもよい。代替的に或いは追加的に、サブフレーム304を定義するデータは、動的であってもよい。例えば、限定されないが、サブフレーム304は、ビデオピクチャ内の関心のある物体及び/又は人物の動きに従うように、GOPの後のピクチャ間で変化する。グループオブピクチャの各ピクチャに対してサブフレーム304を定義するデータが提供されてもよい。これは、限定されないが、例えば上述されたように、1つのピクチャにおけるサブフレーム304を定義するデータのセットによって、1つのピクチャから前又は後のピクチャへのサブフレーム304の動きを記述するさらなるデータによって、或いは同様のものによって、グループオブピクチャの各ピクチャに対して、サブフレーム304を定義するデータのセットによって、達成されてもよい。サブフレーム304を定義するデータは、シーケンスパラメータセット(SPS)で指定されてもよく、且つ/或いはシグナリングされてもよい。サブフレーム304を定義する更新データは、GOPの1つ又は複数の選択されたピクチャ及び/又はフレームに対してピクチャパラメータセット(PPS)で提供されてもよい。
【0019】
また、
図3を参照すると、クロップされたサブフレーム304は、少なくとも1つの垂直オフセット及び少なくとも1つの水平オフセットを使用してシグナリングされてもよい。例えば、限定されないが、上述されたような4項組は、フレームの上端からの垂直オフセット、フレームの下端からの垂直オフセット、フレームの左端からの水平オフセット、及びフレームの右端からの水平オフセットを指定してもよく、オフセットは、以下でさらに詳細に説明されるように再スケーリングの前又は後のいずれかのフレームの画素で測定されてもよい。非限定的な一実施例として、少なくとも1つの垂直オフセットは、sps_conf_win_top_offset及びsps_conf_win_bottom_offsetを含んでもよく、これらはSPSでシグナリングされてもよく、フレームの上端からの垂直オフセット及びフレームの下端からの垂直オフセットをそれぞれ識別してもよい。さらなる非限定的な一実施例として、少なくとも1つの水平オフセットは、sps_conf_win_left_offset及びsps_conf_win_right_offsetを含んでもよく、これらはSPSでシグナリングされてもよく、フレームの左端からの水平オフセット及びフレームの右端からの水平オフセットをそれぞれ識別してもよい。
【0020】
引き続き
図3を参照すると、代替的に或いは追加的に、クロップされたフレームとして使用され得るサブフレーム304は、サブフレーム304に含まれるべき且つ/或いはサブフレーム304から除外されるべき1つ又は複数のタイル又はスライスの指定によって識別されてもよい。フレーム内のタイル数及び位置は、ピクチャヘッダでシグナリングされてもよい。一実施形態では、シグナリングは明示的であってもよい。代替的に或いは追加的に、PPSは、タイル行、列、行の高さ、及び/又は列幅、タイルカウント及び/又は数を判定するためにデコーダによって結び付けられ得、且つ/或いは利用され得る任意の或いは全てのそれらをシグナリングしてもよい。例えば、限定されないが、1が加えられた、pps_num_exp_tile_columns_minus1として示されるPPSパラメータは、明示的に提供されたタイル列幅の数を指定してもよい。さらなる非限定的な一実施例として、1が加えられた、パラメータpps_tile_column_width_minus1[i]は、例えば0からpps_num_exp_tile_columns_minus1までの範囲内のiについて、コーディングツリーブロック(CTB)の単位で、i番目のタイル列幅を指定してもよい。1が加えられた、パラメータpps_tile_row_height_minus1[i]は、例えばiについてのCTBの単位で、i番目のタイル行の高さを指定してもよい。代替的に或いは追加的に、シグナリングされたパラメータは、1つ又は複数のタイル内のスライスの数及び/又は寸法を指定してもよい。例えば、pps_num_exp_slices_in_tile[i]で示されるパラメータは、i番目のスライスを含むタイル内のスライスについて、明示的に提供されたスライスの高さの数を指定してもよい。1が加えられた、pps_slice_width_in_tiles_minus1[i]で示されるパラメータは、タイル列の単位でi番目の長方形のスライスの幅を指定してもよい。1が加えられた、pps_slice_height_in_tiles_minus1[i]で示されるパラメータは、例えば、pps_num_exp_slices_in_tile[i]が0に等しいとき、タイル行の単位でi番目の長方形のスライスの高さを指定してもよい。当業者は、本開示の全体を検討する際に、タイル及び/又はスライスパラメータが、暗示的に或いは明示的に関わらず、ビットストリーム及び/又はヘッダパラメータで、且つ/或いは、ビットストリーム及び/又はヘッダパラメータから、シグナリングされ得、且つ/或いは判定され得る様々な代替の或いは追加の方法を承知するであろう。
【0021】
さらに
図3を参照すると、フレームは、2つ以上のサブフレーム304に分割されてもよい。サブフレーム304は、限定されないが、所定のサブフレーム304に含まれるタイル及び/又はスライスの指定によるものを含む、上述されたような1つ又は複数のタイル及び/又はスライスを識別されてもよく、且つ/或いはシグナリングされてもよい。1つ又は複数のそのようなサブフレーム304は、本開示で説明されるようにクロップされたサブフレーム304として使用されてもよいし、或いはそこから除外されてもよい。
【0022】
引き続き
図3を参照すると、適応クロッピングは、モードとして実装されてもよい。復号化中のある時点での適応クロッピングモードの起動の場合、デコーダは、解像度D1×D2で参照フレームを既に受信していてもよく、上述されたように、4項組を使用してサブ領域を選択してもよい。いくつかの実装では、エンコーダは、ビットストリーム内の余分なビットを使用して、デコーダにシグナリングしてもよい。シグナリングビットは、デコーダでピクチャインデックスを識別するバッファ内の、参照フレームインデックス及び/又はGOPを識別するインデックス、並びにサブフレーム304の4項組であってもよい。次に、デコーダは、4項組、及び任意にクロップされたサブフレームに対するスケーリング動作に従って、インデックスによって識別されるように、参照ピクチャに対してクロッピング動作を実行してもよい。後のフレームは、クロップされ、任意にスケーリングされたサブフレーム304から予測されてもよく、或いは、サブフレーム304が参照フレームの関数として復号化されたフレームである場合、クロッピング及び任意にスケーリングの前に、参照フレームから予測されてもよい。上述されたように、サブフレーム304を定義するデータが動的である場合、後のフレームは、そのようなデータ及び参照フレームを使用してさらに予測されてもよい。有利には、単一の参照フレームは、参照フレームの再送信を必要とすることなく、参照フレームに関連して移動するサブフレーム304に使用されてもよい。クロッピング及び/又はサイズ変更は、サブフレーム304を使用して現在のフレームを復号化する前に、参照フレーム自体に対して実行されてもよい。代替的に或いは追加的に、現在のフレームは、参照フレームを使用して復号化されてもよく、次に、上述されたように、シグナリングに従ってクロップされてもよい。同様に、再スケーリングは、現在のフレームの復号化の前に、参照フレーム及び/又はサブフレームに対して、或いは復号化の後に現在のフレームに対して実行されてもよい。
【0023】
ここで
図4を参照すると、デコーダは、複数のモードのうちの1つで適応クロッピングを実装してもよい。例示的な一実施形態では、
図4で説明されるように、デコーダは、RRM(Reduced Resolution Mode)を使用して適応クロッピングを実装してもよい。RMM予測ピクチャは、サブフレームと同じ解像度であってもよい。例えば、サブフレームが参照フレームよりも小さい解像度である場合、予測ピクチャは、同じ、小さい解像度で提供されてもよい。言い換えれば、クロップされた現在のフレームは、再スケーリングすることなく、サブフレームの解像度を維持してもよい。予測のような、予測ピクチャを取得するために必要な全ての動作は、直接、領域に対して、及び/又は、クロッピング前の参照フレームに対して行われてもよい。予測ピクチャは、その後、より小さいピクチャ、又は、より大きいピクチャに再スケーリングされてもよい。
【0024】
図4をさらに参照すると、より小さい、或いは、より大きいフレームの幅及び高さが、参照幅及び高さに、任意の再スケーリング定数(Rc)を乗じることによって取得されてもよく、再スケーリング定数(Rc)は、スケーリング因子及び/又は定数とも呼ばれ、代替的に或いは追加的に、RefPicScaleのような変数名で呼ばれてもよい。より小さいフレームの場合、Rcは、0から1の間の値を有してもよい。より大きいフレームの場合、Rcは、1より大きい値を有してもよい。例えば、Rcは、1から4の間の値を有してもよい。他の値であってもよい。再スケーリング定数は、1つの解像度次元と別の解像度次元とで異なっていてもよい。例えば、再スケーリング定数Rchが、高さを再スケーリングするために使用されてもよく、別の再スケーリング定数Rcwが、幅を再スケーリングするために使用されてもよい。
【0025】
また、
図4を参照すると、再スケーリングは、モードとして実装されてもよい。いくつかの実装では、エンコーダは、例えば、pps_pic_width_in_luma_samplesパラメータ、pps_scaling_win_right_offsetパラメータ、及び/又はpps_scaling_win_left_offsetパラメータのようなピクチャパラメータの関数として、使用すべき再スケーリング定数をデコーダへシグナリングしてもよい。シグナリングは、現在のピクチャを含むGOPに対応するシーケンスパラメータセット(SPS)で、且つ/或いは現在のピクチャに対応するピクチャパラメータセット(PPS)で実行されてもよい。例えば、限定されないが、エンコーダは、pps_pic_width_in_luma_samples、pps_pic_height_in_luma_samples、pps_scaling_win_left_offset、pps_scaling_win_right_offset、pps_scaling_win_top_offset、pps_scaling_win_bottom_offset及び/又はsps_num_subpics_minus1のようなフィールドを使用して再スケーリングされたパラメータをシグナリングしてもよい。pps_scaling_window_explicit_signalling_flagのようなパラメータが1に等しいことは、スケーリングウィンドウオフセットパラメータがPPSに存在することを指定してもよい。pps_scaling_window_explicit_signalling_flagが0に等しいことは、スケーリングウィンドウオフセットパラメータがPPSに存在しないことを示してもよい。sps_ref_pic_resampling_enabled_flagが0に等しいとき、pps_scaling_window_explicit_signalling_flagの値は、0であってもよい。pps_scaling_win_left_offset、pps_scaling_win_right_offset、pps_scaling_win_top_offset、及びpps_scaling_win_bottom_offsetは、スケーリング比率計算のためにピクチャサイズに適用されるオフセットを指定してもよい。存在しないとき、pps_scaling_win_left_offset、pps_scaling_win_right_offset、pps_scaling_win_top_offset、及びpps_scaling_win_bottom_offsetの値は、それぞれ、pps_conf_win_left_offset、pps_conf_win_right_offset、pps_conf_win_top_offset、及びpps_conf_win_bottom_offsetに等しいと推定されてもよい。
【0026】
さらに
図4を参照すると、上述されたように、W及びHパラメータは、限定されないが、それぞれ、変数CurrPicScalWinWidthL及びCurrPicScalWinHeightLを使用して表されてもよい。これらの変数は、シグナリングされたパラメータと変数との間の1つ又は複数の数学的関係を使用して、上述されたように、シグナリングされたパラメータから導き出されてもよい。例えば、限定されないが、CurrPicScalWinWidthLは、以下の式に従って導き出され得る。
CurrPicScalWinWidthL = pps_pic_width_in_luma_samples - SubWidthC * (pps_scaling_win_right_offset + pps_scaling_win_left_offset)
【0027】
さらなる非限定的な一実施例として、CurrPicScalWinHeightLは、以下の式に従って導き出され得る。
CurrPicScalWinWidthL = pps_pic_width_in_luma_samples - SubWidthC * (pps_scaling_win_right_offset + pps_scaling_win_left_offset)
【0028】
当業者は、本開示の全体を検討する際に、上述された変数を導き出すために使用され得る様々な代替の計算を承知するであろう。代替的に或いは追加的に、エンコーダは、例えば、限定されないが、PPS及び/又はSPSで、1つ又は複数のそのような変数、Rc、Rch、及び/又はRcwを直接シグナリングしてもよい。
【0029】
また、
図4を参照すると、代替的に或いは追加的に、上述されたように、再スケーリング定数及び/又は再スケーリング定数のセットは、格納された1つ又は複数のスケーリング定数のインデックスへの参照、及び/又は、以前にシグナリングされ且つ/或いは利用された1つ又は複数のスケーリング定数を使用してシグナリングされたフレーム及び/又はブロックのインデックスへの参照を使用して、ビットストリームでシグナリングされてもよい。格納されたスケーリング定数のインデックスへの参照は、明示的にシグナリングされてもよく、且つ/或いはビットストリームでシグナリングされた1つ又は複数の追加のパラメータから判定されてもよい。例えば、限定されないが、デコーダは、現在のフレームを含む、参照フレーム及び/又はグループオブピクチャを識別してもよい。再スケーリング定数が、現在のフレーム及び/又は現在のグループオブピクチャ、又は同様のものに適用可能なようにシグナリングされた参照フレームを用いて、そのようなグループオブピクチャで以前にシグナリングされ、且つ/或いは使用されいる場合、デコーダは、現在のフレームにおける再スケーリング定数としての使用のために、その再スケーリング定数を識別してもよい。
【0030】
引き続き
図4を参照すると、いくつかの実装では、再スケーリング動作は、符号化されたフレーム及び/又はサブフレームのブロックレベルで実行されてもよい。例えば、参照フレームが最初に再スケーリングされ、その後、予測が実行されてもよい。ブロック予測プロセスは、元の参照フレームよりもむしろ、(スケーリングされた解像度を有する)スケーリングされた参照フレームで実行されてもよい。参照フレームを再スケーリングすることは、上述されたように、エンコーダによってシグナリングされた任意のパラメータに従った再スケーリングを含んでもよい。例えば、限定されないが、参照フレームに関連付けられたインデックス値への参照、又は同様のものを介してなど、現在のピクチャと共に使用されるべき参照フレームがシグナリングされた場合、シグナリングされた参照フレームは、予測に先立って、上述された再スケーリングの任意の方法に従って、再スケーリングされてもよい。再スケーリングされた参照フレームは、メモリ及び/又はバッファに格納されてもよく、バッファは、限定されないが、フレーム検索が実行されることに従って、インデックスによってそこに含まれるフレームを識別するバッファを含んでもよい。バッファは、復号ピクチャバッファ(DCB)を含んでもよく、且つ/或いはデコーダによって実装される1つ又は複数の追加のバッファを含んでもよい。予測プロセスは、例えば、動き補償を含むインタピクチャ予測を含んでもよい。
【0031】
また、
図4を参照すると、ブロックベースの再スケーリングのいくつかの実装は、フレーム全体に対して同じフィルタを適用する代わりに、各ブロックに対して最適なフィルタを適用する柔軟性を可能にし得る。いくつかの実装では、スキップ-再スケーリングモードは、(例えば、画素の均一性及びビットレートのコストに基づく)いくつかのブロックが(再スケーリングがビットレートを変更しないように)スキップ-再スケーリングモードであることを可能にしてもよい。スキップ-再スケーリングモードは、ビットストリームでシグナリングされてもよい。例えば、限定されないが、スキップ-再スケーリングモードは、PPSパラメータでシグナリングされてもよい。代替的に或いは追加的に、デコーダは、スキップ-再スケーリングモードが、デコーダによって設定された且つ/或いはビットストリームでシグナリングされた1つ又は複数のパラメータに基づいて、アクティブであると判定してもよい。
【0032】
また、
図4を参照すると、再スケーリングで使用される空間フィルタは、限定されないが、バイキュービック補間を適用するバイキュービック空間フィルタ、バイリニア解釈を適用するバイリニア空間フィルタ、sincフィルタ、sinc関数補間及び/又は信号再構成技術、又は同様のものの組み合わせを使用する、Lanczosフィルタリング及び/又はLanczos再サンプリングを使用する、Lanczosフィルタを含んでもよい。当業者は、本開示の全体を検討する際に、本開示と一貫する補間に使用され得る様々なフィルタを承知するであろう。非限定的な一実施例として、補間フィルタは、上述された任意のフィルタ、ローパスフィルタを含んでもよく、ローパスフィルタは、限定されないが、スケーリング前のブロック及び/又はフレームの画素間の画素がゼロに初期化され得るアップサンプリング処理として使用されてもよく、次に、ローパスフィルタの出力が入力されてもよい。代替的に或いは追加的に、任意のルーマサンプル補間フィルタリング処理が使用されてもよい。ルーマサンプル解釈は、スケーリングされていないサンプル配列の2つの連続するサンプル値の間に位置する、ハーフサンプル補間フィルタインデックスで補間値の計算を含んでもよい。補間値の計算は、限定されないが、ルックアップテーブルから係数及び/又は重みの検索によって、実行されてもよい。ルックアップテーブルの選択は、例えば、上述されたようなスケーリング定数を使用して判定されるように、コーディングユニット及び/又はスケーリング比率量の動きモデルの関数として実行されてもよい。計算は、限定されないが、隣接する画素値の重み付き和を実行することを含んでもよく、重みは、ルックアップテーブルから検索される。代替的に或いは追加的に、計算された値は、シフトされてもよい。例えば、限定されないが、値は、Min(4,BitDepth-8),6,Max(2,14-BitDepth)、又は同様のものによってシフトされてもよい。当業者は、本開示の全体を検討する際に、補間フィルタに使用され得る様々な代替の或いは追加の実装を承知するであろう。
【0033】
ここで
図5を参照すると、デコーダは、SRM(Same Resolution Mode)を使用して適応クロッピングを実装してもよい。SRMでは、サブフレームは、ビデオのフル解像度に一致させるために、例えば上述されたように、再スケーリング定数を使用して、再スケーリングされてもよい。例えば、W及びHはそれぞれ、限定されないが、Rc=D1/Wのように、上述されたようなD1及びD2と同じサイズにW及びHをスケーリングするために選択されたRcを乗じてもよい。予測及び他の動作は、再スケーリングされたサブフレームを使用して予測ピクチャを取得するために実行されてもよい。
【0034】
ここで
図6を参照すると、適応クロッピングの方法600の例示的な一実施形態が開示される。ステップ605で、ビットストリームは、デコーダで受信される。現在のブロックを含む現在のフレームは、デコーダが受信するビットストリーム内に含まれ得る。ビットストリームは、例えば、データ圧縮を使用するときにデコーダへの入力であるビットのストリームに見出されるデータを含み得る。ビットストリームは、ビデオを復号化するのに必要な情報を含み得る。受信は、ビットストリームからブロック及び関連付けられたシグナリング情報を抽出し、且つ/或いは解析することを含み得る。いくつかの実装では、現在のブロックは、コーディングツリーユニット(CTU)、コーディングユニット(CU)、又は予測ユニット(PU)を含み得る。
【0035】
引き続き
図6を参照すると、ステップ610で、第1のフレームは、ビットストリームを使用して識別される。第1フレームのクロップされたサブフレームは、ビットストリームの関数として識別される。クロップされたサブフレームを識別することは、ビットストリームで、クロップされたサブフレームの幾何学的な特徴付けを受信することを含んでもよい。これは、限定されないが、上述されたように、(X,Y,W,H)などの4項組のような、本開示で説明された任意の方法で実装されてもよい。幾何学的な特徴付けは、上述されたように、クロップされたサブフレームの参照フレームに対する位置が動的である、クロップされたサブフレームを定義するデータへの更新を含んでもよい。
【0036】
また、
図6を参照すると、ステップ615で、デコーダは、ビットストリームの関数として、クロップされたサブフレームに関連付けられたスケーリング定数を判定する。これは、限定されないが、上述されたように、実装されてもよい。
【0037】
また、
図6を参照すると、ステップ620で、デコーダは、スケーリング定数を使用して、クロップされたサブフレームの画素データを再構成する。これは、限定されないが、上述されたように、実装されてもよい。
【0038】
また、
図6を参照すると、いくつかの実装では、サブフレームは、例えばGOP内のピクチャとして、表示されてもよい。
【0039】
引き続き
図6を参照すると、いくつかの実装では、適応クロッピングモードで、参照フレームとしてサブフレームを使用する第2のフレーム又はその一部分である。復号化は、限定されないが、上述されたように、RRMで復号化すること、すなわち言い換えれば、サブフレームを再スケーリングすることなく、復号化動作を実行することを含んでもよい。復号化は、限定されないが、上述されたように、SRMで復号化することを含んでもよい。復号化は、スケーリングされたサブフレーム及びスケーリング定数を使用してスケーリングされた参照フレームを生成することと、スケーリングされた参照フレームを使用して第2のフレーム又はその一部分を復号化することとを含んでもよい。
【0040】
図7は、適応クロッピングが可能な例示的なデコーダ700を説明するシステムブロック図である。デコーダ700は、エントロピーデコーダプロセッサ704、逆量子化及び逆変換プロセッサ708、デブロッキングフィルタ712、フレームバッファ716、動き補償プロセッサ720及び/又はイントラ予測プロセッサ724を含み得る。
【0041】
また、
図7を参照すると、動作において、ビットストリーム728は、デコーダ700によって受信されてもよく、エントロピーデコーダプロセッサ704に入力されてもよく、エントロピーデコーダプロセッサ704は、ビットストリームの一部分を量子化係数にエントロピー復号化してもよい。量子化係数は、逆量子化及び逆変換プロセッサ708に提供されてもよく、逆量子化及び逆変換プロセッサ708は、残留信号を生成するために逆量子化及び逆変換を実行してもよく、残留信号は、処理モードに従って動き補償プロセッサ720又はイントラ予測プロセッサ724の出力に追加されてもよい。動き補償プロセッサ720及びイントラ予測プロセッサ724の出力は、以前に復号化されたブロックに基づくブロック予測値を含む。予測値及び残差(residual)の和は、デブロッキングフィルタ712によって処理されてもよく、フレームバッファ716に格納されてもよい。
【0042】
また、
図7を参照すると、一実施形態では、デコーダ700は、任意の順序で、且つ任意の程度の繰り返しで、上述されたような任意の実施形態での上述されたような任意の動作を実装するように構成されている回路を含んでもよい。例えば、デコーダ700は、所望の或いは命令された結果が達成されるまで、単一のステップ又はシーケンスを繰り返し実行するように構成されていてもよい。ステップ又はステップのシーケンスの繰り返しは、前の繰り返しの出力を後続の繰り返しへの入力として使用し、集約結果を生成するために繰り返しの入力及び/又は出力を集約し、グローバル変数のような1つ又は複数の変数の削減又はデクリメントを行い、及び/又は、大きな処理タスクを反復的に対処される小さな処理タスクのセットに分割して、反復的に且つ/或いは再帰的に実行されてもよい。デコーダは、2つ以上の並列スレッド、プロセッサコア、又は同様のものを使用してステップを2回以上、同時に且つ/或いは実質的に同時に実行するように、本開示で説明されているような任意のステップ又はステップのシーケンスを並行して実行してもよい。並列スレッド及び/又はプロセス間のタスクの分割は、反復間のタスク分割に適した任意のプロトコルに従って実行されてもよい。当業者は、本開示の全体を検討する際、ステップ、ステップのシーケンス、処理タスク、及び/又はデータが、反復、再帰、及び/又は並列処理を使用して細分化され得、共有され得、或いは他の方法で取り扱われ得る様々な方法を承知するであろう。
【0043】
図8は、様々な使用例においてビットレートの節約を可能にするビデオエンコーダ/デコーダのためのさらなる柔軟性を可能にし得る適応クロッピングを用いたビデオを符号化するプロセス800の一実施例を説明するプロセスフロー図である。ステップ805で、ビデオフレームは、例えば、ピクチャフレームをCTU及びCUに分割することを含み得るツリー構造のマクロブロックパーティションスキームを使用して、初期ブロック分割を受けてもよい。
【0044】
また、
図8を参照すると、ステップ810で、フレーム又はその一部分のサブフレームの選択を含む、ブロックベースの適応クロッピングが実行されてもよい。領域は、自動の或いは専門家による入力の手段によって選択されてもよい。非限定的な一実施例として、特定のオブジェクトを検出するコンピュータビジョンアルゴリズムによって、自動的な選択が達成されてもよい。オブジェクト検出は、オブジェクト分類、又は同様のもののような、さらなる処理を含んでもよい。専門家による入力の選択は、限定されないが、例えば、監視ビデオ内の人物のような、ビデオ内の関心のある人物及び/又はオブジェクトのクローズアップを選択するといった、人間の手動介入を使用して達成されてもよい。別の可能な使用例は、ビットレート削減に最も寄与する最大注目領域を選択することであってもよい。適応クロッピングは、サブフレームの幾何学的な特徴付けの選択をさらに含んでもよい。例えば、限定されないが、サブフレームの幾何学的な特徴付けの選択は、限定されないが(X,Y,W,H)のように、上述されたような4項組の選択を含んでもよい。サブフレームの幾何学的な特徴付けの選択は、更新情報、及び/又は、サブフレームを定義する動的データに関して上述されたように、1つのフレームから別のフレームへのサブフレームを定義するデータへの変更を示す情報を含んでもよい。
【0045】
また、
図8を参照すると、ステップ815で、ブロックは、符号化されてもよく、ビットストリームに含められてもよい。符号化は、例えば、インタ予測モード及びイントラ予測モードを利用することを含み得る。符号化は、例えば上述されたように、ビットストリームの特徴付け(X,Y,W,H)にビットを追加すること、適応クロッピングモードを識別すること、或いは同様のことを含んでもよい。符号化は、サブフレームを定義する動的データに関して上述されたように、更新情報、及び/又は、1つのフレームから別のフレームへのサブフレームを定義するデータへの変更を示す情報を符合化することを含んでもよい。実施形態では、エンコーダは、上述されたように、再スケーリング定数を判定してもよく、送信してもよい。
【0046】
図9は、適応クロッピングが可能な例示的なビデオエンコーダ900を説明するシステムブロック図である。例示的なビデオエンコーダ900は、入力ビデオ904を受信してもよく、入力ビデオ904は、ツリー構造のマクロブロックパーティションスキーム(例えば、四分木プラス二分木)のような、処理スキームに従って最初にセグメント化されてもよく、或いは分割されてもよい。ツリー構造のマクロブロックパーティションスキームの一実施例は、ピクチャフレームを、コーディングツリーユニット(CTU)と呼ばれる大きいブロック要素に分割することを含んでもよい。いくつかの実装では、各CTUは、コーディングユニット(CU)と呼ばれる複数のサブブロックに1回又は複数回さらに分割されてもよい。この分割の最終結果は、予測ユニット(PU)と呼ばれ得るサブブロックのグループを含んでもよい。変換ユニット(TU)がまた、利用されてもよい。
【0047】
また、
図9を参照すると、例示的なビデオエンコーダ900は、イントラ予測プロセッサ908と、グローバル動きベクトル候補を動きベクトル候補リストに追加することを含む、動きベクトル候補リストを構成することが可能な、インタ予測プロセッサとも呼ばれ得る、動き推定/補償プロセッサ912と、変換/量子化プロセッサ916と、逆量子化/逆変換プロセッサ920と、インループフィルタ924と、復号ピクチャバッファ928と、及び/又は、エントロピー符号化プロセッサ932とを含んでもよい。ビットストリームパラメータは、エントロピー符号化プロセッサ932に入力されて、出力ビットストリーム936に含められてもよい。
【0048】
引き続き
図9を参照すると、動作では、入力ビデオ904のフレームの各ブロックについて、イントラピクチャ予測を介してブロックを処理するか、或いは動き推定/補償を使用してブロックを処理するかが判定されてもよい。ブロックは、イントラ予測プロセッサ908又は動き推定/補償プロセッサ912に提供されてもよい。ブロックがイントラ予測を介して処理されるべきである場合、イントラ予測プロセッサ908は、予測子(predictor)を出力するための処理を実行してもよい。ブロックが動き推定/補償を介して処理されるべきである場合、動き推定/補償プロセッサ912は、該当する場合、グローバル動きベクトル候補を動きベクトル候補リストに追加することを含む、動きベクトル候補リストを構成することを含む処理を実行してもよい。
【0049】
さらに
図9を参照すると、残差は、入力ビデオから予測子を減ずることによって形成されていてもよい。残差は、変換/量子化プロセッサ916によって受信されてもよく、変換/量子化プロセッサ916は、係数を生成するために変換処理(例えば、離散コサイン変換(DCT))を実行してもよく、係数は、量子化されてもよい。量子化係数及び任意の関連付けられたシグナリング情報は、エントロピー符号化プロセッサ932に提供され、エントロピー符号化されてもよく、出力ビットストリーム936に含められてもよい。エントロピー符号化プロセッサ932は、現在のブロックを符号化することに関連付けられたシグナリング情報の符号化をサポートしてもよい。さらに、量子化係数は、逆量子化/逆変換プロセッサ920に提供されてもよく、逆量子化/逆変換プロセッサ920は、画素を再生成してもよく、画素は、予測子と結び付けられてもよく、インループフィルタ924によって処理されてもよく、その出力は、グローバル動きベクトル候補を動きベクトル候補リストに追加することを含む、動きベクトル候補リストを構成することが可能な、動き推定/補償プロセッサ912によって使用されるために、復号ピクチャバッファ928に格納されてもよい。
【0050】
引き続き
図9を参照すると、いくつかの変形例が上記で詳細に説明されたが、他の変更又は追加は可能である。例えば、いくつかの実装では、現在のブロックは、任意の非対称ブロック(8×4、16×8など)だけでなく、任意の対称ブロック(8×8、16×16、32×32、64×64、128×128など)を含んでもよい。
【0051】
また、
図9を参照すると、いくつかの実装では、四分木プラス二分決定木(QTBT)が実装されてもよい。QTBTでは、コーディングツリーユニットレベルで、QTBTのパーティションパラメータは、任意のオーバーヘッドを送信することなく、ローカル特性に適応するように動的に導き出されてもよい。その後、コーディングユニットレベルで、ジョイントクラシファイア決定木構造は、不必要な繰り返しを排除し得、誤った予測のリスクを制御し得る。いくつかの実装では、LTRフレームブロック更新モードは、QTBTのリーフノード毎で利用可能な追加の選択として利用可能であってもよい。
【0052】
また、
図9を参照すると、いくつかの実装では、追加のシンタックス要素は、ビットストリームの異なる階層レベルでシグナリングされてもよい。例えば、フラグは、シーケンスパラメータセット(SPS)で符号化されたイネーブルフラグを含むことによって、全体のシーケンスに対して有効であってもよい。さらに、CTUフラグは、コーディングツリーユニット(CTU)レベルで符号化されてもよい。
【0053】
いくつかの実施形態は、命令を格納する非一時的コンピュータプログラム製品(すなわち、物理的に具現化されたコンピュータプログラム製品)を含んでもよく、命令は、1つ又は複数のコンピューティングシステムの1つ又は複数のデータプロセッサによって実行されるとき、少なくとも1つのデータプロセッサに本明細書における動作を実行させる。
【0054】
また、
図9を参照すると、エンコーダ900は、任意の順序で、且つ任意の程度の繰り返しで、任意の実施形態において
図8又は
図9を参照して上述されたような任意の動作を実装するように構成されている回路を含んでもよい。例えば、エンコーダ900は、所望の或いは命令された結果が達成されるまで、単一のステップ又はシーケンスを繰り返し実行するように構成されていてもよい。ステップ又はステップのシーケンスの繰り返しは、前の繰り返しの出力を後続の繰り返しへの入力として使用し、集約結果を生成するために繰り返しの入力及び/又は出力を集約し、グローバル変数のような1つ又は複数の変数の削減又はデクリメントを行い、及び/又は、大きな処理タスクを反復的に対処される小さな処理タスクのセットに分割して、反復的に且つ/或いは再帰的に実行されてもよい。エンコーダ900は、2つ以上の並列スレッド、プロセッサコア、又は同様のものを使用してステップを2回以上、同時に且つ/或いは実質的に同時に実行するように、本開示に記載されているような任意のステップ又はステップのシーケンスを並行して実行してもよい。並列スレッド及び/又はプロセス間のタスクの分割は、反復間のタスク分割に適した任意のプロトコルに従って実行されてもよい。当業者は、本開示の全体を検討する際、ステップ、ステップのシーケンス、処理タスク、及び/又はデータが、反復、再帰、及び/又は並列処理を使用して細分化され得、共有され得、或いは他の方法で取り扱われ得る様々な方法を承知するであろう。
【0055】
引き続き
図9を参照すると、非一時的コンピュータプログラム製品(すなわち、物理的に具現化されたコンピュータプログラム製品)は、命令を格納してもよく、命令は、1つ又は複数のコンピューティングシステムの1つ又は複数のデータプロセッサによって実行されるとき、少なくとも1つのデータプロセッサに本明細書で説明された動作及び/又はそのステップを実行させ、限定されないが、
図6及び
図8を参照して上述された任意の動作、及び/又は、デコーダ700及び/又はエンコーダ900の任意の動作を実行するように構成され得ることを含む。同様に、コンピュータシステムはまた、1つ又は複数のデータプロセッサと、1つ又は複数のデータプロセッサに結合されたメモリとを含み得ると説明される。メモリは、少なくとも1つのプロセッサに、本明細書で説明される1つ又は複数の動作を実行させる命令を一時的に或いは恒久的に格納してもよい。さらに、方法は、単一のコンピューティングシステム内の1つ又は複数のデータプロセッサによって、或いは2つ以上のコンピューティングシステム間に分散された1つ又は複数のデータプロセッサによってのいずれかで実装され得る。そのようなコンピューティングシステムは、複数のコンピューティングシステムの1つ又は複数の間の直接接続、又は同様のものを介して、ネットワーク(例えば、インターネット、無線広域ネットワーク、ローカルエリアネットワーク、広域ネットワーク、有線ネットワーク、又は同様のもの)を介した接続を含む、1つ又は複数の接続を介して、接続され、データ及び/又はコマンド又は他の命令、又は同様のものを交換し得る。
【0056】
本明細書に開示される実施形態は、ビットストリームを受信することと、ビットストリームの関数として、現在のフレームと、現在のフレームのクロップされたサブフレームとを識別することと、ビットストリームの関数として、クロップされたサブフレームに関連付けられたスケーリング定数を判定することと、スケーリング定数を使用してクロップされたサブフレームの画素データを再構成することと、を行うように構成されている回路を含む。
【0057】
実施形態では、クロップされたサブフレームは、ビットストリームでシグナリングされてもよい。クロップされたサブフレームは、シーケンスパラメータセット(SPS)でシグナリングされてもよい。クロップされたサブフレームは、少なくとも1つの垂直オフセット及び少なくとも1つの水平オフセットを使用してシグナリングされてもよい。少なくとも1つの垂直オフセットは、sps_conf_win_top_offset及びsps_conf_win_bottom_offsetを含んでもよく、少なくとも1つの水平オフセットは、sps_conf_win_left_offset及びsps_conf_win_right_offsetを含んでもよい。スケーリング定数は、垂直スケーリング成分及び水平スケーリング成分を含んでもよい。スケーリング定数は、ビットストリーム内でシグナリングされてもよい。スケーリング定数は、ピクチャパラメータセット(PPS)内でシグナリングされる。スケーリング定数は、pps_pic_width_in_luma_samplesパラメータ、pps_scaling_win_right_offsetパラメータ、及びpps_scaling_win_left_offsetパラメータの関数としてシグナリングされてもよい。デコーダは、画素値を補間することによって、クロップされたサブフレームをスケーリングするように構成されていてもよい。
【0058】
一実施形態では、方法は、デコーダによって、ビットストリームを受信することと、デコーダによって且つビットストリームの関数として、現在のフレームと、現在のフレームのクロップされたサブフレームとを識別することと、デコーダによって且つビットストリームの関数として、クロップされたサブフレームに関連付けられたスケーリング定数を判定することと、デコーダによって、スケーリング定数を使用してクロップされたサブフレームのピクセルデータを再構成することと、を含む。
【0059】
実施形態では、クロップされたサブフレームは、ビットストリームでシグナリングされてもよい。クロップされたサブフレームは、シーケンスパラメータセット(SPS)でシグナリングされてもよい。クロップされたサブフレームは、少なくとも1つの垂直オフセット及び少なくとも1つの水平オフセットを使用してシグナリングされてもよい。少なくとも1つの垂直オフセットは、sps_conf_win_top_offset及びsps_conf_win_bottom_offsetを含んでもよく、少なくとも1つ水平オフセットは、sps_conf_win_left_offset及びsps_conf_win_right_offsetを含んでもよい。スケーリング定数は、垂直スケーリング成分及び水平スケーリング成分を含んでもよい。スケーリング定数は、ビットストリーム内でシグナリングされてもよい。スケーリング定数は、ピクチャパラメータセット(PPS)でシグナリングれる。スケーリング定数は、pps_pic_width_in_luma_samplesパラメータ、pps_scaling_win_right_offsetパラメータ、及びpps_scaling_win_left_offsetパラメータの関数としてシグナリングされてもよい。デコーダは、画素値を補間することによって、クロップされたサブフレームをスケーリングするように構成されていてもよい。
【0060】
本明細書で説明される任意の1つ又は複数の態様及び実施形態は、コンピュータ技術における当業者にとって明らかであるように、本明細書の教示に従ってプログラムされた1つ又は複数の機械(例えば、電子文書についてのユーザコンピューティングデバイス、文書サーバのような、1つ又は複数のサーバデバイスなどとして利用される1つ又は複数のコンピューティングデバイス)で実現され、且つ/或いは実装されるような、デジタル電子回路、集積回路、特別に設計された特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)コンピュータハードウェア、ファームウェア、ソフトウェア、及び/又はそれらの組み合わせを使用して都合よく実装されてもよいことに留意されたい。これらの様々な態様又は特徴は、特殊或いは汎用であり得、データ及び命令を記憶システムから受信し、データ及び命令を記憶システムに送信するように結合される、少なくとも1つのプログラム可能なプロセッサと、少なくとも1つの入力デバイスと、少なくとも1つの出力デバイスとを含むプログラム可能なシステム上で実行可能な且つ/或いは解釈可能な1つ又は複数のコンピュータプログラム及び/又はソフトウェアにおける実装を含んでもよい。適切なソフトウェアコーディングは、ソフトウェア技術における当業者に明らかであるように、本開示の教示に基づいて、熟練したプログラマによって容易に作成され得る。ソフトウェア及び/又はソフトウェアモジュールを採用して上述された態様及び実装はまた、ソフトウェア及び/又ソフトウェアモジュールの機械実行可能命令の実装を支援するために適切なハードウェアを含んでもよい。
【0061】
そのようなソフトウェアは、機械可読記憶媒体を採用するコンピュータプログラム製品であってもよい。機械可読記憶媒体は、機械(例えば、コンピューティングデバイス)による実行のための命令のシーケンスを格納し、且つ/或いは符号化することができ、本明細書で説明される方法論及び/又は実施形態の任意の1つを機械に実行させる任意の媒体であってもよい。機械可読記憶媒体の例は、磁気ディスク、光ディスク(例えば、CD、CD-R、DVD、DVD-Rなど)、光磁気ディスク、読み取り専用メモリ「ROM」デバイス、ランダムアクセスメモリ「RAM」デバイス、磁気カード、光カード、ソリッドステートメモリデバイス、EPROM、EEPROM、プログラマブルロジックデバイス(PLD)、及び/又はそれらの任意の組み合わせを含むが、それらに限定されない。本明細書で使用されるような、機械可読媒体は、例えば、コンピュータメモリと組み合わせた、コンパクトディスクの集まり又は1つ又は複数のハードディスクドライブのような、物理的に別個の媒体の集まりだけでなく、単一の媒体も含むことが意図される。本明細書で使用されるとき、機械可読記憶媒体は、信号送信の一時的な形式を含まない。
【0062】
そのようなソフトウェアはまた、搬送波のような、データキャリア上でデータ信号として搬送された情報(例えば、データ)を含んでもよい。例えば、機械実行可能な情報は、信号が、機械(例えば、コンピューティングデバイス)による実行のための命令シーケンス又はその一部分、及び、機械に、本明細書で説明される方法論及び/又は実施形態の任意の1つを実行させる任意の関連付けられた情報(例えば、データ構造及びデータ)を符号化するデータキャリアに具現化されたデータ搬送信号として含まれてもよい。
【0063】
コンピューティングデバイスの例は、電子書籍読取デバイス、コンピュータワークステーション、端末コンピュータ、サーバコンピュータ、携帯デバイス(例えば、タブレットコンピュータ、スマートフォンなど)、Webアプライアンス、ネットワークルータ、ネットワークスイッチ、ネットワークブリッジ、その機械によって行われるべきアクションを指定する命令シーケンスを実行できる任意の機械、及びそれらの任意の組み合わせを含むが、それらに限定されない。一例では、コンピューティングデバイスは、キオスクを含んでもよく、且つ/或いはキオスクに含まれてもよい。
【0064】
図8は、制御システムに、本開示の任意の1つ又は複数の態様及び/又は方法論を実行させるための命令のセットが実行され得るコンピュータシステム800の例示的な形態のコンピューティングデバイスの一実施形態の図表示を示す。複数のコンピューティングデバイスが、1つ又は複数のデバイスに、本開示の任意の1つ又は複数の態様及び/又は方法論を実行させるための特別に構成されている命令のセットを実行するために利用され得ることも考慮される。コンピュータシステム800は、バス812を介して、互いに、及び他のコンポーネントと通信するプロセッサ804及びメモリ808を含む。バス812は、任意の様々なバスアーキテクチャを使用して、メモリバス、メモリコントローラ、周辺バス、ローカルバス、及びそれらの任意の組み合わせを含むが、それらに限定されない、任意のいくつかのタイプのバス構造を含んでもよい。
【0065】
メモリ808は、ランダムアクセスメモリコンポーネント、読み取り専用コンポーネント、及びそれらの任意の組み合わせを含むが、それらに限定されない、様々なコンポーネント(例えば、機械可読媒体)を含んでもよい。一例では、起動中のような、コンピュータシステム800内の要素間で情報を転送するのに役立つ基本ルーチンを含む、基本入出力システム816(BIOS)が、メモリ808に格納されてもよい。メモリ808はまた、本開示の任意の1つ又は複数の態様及び/又は方法論を具体化する命令(例えば、ソフトウェア)820を含んでもよい(例えば、1つ又は複数の機械可読媒体に格納される)。別の例では、メモリ808は、オペレーティングシステム、1つ又は複数のアプリケーションプログラム、他のプログラムモジュール、プログラムデータ、及びそれらの任意の組み合わせを含むが、それらに限定されない、任意の数のプログラムモジュールをさらに含んでもよい。
【0066】
コンピュータシステム800はまた、記憶デバイス824を含んでもよい。記憶デバイス(例えば、記憶デバイス824)の例は、ハードディスクドライブ、磁気ディスクドライブ、光学媒体と組み合わせた光ディスクドライブ、ソリッドステートメモリデバイス、及びそれらの任意の組み合わせを含むが、それらに限定されない。記憶デバイス824は、適切なインターフェース(図示せず)によってバス812に接続されてもよい。例示的なインターフェースは、SCSI、アドバンスドテクノロジーアタッチメント(ATA)、シリアルATA、ユニバーサルシリアルバス(USB)、IEEE1394(FIREWIRE)、及びそれらの任意の組み合わせを含むが、それらに限定されない。一例では、記憶デバイス824(又はその1つ又は複数のコンポーネント)は、(例えば、外部ポートコネクタ(図示せず)を介して)コンピュータシステム800と取り外し可能にインターフェースされてもよい。特に、記憶デバイス824及び関連付けられた機械可読媒体828は、コンピュータシステム800のための機械可読命令、データ構造、プログラムモジュール、及び/又は他のデータの不揮発性且つ/或いは揮発性の記憶装置を提供してもよい。一例では、ソフトウェア820は、完全に或いは部分的に、機械可読媒体828内に存在してもよい。別の例では、ソフトウェア820は、完全に或いは部分的に、プロセッサ804内に存在してもよい。
【0067】
コンピュータシステム800はまた、入力デバイス832を含んでもよい。一実施例では、コンピュータシステム800のユーザは、入力デバイス832を介してコンピュータシステム800にコマンド及び/又は他の情報を入力してもよい。入力デバイス832の例は、英数字入力デバイス(例えば、キーボード)、ポインティングデバイス、ジョイスティック、ゲームパッド、音声入力デバイス(例えば、マイク、音声応答システムなど)、カーソル制御デバイス(例えば、マウス)、タッチパッド、光学スキャナ、ビデオキャプチャデバイス(例えば、スチールカメラ、ビデオカメラ)、タッチスクリーン及びそれらの任意の組み合わせを含むが、それらに限定されない。入力デバイス832は、シリアルインターフェース、パラレルインターフェース、ゲームポート、USBインターフェース、FIREWIREインターフェース、バス812へのダイレクトインターフェース、及びそれらの任意の組み合わせを含むが、それらに限定されない、様々なインターフェース(図示せず)を介してバス812にインターフェースされてもよい。入力デバイス832は、以下でさらに議論される、ディスプレイ836の一部であり得、或いは別個であり得るタッチスクリーンインターフェースを含んでもよい。入力デバイス832は、上述されたように、グラフィカルインターフェースにおいて1つ又は複数のグラフィカル表現を選択するためのユーザ選択デバイスとして利用されてもよい。
【0068】
ユーザはまた、記憶デバイス824(例えば、リムーバブルディスクドライブ、フラッシュドライブなど)及び/又はネットワークインターフェースデバイス840を介して、コンピュータシステム800にコマンド及び/又は他の情報を入力してもよい。ネットワークインターフェースデバイス840のような、ネットワークインターフェースデバイスは、ネットワーク844のような、1つ又は複数の様々なネットワーク、及びそれに接続された1つ又は複数のリモートデバイス848にコンピュータシステム800を接続するために利用されてもよい。ネットワークインターフェースデバイスの例は、ネットワークインターフェースカード(例えば、モバイルネットワークインターフェースカード、LANカード)、モデム、及びそれらの任意の組み合わせを含むが、それらに限定されない。ネットワークの例は、広域ネットワーク(例えば、インターネット、企業ネットワーク)、ローカルエリアネットワーク(例えば、オフィス、建物、キャンパス又は他の比較的小さな地理的空間に関連付けられたネットワーク)、電話ネットワーク、電話/音声プロバイダに関連付けられたデータネットワーク(例えば、移動通信プロバイダのデータ及び/又は音声ネットワーク)、2つのコンピューティングデバイス間の直接接続、及びそれらの任意の組み合わせを含むが、それらに限定されない。ネットワーク844のような、ネットワークは、通信の有線モード及び/又は無線モードを採用してもよい。一般的に、任意のネットワークトポロジーが使用されてもよい。情報(例えば、データ、ソフトウェア820など)は、ネットワークインターフェースデバイス840を介して、コンピュータシステム800へ且つ/或いはコンピュータシステム800から通信されてもよい。
【0069】
コンピュータシステム800は、ディスプレイデバイス836のような、ディスプレイデバイスに表示可能な画像を通信するためのビデオディスプレイアダプタ852をさらに含んでもよい。ディスプレイデバイスの例は、液晶ディスプレイ(LCD)、陰極線管(CRT)、プラズマディスプレイ、発光ダイオード(LED)ディスプレイ、及びそれらの任意の組み合わせを含むが、それらに限定されない。ディスプレイアダプタ852及びディスプレイデバイス836は、本開示の態様のグラフィカル表現を提供するためにプロセッサ804と組み合わせて利用されてもよい。ディスプレイデバイスに加えて、コンピュータシステム800は、オーディオスピーカ、プリンタ、及びそれらの任意の組み合わせを含むが、それらに限定されない、1つ又は複数の他の周辺出力デバイスを含んでもよい。そのような周辺出力デバイスは、周辺インターフェース856を介してバス812に接続されてもよい。周辺機器インターフェースの例は、シリアルポート、USB接続、FIREWIRE接続、パラレル接続、及びそれらの任意の組み合わせを含むが、それらに限定されない。
【0070】
前述は、本発明の例示的な実施形態の詳細な説明である。様々な変更及び追加は、本発明の精神及び範囲から逸脱することなく、行われ得る。上述された様々な実施形態のそれぞれの特徴は、関連付けられた新たな実施形態における多様な特徴の組み合わせを提供するために、必要に応じて他の説明された実施形態の特徴と結び付けられてもよい。さらに、前述は、複数の別個の実施形態を説明し、本明細書で説明されたものは、本発明の原理の適用の単なる例示に過ぎない。さらに、本明細書における特定の方法は、特定の順序で実行されるものとして説明され得、且つ/或いは記載され得、その順序は、本明細書に開示されるような実施形態を達成するために通常の技術内で非常に可変的である。したがって、本説明は、例としてのみに捉えられ、他に本発明の範囲を限定することを意図しない。
【0071】
上述及び特許請求の範囲では、「の少なくとも1つ」又は「の1つ又は複数」のような語句は、要素又は特徴の接続リストに続いて現れ得る。用語「及び/又は(且つ/或いは)」はまた、2つ以上の要素又は特徴のリストにおいて現れ得る。それが使用される文脈によって他に暗示的に或いは明示的に矛盾しない限り、そのような語句は、任意のリストされた要素又は特徴を個別に、或いは、任意の他の列挙された要素又は特徴と組み合わせた任意の列挙された要素又は特徴を意味することが意図される。例えば、語句「A及びBの少なくとも1つ」、「A及びBの1つ又は複数」、及び「A及び/又は(且つ/或いは)B」はそれぞれ、「A単独、B単独、又は、A及びBを一緒に」を意味することが意図される。同様の解釈はまた、3つ以上の項目を含むリストについて意図される。例えば、語句「A、B、及びCの少なくとも1つ」、「A、B、及びCの1つ又は複数」、及び「A、B、及び/又は(且つ/或いは)C」はそれぞれ、「A単独、B単独、C単独、A及びBを一緒に、A及びCを一緒に、B及びCを一緒に、或いは、A及びB及びCを一緒に」を意味することが意図される。さらに、上述及び特許請求の範囲における用語「に基づく」の使用は、列挙されていない特徴又は要素も許容されるように、「に少なくとも部分的に基づく」を意味することが意図される。
【0072】
本明細書で説明された本対象は、所望の構成に依存して、システム、装置、方法、及び/又は物品に具現化され得る。前述の説明で説明された実施形態は、本明細書で説明された本対象と一致する全ての実装を表すものではない。代わりに、それらは、説明された本対象に関連付けられた態様と一致するいくつかの実施例に過ぎない。いくつかの変形が上記で詳細に説明されたが、他の変更又は追加が可能である。特に、本明細書で説明されたものに加えて、さらなる特徴及び/又は変形は、提供され得る。例えば、上述された実装は、開示された特徴の様々な組み合わせ及びサブコンビネーション、及び/又は、上記で開示されたいくつかのさらなる特徴の組み合わせ及びサブコンビネーションを対象とされ得る。さらに、添付の図に描かれ、且つ/或いは本明細書で説明されたロジックフローは、望ましい結果を達成するために、必ずしも示された特定の順序、又は順番を必要としない。他の実装は、以下の特許請求の範囲内であり得る。