(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-02-16
(45)【発行日】2022-02-25
(54)【発明の名称】ビデオ符号化方法、ビデオ符号化装置およびコンピュータプログラム
(51)【国際特許分類】
H04N 19/132 20140101AFI20220217BHJP
H04N 19/14 20140101ALI20220217BHJP
H04N 19/172 20140101ALI20220217BHJP
【FI】
H04N19/132
H04N19/14
H04N19/172
(21)【出願番号】P 2020558668
(86)(22)【出願日】2018-09-29
(86)【国際出願番号】 CN2018108847
(87)【国際公開番号】W WO2019140952
(87)【国際公開日】2019-07-25
【審査請求日】2020-07-15
(31)【優先権主張番号】201810039100.3
(32)【優先日】2018-01-16
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】514187420
【氏名又は名称】テンセント・テクノロジー・(シェンジェン)・カンパニー・リミテッド
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】マオ,シュンアン
【審査官】鉢呂 健
(56)【参考文献】
【文献】中国特許出願公開第107155107(CN,A)
【文献】米国特許出願公開第2012/0294355(US,A1)
【文献】AFONSO, Mariana et al.,Low complexity video coding based on spatial resolution adaptation,2017 IEEE International Conference on Image Processing (ICIP),IEEE,2018年02月22日,pp. 3011-3015,<URL: https://ieeexplore.ieee.org/document/8296835>
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00-19/98
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
ビデオ符号化方法であって、
ビデオ符号化装置の処理回路が、ビデオフレームのフレーム内プリコーディングのコストを計算するステップであって、前記フレーム内プリコーディングのコストが、前記ビデオフレームにおける情報
の量および前記ビデオフレームの複数の符号化ブロックにおける情報の空間相関度を示すステップと、
前記処理回路が、前記フレーム内プリコーディングのコストに基づいて、前記ビデオフレームの量子化パラメータ閾値を設定するステップと、
前記処理回路が、前記ビデオフレームの量子化パラメータ推定値を計算するステップであって、前記量子化パラメータ推定値が、前記ビデオフレームにおける
前記情報の予想圧縮状況を示すステップと、
前記処理回路が、前記量子化パラメータ閾値と前記量子化パラメータ推定値とに基づいて、前記ビデオフレームの目標符号化方式を決定するステップであって、前記目標符号化方式は、フル解像度符号化とダウンサンプリング符号化とを含む複数の符号化方式のうちの1つであるステップと、
を含
み、
前記ビデオフレームにおける前記情報は、前記ビデオフレームにおける画素に対応し、
前記ビデオフレームの前記量子化パラメータ閾値を設定するステップは、
前記フレーム内プリコーディングのコストと前記ビデオフレームの画素数とに基づいて、各画素のフレーム内プリコーディングのコストの平均値を計算するステップと、
前記フレーム内プリコーディングのコストの平均値がコスト閾値より大きい場合、前記量子化パラメータ閾値を第1値に設定するステップと、
前記フレーム内プリコーディングのコストの平均値がコスト閾値より小さい場合、前記量子化パラメータ閾値を第2値に設定するステップであって、前記第1値が前記第2値より大きいステップと、を含む、
ことを特徴とするビデオ符号化方法。
【請求項2】
前記ビデオフレームの前記目標符号化方式を決定するステップは、
前記量子化パラメータ推定値が前記量子化パラメータ閾値より大きい場合、前記目標符号化方式が前記ダウンサンプリング符号化であるということを決定するステップと、
前記量子化パラメータ推定値が前記量子化パラメータ閾値より小さい場合、前記目標符号化方式が前記フル解像度符号化であるということを決定するステップと、を含む、
ことを特徴とする請求項1に記載の方法。
【請求項3】
前記ビデオフレームの前記フレーム内プリコーディングのコストを計算するステップは、
前記ビデオフレームに対してダウンサンプリングを行うステップと、
ダウンサンプリングされたビデオフレームを前記複数の符号化ブロックに分割し、前記複数の符号化ブロックに対してプリコーディングを行い、前記複数の符号化ブロックのプリコーディングのコストを計算するステップと、
前記複数の符号化ブロックの前記プリコーディングのコストの合計に基づいて、前記フレーム内プリコーディングのコストを決定するステップと、を含む、
ことを特徴とする請求項1または2に記載の方法。
【請求項4】
前記ビデオフレームの前記量子化パラメータ推定値を計算するステップは、
前記ビデオフレームがフレームシーケンスの1番目のフレームである場合、前記量子化パラメータ推定値が予め設定された量子化パラメータであるということを決定するステップと、
前記ビデオフレームがフレームシーケンスの1番目のフレームではない場合、エンコーダが使用する符号化モードに基づいて、前記量子化パラメータ推定値を決定するステップと、を含み、
前記符号化モードは、固定画質符号化と固定ビットレート符号化とのうちの1つであり、前記固定画質符号化は、固定のビデオ画質を維持し、前記固定ビットレート符号化は、固定のビデオビットレートを維持する、
ことを特徴とする請求項1~
3のいずれか1項に記載の方法。
【請求項5】
前記符号化モードに基づいて、前記量子化パラメータ推定値を決定するステップは、
前記符号化モードが前記固定画質符号化である場合、前記量子化パラメータ推定値が前記エンコーダの外部プリセット値であるということを決定するステップであって、前記外部プリセット値が、前記エンコーダが予め設定した量子化パラメータであるステップと、
前記符号化モードが固定ビットレート符号化である場合、前記ビデオフレームにおける前記複数の符号化ブロックのうちの符号化ブロックの量子化パラメータを計算し、前記符号化ブロックの量子化パラメータを前記量子化パラメータ推定値として決定するステップであって、前記符号化ブロックが、前記ビデオフレームの1番目の符号化ブロックであるステップと、を含む、
ことを特徴とする請求項
4に記載の方法。
【請求項6】
前記ビデオフレームにおける前記複数の符号化ブロックのうちの前記符号化ブロックの前記量子化パラメータを計算するステップは、
第1量子化パラメータオフセットと第2量子化パラメータオフセットを取得するステップであって、前記第1量子化パラメータオフセットが、ダウンサンプリング符号化の量子化パラメータとフル解像度符号化の量子化パラメータとの差であり、前記第2量子化パラメータオフセットが、Iフレームの量子化パラメータとPフレームの量子化パラメータとの差であるステップと、
前記ビデオフレームの1つ前のフレームの平均量子化パラメータを計算するステップであって、前記平均量子化パラメータが、前記1つ前のフレームにおける複数の符号化ブロックの量子化パラメータの平均値であるステップと、
前記1つ前のフレームがIフレームであり、かつ、前記ダウンサンプリング符号化を使用した場合、前記平均量子化パラメータと、前記第1量子化パラメータオフセットと、第2量子化パラメータオフセットとの合計に基づいて、前記符号化ブロックの量子化パラメータを決定するステップと、
前記1つ前のフレームがIフレームであり、かつ、前記フル解像度符号化を使用した場合、前記平均量子化パラメータと前記第2量子化パラメータオフセットとの合計に基づいて、前記符号化ブロックの量子化パラメータを決定するステップと、
前記1つ前のフレームがPフレームであり、かつ、前記ダウンサンプリング符号化を使用した場合、前記平均量子化パラメータと前記第1量子化パラメータオフセットとの合計に基づいて、前記符号化ブロックの量子化パラメータを決定するステップと、
前記1つ前のフレームがPフレームであり、かつ、前記フル解像度符号化を使用した場合、前記平均量子化パラメータに基づいて、前記符号化ブロックの量子化パラメータを決定するステップと、を含む、
ことを特徴とする請求項
5に記載の方法。
【請求項7】
前記方法は、さらに、
前記ビデオフレームが前記ダウンサンプリング符号化を使用した場合、前記第1量子化パラメータオフセットに基づいて、前記量子化パラメータ推定値を修正するステップと、
修正された量子化パラメータに基づいて、前記ビデオフレームを符号化するステップと、を含む、
ことを特徴とする請求項
6に記載の方法。
【請求項8】
ビデオ符号化装置であって、
処理回路を含み、前記処理回路は、
ビデオフレームのフレーム内プリコーディングのコストを計算するステップであって、前記フレーム内プリコーディングのコストが、前記ビデオフレームにおける情報
の量および前記ビデオフレームの複数の符号化ブロックにおける情報の空間相関度を示すステップと、
前記フレーム内プリコーディングのコストに基づいて、前記ビデオフレームの量子化パラメータ閾値を設定するステップと、
前記ビデオフレームの量子化パラメータ推定値を計算するステップであって、前記量子化パラメータ推定値が、前記ビデオフレームにおける
前記情報の予想圧縮状況を示すステップと、
前記量子化パラメータ閾値と前記量子化パラメータ推定値とに基づいて、前記ビデオフレームの目標符号化方式を決定するステップであって、前記目標符号化方式は、フル解像度符号化とダウンサンプリング符号化とを含む複数の符号化方式のうちの1つであるステップと、を実行するように構成さ
れ、
前記ビデオフレームにおける情報は、前記ビデオフレームにおける画素に対応し、
前記処理回路は、
前記フレーム内プリコーディングのコストと前記ビデオフレームの画素数とに基づいて、各画素のフレーム内プリコーディングのコストの平均値を計算するステップと、
前記フレーム内プリコーディングのコストの平均値がコスト閾値より大きい場合、前記量子化パラメータ閾値を第1値に設定するステップと、
前記フレーム内プリコーディングのコストの平均値がコスト閾値より小さい場合、前記量子化パラメータ閾値を第2値に設定するステップであって、前記第1値が前記第2値より大きいステップと、を実行するように構成される、
ことを特徴とするビデオ符号化装置。
【請求項9】
前記処理回路は、
前記量子化パラメータ推定値が前記量子化パラメータ閾値より大きい場合、前記目標符号化方式が前記ダウンサンプリング符号化であるということを決定するステップと、
前記量子化パラメータ推定値が前記量子化パラメータ閾値より小さい場合、前記目標符号化方式が前記フル解像度符号化であるということを決定するステップと、を実行するように構成される、
ことを特徴とする請求項
8に記載のビデオ符号化装置。
【請求項10】
前記処理回路は、
前記ビデオフレームに対してダウンサンプリングを行うステップと、
ダウンサンプリングされたビデオフレームを前記複数の符号化ブロックに分割し、前記複数の符号化ブロックに対してプリコーディングを行い、前記複数の符号化ブロックのプリコーディングのコストを計算するステップと、
前記複数の符号化ブロックの前記プリコーディングのコストの合計に基づいて、前記フレーム内プリコーディングのコストを決定するステップと、を実行するように構成される、
ことを特徴とする請求項
8または
9に記載のビデオ符号化装置。
【請求項11】
前記処理回路は、
前記ビデオフレームがフレームシーケンスの1番目のフレームである場合、前記量子化パラメータ推定値が予め設定された量子化パラメータであるということを決定するステップと、
前記ビデオフレームがフレームシーケンスの1番目のフレームではない場合、エンコーダが使用する符号化モードに基づいて、前記量子化パラメータ推定値を決定するステップと、を実行するように構成され、
前記符号化モードは、固定画質符号化と固定ビットレート符号化とのうちの1つであり、前記固定画質符号化は、固定のビデオ画質を維持し、前記固定ビットレート符号化は、固定のビデオビットレートを維持する、
ことを特徴とする請求項
8~
10のいずれか1項に記載のビデオ符号化装置。
【請求項12】
前記処理回路は、
前記符号化モードが前記固定画質符号化である場合、前記量子化パラメータ推定値が前記エンコーダの外部プリセット値であるということを決定するステップであって、前記外部プリセット値が、前記エンコーダが予め設定した量子化パラメータであるステップと、
前記符号化モードが固定ビットレート符号化である場合、前記ビデオフレームにおける前記複数の符号化ブロックのうちの符号化ブロックの量子化パラメータを計算し、前記符号化ブロックの量子化パラメータを前記量子化パラメータ推定値として決定するステップであって、前記符号化ブロックが、前記ビデオフレームの1番目の符号化ブロックであるステップと、を実行するように構成される、
ことを特徴とする請求項
11に記載のビデオ符号化装置。
【請求項13】
前記処理回路は、
第1量子化パラメータオフセットと第2量子化パラメータオフセットを取得するステップであって、前記第1量子化パラメータオフセットが、ダウンサンプリング符号化の量子化パラメータとフル解像度符号化の量子化パラメータとの差であり、前記第2量子化パラメータオフセットが、Iフレームの量子化パラメータとPフレームの量子化パラメータとの差であるステップと、
前記ビデオフレームの1つ前のフレームの平均量子化パラメータを計算するステップであって、前記平均量子化パラメータが、前記1つ前のフレームにおける複数の符号化ブロックの量子化パラメータの平均値であるステップと、
前記1つ前のフレームがIフレームであり、かつ、前記ダウンサンプリング符号化を使用した場合、前記平均量子化パラメータと、前記第1量子化パラメータオフセットと、第2量子化パラメータオフセットとの合計に基づいて、前記符号化ブロックの量子化パラメータを決定するステップと、
前記1つ前のフレームがIフレームであり、かつ、前記フル解像度符号化を使用した場合、前記平均量子化パラメータと前記第2量子化パラメータオフセットとの合計に基づいて、前記符号化ブロックの量子化パラメータを決定するステップと、
前記1つ前のフレームがPフレームであり、かつ、前記ダウンサンプリング符号化を使用した場合、前記平均量子化パラメータと前記第1量子化パラメータオフセットとの合計に基づいて、前記符号化ブロックの量子化パラメータを決定するステップと、
前記1つ前のフレームがPフレームであり、かつ、前記フル解像度符号化を使用した場合、前記平均量子化パラメータに基づいて、前記符号化ブロックの量子化パラメータを決定するステップと、を実行するように構成される、
ことを特徴とする請求項
12に記載のビデオ符号化装置。
【請求項14】
前記処理回路は、
前記ビデオフレームが前記ダウンサンプリング符号化を使用した場合、前記第1量子化パラメータオフセットに基づいて、前記量子化パラメータ推定値を修正するステップと、
修正された量子化パラメータに基づいて、前記ビデオフレームを符号化するステップと、を実行するように構成される、
ことを特徴とする請求項
13に記載のビデオ符号化装置。
【請求項15】
コンピュータ
プログラムであって、
少なくとも1つのプロセッサによって実行された場合、前記プロセッサに、
ビデオフレームのフレーム内プリコーディングのコストを計算するステップであって、前記フレーム内プリコーディングのコストが、前記ビデオフレームにおける情報量および前記ビデオフレームの複数の符号化ブロックにおける情報の空間相関度を示すステップと、
前記フレーム内プリコーディングのコストに基づいて、前記ビデオフレームの量子化パラメータ閾値を設定するステップと、
前記ビデオフレームの量子化パラメータ推定値を計算するステップであって、前記量子化パラメータ推定値が、前記ビデオフレームにおける情報の予想圧縮状況を示すステップと、
前記量子化パラメータ閾値と前記量子化パラメータ推定値とに基づいて、前記ビデオフレームの目標符号化方式を決定するステップであって、前記目標符号化方式は、フル解像度符号化とダウンサンプリング符号化とを含む複数の符号化方式のうちの1つであるステップと、を実行さ
せ、
前記ビデオフレームにおける前記情報は、前記ビデオフレームにおける画素に対応し、
前記ビデオフレームの前記量子化パラメータ閾値を設定するステップは、
前記フレーム内プリコーディングのコストと前記ビデオフレームの画素数とに基づいて、各画素のフレーム内プリコーディングのコストの平均値を計算するステップと、
前記フレーム内プリコーディングのコストの平均値がコスト閾値より大きい場合、前記量子化パラメータ閾値を第1値に設定するステップと、
前記フレーム内プリコーディングのコストの平均値がコスト閾値より小さい場合、前記量子化パラメータ閾値を第2値に設定するステップであって、前記第1値が前記第2値より大きいステップと、を含む、
ことを特徴とするコンピュータ
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願への相互参照]
本願は、2018年01月16日に中国特許局に提出された、出願番号が201810039100.3であり、出願名称が「ビデオ符号化方法、装置、デバイスおよび記憶媒体」である中国特許出願の優先権を主張し、その全ての内容が、参照することにより本願に組み込まれる。
[技術分野]
本願の実施例は、ビデオ符号化の技術分野に関し、特に、ビデオ符号化方法、装置、デバイスおよび記憶媒体に関する。
【背景技術】
【0002】
マルチメディア技術の継続的な発展につれて、ビデオのアプリケーションシナリオはますます広くなっている。例えば、ユーザは、ストリーミングビデオをオンラインで視聴することができ、さらに他のユーザとビデオ通話を行うこともできる。
【0003】
ビデオにおけるビデオフレームを符号化する場合、一般的な符号化方式は、フル解像度符号化と、ダウンサンプリング符号化とを含む。フル解像度符号化モードでは、エンコーダは、ビデオフレームを直接に符号化する一方、ダウンサンプリング符号化モードでは、エンコーダは、まず、ビデオフレームをダウンサンプリングして、その後、ダウンサンプリングされたビデオフレームを符号化する。ダウンサンプリングのプロセスでは、画像の一部の細部が失われるため、関連技術では、エンコーダは、ビデオにおけるIフレーム(I frame)に対してフル解像度符号化を行う一方、ビデオにおけるPフレーム(P frame)に対してダウンサンプリング符号化を行う。
【0004】
しかしながら、上記の符号化方式を使用してビデオフレームを符号化する場合、ビデオフレーム自体の画像特徴が考慮されていないため、ビデオ符号化の効果がよくないことを招く。
【発明の概要】
【0005】
本願の実施例は、ビデオ符号化方法、装置、デバイスおよび記憶媒体を提供し、ビデオにおけるIフレームに対してフル解像度符号化を行う一方、ビデオにおけるPフレームに対してダウンサンプリング符号化を行う場合、ビデオフレーム自体の画像特徴が考慮されていないため、ビデオ符号化の効果がよくないことを招く、という課題を解決することができる。技術的な解決策は、以下の通りである。即ち、
一態様では、ビデオ符号化方法が提供される。
【0006】
この方法は、ビデオ符号化装置の処理回路よって実行されることができる。この方法において、ビデオフレームのフレーム内プリコーディングのコストが計算される。前記フレーム内プリコーディングのコストが、前記ビデオフレームにおける情報量および前記ビデオフレームの複数の符号化ブロックにおける情報の空間相関度を示す。前記ビデオフレームの量子化パラメータ閾値が、前記フレーム内プリコーディングのコストに基づいて設定される。前記ビデオフレームの量子化パラメータ推定値が計算される。前記量子化パラメータ推定値が、前記ビデオフレームにおける情報の予想圧縮状況を示す。前記量子化パラメータ閾値と前記量子化パラメータ推定値とに基づいて、前記ビデオフレームの目標符号化方式が決定される。前記目標符号化方式は、フル解像度符号化とダウンサンプリング符号化とを含む複数の符号化方式のうちの1つである。
【0007】
前記ビデオフレームの前記目標符号化方式を決定する一実施例では、前記量子化パラメータ推定値が前記量子化パラメータ閾値より大きい場合、前記目標符号化方式が前記ダウンサンプリング符号化として決定される。前記量子化パラメータ推定値が前記量子化パラメータ閾値より小さい場合、前記目標符号化方式が前記フル解像度符号化として決定される。
【0008】
前記ビデオフレームの前記フレーム内プリコーディングのコストを計算する一実施例では、前記ビデオフレームに対してダウンサンプリングが行われる。ダウンサンプリングされたビデオフレームが前記複数の符号化ブロックに分割され、前記複数の符号化ブロックに対してプリコーディングが行われ、前記複数の符号化ブロックのプリコーディングのコストを計算する。前記複数の符号化ブロックの前記プリコーディングのコストの合計に基づいて、前記フレーム内プリコーディングのコストが決定される。
【0009】
前記ビデオフレームの前記量子化パラメータ閾値を設定する一実施例では、前記フレーム内プリコーディングのコストと前記ビデオフレームの画素数とに基づいて、各画素のフレーム内プリコーディングのコストの平均値が計算される。前記フレーム内プリコーディングのコストの平均値がコスト閾値より大きい場合、前記量子化パラメータ閾値が第1値に設定される。前記フレーム内プリコーディングのコストの平均値がコスト閾値より小さい場合、前記量子化パラメータ閾値が第2値に設定される。前記第1値が前記第2値より大きい。
【0010】
前記ビデオフレームの前記量子化パラメータ推定値を計算する一実施例では、前記ビデオフレームがフレームシーケンスの1番目のフレームである場合、前記量子化パラメータ推定値が予め設定された量子化パラメータとして決定される。前記ビデオフレームがフレームシーケンスの1番目のフレームではない場合、エンコーダが使用する符号化モードに基づいて、前記量子化パラメータ推定値が決定される。前記符号化モードは、固定画質符号化と固定ビットレート符号化とのうちの1つである。前記固定画質符号化は、固定のビデオ画質を維持し、前記固定ビットレート符号化は、固定のビデオビットレートを維持する。
【0011】
前記符号化モードに基づいて、前記量子化パラメータ推定値を決定する一実施例では、前記符号化モードが前記固定画質符号化である場合、前記量子化パラメータ推定値が前記エンコーダの外部プリセット値として決定される。前記外部プリセット値が、前記エンコーダが予め設定した量子化パラメータである。前記符号化モードが固定ビットレート符号化である場合、前記ビデオフレームにおける前記複数の符号化ブロックのうちの符号化ブロックの量子化パラメータが計算され、前記符号化ブロックの量子化パラメータが前記量子化パラメータ推定値として決定される。前記符号化ブロックが、前記ビデオフレームの1番目の符号化ブロックである。
【0012】
前記ビデオフレームにおける前記複数の符号化ブロックのうちの前記符号化ブロックの前記量子化パラメータを計算する一実施例では、第1量子化パラメータオフセットと第2量子化パラメータオフセットが取得される。前記第1量子化パラメータオフセットが、ダウンサンプリング符号化の量子化パラメータとフル解像度符号化の量子化パラメータとの差である。前記第2量子化パラメータオフセットが、Iフレームの量子化パラメータとPフレームの量子化パラメータとの差である。前記ビデオフレームの1つ前のフレームの平均量子化パラメータが計算される。前記平均量子化パラメータが、前記1つ前のフレームにおける複数の符号化ブロックの量子化パラメータの平均値である。前記1つ前のフレームがIフレームであり、かつ、前記ダウンサンプリング符号化を使用した場合、前記平均量子化パラメータと、前記第1量子化パラメータオフセットと、第2量子化パラメータオフセットとの合計に基づいて、前記符号化ブロックの量子化パラメータが決定される。前記1つ前のフレームがIフレームであり、かつ、前記フル解像度符号化を使用した場合、前記平均量子化パラメータと前記第2量子化パラメータオフセットとの合計に基づいて、前記符号化ブロックの量子化パラメータが決定される。前記1つ前のフレームがPフレームであり、かつ、前記ダウンサンプリング符号化を使用した場合、前記平均量子化パラメータと前記第1量子化パラメータオフセットとの合計に基づいて、前記符号化ブロックの量子化パラメータが決定される。前記1つ前のフレームがPフレームであり、かつ、前記フル解像度符号化を使用した場合、前記平均量子化パラメータに基づいて、前記符号化ブロックの量子化パラメータが決定される。
【0013】
一実施例では、前記ビデオフレームが前記ダウンサンプリング符号化を使用した場合、前記第1量子化パラメータオフセットに基づいて、前記量子化パラメータ推定値が修正される。修正された量子化パラメータに基づいて、前記ビデオフレームが符号化される。
【0014】
一実施例では、前記ビデオフレームにおける情報は、前記ビデオフレームにおける画素に対応する。
【0015】
別の態様では、処理回路を含むビデオ符号化装置が提供される。前記処理回路は、ビデオフレームのフレーム内プリコーディングのコストを計算するように構成される。前記フレーム内プリコーディングのコストが、前記ビデオフレームにおける情報量および前記ビデオフレームの複数の符号化ブロックにおける情報の空間相関度を示す。前記処理回路は、前記フレーム内プリコーディングのコストに基づいて、前記ビデオフレームの量子化パラメータ閾値を設定し、前記ビデオフレームの量子化パラメータ推定値を計算するように構成される。記量子化パラメータ推定値が、前記ビデオフレームにおける情報の予想圧縮状況を示す。前記処理回路は、前記量子化パラメータ閾値と前記量子化パラメータ推定値とに基づいて、前記ビデオフレームの目標符号化方式を決定するように構成される。前記目標符号化方式は、フル解像度符号化とダウンサンプリング符号化とを含む複数の符号化方式のうちの1つである。
【0016】
一実施例では、前記処理回路は、前記量子化パラメータ推定値が前記量子化パラメータ閾値より大きい場合、前記目標符号化方式が前記ダウンサンプリング符号化であるということを決定し、前記量子化パラメータ推定値が前記量子化パラメータ閾値より小さい場合、前記目標符号化方式が前記フル解像度符号化であるということを決定するように構成される。
【0017】
一実施例では、前記処理回路は、前記ビデオフレームに対してダウンサンプリングを行うように構成される。前記処理回路は、ダウンサンプリングされたビデオフレームを前記複数の符号化ブロックに分割し、前記複数の符号化ブロックに対してプリコーディングを行い、前記複数の符号化ブロックのプリコーディングのコストを計算するように構成される。前記処理回路は、前記複数の符号化ブロックの前記プリコーディングのコストの合計に基づいて、前記フレーム内プリコーディングのコストを決定するように構成される。
【0018】
一実施例では、前記処理回路は、前記フレーム内プリコーディングのコストと前記ビデオフレームの画素数とに基づいて、各画素のフレーム内プリコーディングのコストの平均値を計算し、前記フレーム内プリコーディングのコストの平均値がコスト閾値より大きい場合、前記量子化パラメータ閾値を第1値に設定し、前記フレーム内プリコーディングのコストの平均値がコスト閾値より小さい場合、前記量子化パラメータ閾値を第2値に設定するように構成される。前記第1値が前記第2値より大きい。
【0019】
一実施例では、前記処理回路は、前記ビデオフレームがフレームシーケンスの1番目のフレームである場合、前記量子化パラメータ推定値が予め設定された量子化パラメータであるということを決定し、前記ビデオフレームがフレームシーケンスの1番目のフレームではない場合、エンコーダが使用する符号化モードに基づいて、前記量子化パラメータ推定値を決定するように構成される。前記符号化モードは、固定画質符号化と固定ビットレート符号化とのうちの1つである。前記固定画質符号化は、固定のビデオ画質を維持し、前記固定ビットレート符号化は、固定のビデオビットレートを維持する。
【0020】
一実施例では、前記処理回路は、前記符号化モードが前記固定画質符号化である場合、前記量子化パラメータ推定値が前記エンコーダの外部プリセット値であるということを決定するように構成され、前記外部プリセット値が、前記エンコーダが予め設定した量子化パラメータである。前記処理回路は、前記符号化モードが固定ビットレート符号化である場合、前記ビデオフレームにおける前記複数の符号化ブロックのうちの符号化ブロックの量子化パラメータを計算し、前記符号化ブロックの量子化パラメータを前記量子化パラメータ推定値として決定するように構成される。前記符号化ブロックが、前記ビデオフレームの1番目の符号化ブロックである。
【0021】
一実施例では、前記処理回路は、第1量子化パラメータオフセットと第2量子化パラメータオフセットを取得するように構成される。前記第1量子化パラメータオフセットが、ダウンサンプリング符号化の量子化パラメータとフル解像度符号化の量子化パラメータとの差であり、前記第2量子化パラメータオフセットが、Iフレームの量子化パラメータとPフレームの量子化パラメータとの差である。前記処理回路は、前記ビデオフレームの1つ前のフレームの平均量子化パラメータを計算するように構成される。前記平均量子化パラメータが、前記1つ前のフレームにおける複数の符号化ブロックの量子化パラメータの平均値である。前記処理回路は、前記1つ前のフレームがIフレームであり、かつ、前記ダウンサンプリング符号化を使用した場合、前記平均量子化パラメータと、前記第1量子化パラメータオフセットと、第2量子化パラメータオフセットとの合計に基づいて、前記符号化ブロックの量子化パラメータを決定するように構成される。前記処理回路は、前記1つ前のフレームがIフレームであり、かつ、前記フル解像度符号化を使用した場合、前記平均量子化パラメータと前記第2量子化パラメータオフセットとの合計に基づいて、前記符号化ブロックの量子化パラメータを決定するように構成される。前記処理回路は、前記1つ前のフレームがPフレームであり、かつ、前記ダウンサンプリング符号化を使用した場合、前記平均量子化パラメータと前記第1量子化パラメータオフセットとの合計に基づいて、前記符号化ブロックの量子化パラメータを決定するように構成される。前記処理回路は、前記1つ前のフレームがPフレームであり、かつ、前記フル解像度符号化を使用した場合、前記平均量子化パラメータに基づいて、前記符号化ブロックの量子化パラメータを決定するステップと、を実行するように構成される。
【0022】
一実施例では、前記処理回路は、前記ビデオフレームが前記ダウンサンプリング符号化を使用した場合、前記第1量子化パラメータオフセットに基づいて、前記量子化パラメータ推定値を修正するように構成される。前記処理回路は、修正された量子化パラメータに基づいて、前記ビデオフレームを符号化するように構成される。
【0023】
一実施例では、前記ビデオフレームにおける情報は、前記ビデオフレームにおける画素に対応する。
【0024】
別の態様では、ビデオ符号化デバイスが提供されており、前記デバイスは、プロセッサと、メモリとを含み、前記プロセッサには、前記プロセッサによって実行されて上記の態様で説明したビデオ符号化方法を実現するための、少なくとも一つの命令、少なくとも一つのプログラム、コードセットまたは命令セットが記憶されている。
【0025】
別の態様では、コンピュータ可読記憶媒体が提供されており、前記記憶媒体には、プロセッサによって実行されて上記の態様で説明したビデオ符号化方法を実現するための、少なくとも1つの命令、少なくとも1つのプログラム、コードセットまたは命令セットが記憶されている。
【0026】
本願の実施例では、ビデオフレームを符号化する前に、まず、ビデオフレームに対してプリコーディングへの分析を行い、ビデオフレームのフレーム内プリコーディングのコストを得て、これにより、フレーム内プリコーディングのコストに基づいて、ビデオフレームの量子化パラメータ閾値を設定し、どのような符号化方式を使用してビデオフレームを符号化するかということを決定する場合、ビデオフレームの量子化パラメータ推定値と量子化パラメータ閾値との大きさ関係を比較することにより、フル解像度方式またはダウンサンプリング方式を使用してビデオフレームを符号化する。関連技術で使用されている符号化方式と比較して、本実施例において、符号化方式の選択プロセスでは、現在のビデオフレームの細部の豊かさおよび細部の圧縮状況が考慮されたので、最終的に決定された符号化方式は、ビデオフレーム自体の画像特徴に合致し、さらに、ビデオ符号化の効果を向上させる。
【図面の簡単な説明】
【0027】
本発明の実施例における技術的な解決策をより明確に説明するために、以下では、実施例の説明において必要とされる図面を簡単に紹介する。以下の説明における図面は、本発明の一部の実施例を示しており、当業者にとっては、これらの図面から他の図面を得ることもできる。
【
図1】本願の一実施例によって提供されるビデオ符号化方法に係る実施環境の概略図を示す。
【
図2】本願の一実施例によって提供されるビデオ符号化方法のフローチャートを示す。
【
図3】本願の別の実施例によって提供されるビデオ符号化方法のフローチャートを示す。
【
図4】1つ前のフレームに基づいて、現在のビデオフレームの量子化パラメータ推定値を算出するビデオ符号化デバイスの例のフローチャートである。
【
図5】本願の一実施例によって提供されるビデオ符号化装置の構成ブロック図を示す。
【
図6】本願の一実施例によって提供される端末の構成ブロック図を示す。
【発明を実施するための形態】
【0028】
本発明の目的、技術的な解決策および利点をより明確にするために、以下では、図面を参照しながら本発明の実施形態をさらに詳細に説明する。
【0029】
本文で言及される「複数」は、2つ以上を意味する。「および/または」は、関連するオブジェクトの関連関係を記述し、3種類の関係が存在し得るということを表し、例えば、Aおよび/またはBは、Aが単独に存在すること、AとBが同時に存在すること、Bが単独に存在すること、という3つの状況を表すことができる。文字「/」は、一般的に、前後の関連オブジェクトが「または」の関係であるということを表す。
【0030】
理解を容易にするために、以下では、本願の実施例に係る名詞について説明する。
【0031】
ビデオフレームについては、ビデオを構成する基本単位であり、ビデオは、いくつかのビデオフレームによって形成されるフレームシーケンスである。
【0032】
フレーム内プリコーディングについては、ビデオフレームシーケンス画像は空間的に強い相関性があるため、例えば、1つのビデオフレームにおいて、その背景が、同じパターンとテクスチャを有する壁であるため、このビデオフレームが分割されて得られたいくつかの符号化ブロックにおいて、壁に関する符号化ブロックが表示する情報は、同じまたは類似している可能性があり、これら空間相関度が高いブロックに対して、フレーム内プリコーディングの技術を使用してプリコーディングを行うことができる。相応的に、フレーム内プリコーディングのコストは、ビデオフレームにおける細部の豊かさおよび空間相関度を特徴づけるために使用される。ここで、細部の豊かさは、ビデオフレームに格納されている情報量を表し、ビデオフレームに格納されている情報量が大きいほど、その細部の豊かさが高くなり、相応的に、ビデオフレームのフレーム内プリコーディングのコストが高くなる。空間相関度は、ビデオフレームにおける異なる符号化ブロックに格納されている情報の相関度を表すために使用され、異なる符号化ブロックに格納されている情報の相関度が高いほど、ビデオフレームの空間相関度が高くなり、そのフレーム内プリコーディングのコストが低くなる。また、フレーム内プリコーディングのコストが高いほど、所定のビデオ画質を達成するために必要なビットレートが高くなり、逆に、フレーム内プリコーディングのコストが低いほど、必要なビットレートが低くなる。
【0033】
量子化パラメータ(QP:Quantization Parameter)については、ビデオフレームにおける細部の圧縮状況を特徴づけるために使用される。関連するビットレート制御アルゴリズムは、いずれも、離散コサイン変換の量子化パラメータの大きさを調整することにより目標ビットレート制御を実現する。ここで、量子化パラメータが小さいほど、ビデオフレームのビットレートが高くなり、ビデオフレームにおける細部がより多く保持され(即ち、量子化が細かいほど、歪みの度合いが低くなり)、量子化パラメータが大きいほど、ビデオフレームのビットレートが低くなり、ビデオフレームにおける細部の損失がより深刻になる(即ち、量子化が粗いほど、歪みの度合いが高くなる)。通常、量子化パラメータの値の範囲は、0から51までである。
【0034】
固定画質符号化については、1つのビデオ符号化モードであり、固定画質符号化を使用する場合、ビデオフレームにおけるすべての符号化ブロックに対応する量子化パラメータが同じであり、これにより、一致する視覚効果が達成される。
【0035】
固定ビットレート符号化については、1つのビデオ符号化モードであり、固定ビットレート符号化を使用する場合、ビデオのビットレートが一定であり、例えば800kbpsである。
【0036】
Iフレームについては、フレーム内予測フレームとも呼ばれ、ビデオフレームシーケンスにおいて完全に符号化されたビデオフレームを指す。Iフレームを復号化する場合、他のフレームを参照する必要がなく、本フレームのデータのみが必要になる。
【0037】
Pフレームについては、フレーム間予測フレームまたは前方予測フレームとも呼ばれ、1つ前のキーフレーム(IフレームまたはPフレーム)との違いを表すために使用される。Pフレームを復号化する場合、1つ前のキーフレームのデータが必要になる。
【0038】
本願の一実施例によって提供されるビデオ符号化方法に係る実施環境またはシステムの概略図を示す
図1を参照する。この実施環境には、第1端末110と、第2端末120と、サーバ130とが含まれる。
【0039】
ビデオ通信シナリオでは、第1端末110と第2端末120は、ビデオ通信アプリケーションがインストールされた電子デバイスであり、この電子デバイスは、スマートフォン、タブレットコンピュータ、パーソナルコンピュータなどである。第1端末110と第2端末120は、それぞれサーバ130に有線または無線ネットワークを介して接続される。
【0040】
サーバ130は、ビデオ通信アプリケーションのバックグラウンドサーバである。このバックグラウンドサーバは、1つのサーバ、いくつかのサーバによって形成されるサーバクラスタ、またはクラウドコンピューティングセンターであってもよい。
【0041】
第1端末110を使用する第1ユーザと、第2端末120を使用する第2ユーザとがビデオ通信を行う場合、第1端末110は、収集された画像に対してビデオ符号化を行い、サーバ130を介して符号化されたビデオデータを第2端末120に送信し、これにより、第2端末120は、受信されたビデオデータに対して復号化を行って表示する(第2端末120がビデオデータを第1端末110に送信する方式は同じである)。本発明の実施例によって提供されるビデオ符号化方法は、第1端末110または第2端末120に使用されるものである。
【0042】
他の可能なアプリケーションシナリオ(オンラインビデオ再生シナリオ)では、第1端末110と第2端末120には、ビデオ再生アプリケーションがインストールされ、サーバ130は、ビデオ再生アプリケーションのバックグラウンドサーバである。第1端末110と第2端末120は、それぞれサーバ130とネットワーク接続を確立し、サーバ130から送信された、符号化されたビデオデータを受信することにより、このビデオデータに対して復号化を行って再生し、このビデオ符号化方法が、サーバ130に使用されるものである。
【0043】
オプションとして、上記の無線ネットワークまたは有線ネットワークは、標準的な通信技術および/またはプロトコルを使用する。ネットワークは、通常、インターネットであるが、任意のネットワークであってもよいし、ローカルエリアネットワーク(LAN:Local Area Network)、大都市圏ネットワーク(MAN:Metrpolian Area Network)、広域ネットワーク(WAN:Wide Area Network)、モバイル、有線または無線ネットワーク、プライベートネットワークまたは仮想プライベートネットワークの任意の組合せが含まれるが、これらに限定されていない。いくつかの実施例では、ハイパーテキストマークアップ言語(HTML:Hyper Text Mark-up Language)、拡張可能なマークアップ言語(XML:Extensible Markup Language)などを含む技術および/またはフォーマットを使用して、ネットワークによって交換されたデータを表す。さらに、例えばセキュアソケット層(SSL:Secure Socket Layer)、トランスポート層セキュリティ(TLS:Transport Layer Security)、仮想プライベートネットワーク(VPN:Virtual Private Network)、インターネットプロトコルセキュリティ(IPsec:Internet Protocol Security)などの暗号化技術を使用して、すべてまたは一部のリンクを暗号化することができる。他の実施例では、カスタマイズおよび/または専用のデータ通信技術を使用して、上記のデータ通信技術を代替または補足することができる。
【0044】
説明の便宜上、下記の各実施例は、ビデオ符号化方法がビデオ符号化デバイスに適用されることを例として説明を行う。
【0045】
本願の実施例によって提供されるビデオ符号化方法は、ビデオを符号化する必要があるシナリオに使用することができる。この方法は、ビデオ符号化デバイスに用いられ、このビデオ符号化デバイスは、ビデオの符号化と復号化ソフトウェアがインストールされた携帯端末であってもよく、ビデオの符号化と復号化機能を有するサーバであってもよい。上記の方法を使用した後、ビデオ符号化デバイスの符号化品質を向上させることができる。説明の便宜上、下記の各実施例は、ビデオ符号化方法がビデオ符号化デバイスに適用されることを例として説明を行う。
【0046】
オプションとして、このビデオ符号化方法は、以下の製品シナリオに適用することができる。即ち、
インスタント通信アプリケーション中のビデオ通話シナリオについて
インスタント通信アプリケーションは、通常、ビデオ通話機能を提供することができる。ビデオ通話機能を使用する場合、モバイル端末は、収集されたビデオフレームを符号化し、符号化されたビデオフレームデータをサーバに送信し、サーバは、ビデオフレームのデータを相手モバイル端末に送信し、これにより、相手モバイル端末は、それを復号化して表示する。ここで、モバイル端末によるビデオフレームへの符号化品質は、ビデオ通話の品質に直接に影響を及ぼすことがある。モバイル端末は、本願の実施例によって提供されるビデオ符号化方法を使用して、ビデオフレームの量子化パラメータ推定値と量子化パラメータ閾値とに基づいて、ビデオフレーム自体の画像特徴に合致する目標符号化方式を決定し、目標符号化方式を使用してビデオフレームを符号化し、さらに、モバイル端末のビデオ符号化品質を向上させ、最終的に、ビデオ通話の品質を向上させることができる。
【0047】
ビデオ撮影アプリケーション中のビデオ符号化シナリオについて
ビデオ撮影アプリケーションを使用して撮影するプロセスでは、端末は、収集されたビデオフレームを符号化し、これにより、撮影が完了したときに、対応するビデオファイルが生成される。本願の実施例によって提供されるビデオ符号化方法を使用してビデオ符号化を行う場合、ビデオ符号化デバイスは、現在のビデオフレームの画像特徴に基づいて、最適な目標符号化方式を決定し、目標符号化方式を使用して現在のビデオフレームを符号化し、さらに、モバイル端末のビデオ符号化品質を向上させ、最終的に、生成されたビデオファイルの品質を向上させることができる。
【0048】
説明すべきものとして、上記の製品シナリオは、例を挙げて説明することのみを目的とし、他の可能な実施形態では、ビデオ符号化に関するシナリオは、いぞれも、本願の実施例によって提供されるビデオ符号化方法を使用することができ、本願の実施例は、これに対して限定していない。
【0049】
本願の一実施例によって提供されるビデオ符号化方法のフローチャートを示す
図2を参照し、本実施例は、このビデオ符号化方法がビデオ符号化デバイスに適用されることを例として説明を行い、この方法は、下記のステップを含むことができる。
【0050】
ステップ201では、ビデオ符号化デバイスは、ビデオフレームのフレーム内プリコーディングのコストを計算する。フレーム内プリコーディングのコストが、ビデオフレームにおける細部の豊かさおよび空間相関度を特徴づけるために使用される。例えば、フレーム内プリコーディングのコストは、ビデオフレームにおける情報量および/またはビデオフレームの複数の符号化ブロックにおける情報の空間相関度を示すことができる。情報量は、ビデオフレームにおける細部の量に対応することができる。ビデオフレームにおける情報は、ビデオフレームにおける画素に対応することができる。
【0051】
ビデオフレームのフレーム内プリコーディングのコストは、符号化時に必要なビットレートに関連し、フレーム内プリコーディングのコストが大きいほど、ビデオフレームを特徴づけるための細部が豊富になって、細部の空間相関度が低くなり、そのため、一定のビデオ画質を達成するために、符号化時に必要なビットレートが高くなり、逆に、フレーム内プリコーディングのコストが小さいほど、符号化時に必要なビットレートが低くなる。
【0052】
ビデオフレームシーケンスにおけるビデオフレームを取得した後、ビデオ符号化デバイスは、このビデオフレームがIフレームであると仮定し、ビデオフレームに対してフレーム内プリコーディングへの分析を行い、これにより、ビデオフレームのフレーム内プリコーディングのコストを計算し、その後、フレーム内プリコーディングのコストに基づいて、このビデオフレームに対する量子化パラメータ閾値を設定する。
【0053】
フレーム内プリコーディングへの分析を行う際に使用する具体的な方式について、1つの可能な実施形態では、このステップは、以下のステップを含む。
【0054】
一、ビデオフレームに対してダウンサンプリングを行う。
【0055】
オプションとして、ビデオ符号化デバイスは、ビデオフレームに対して2:1のダウンサンプリングを行い、即ち、ビデオフレームの長さと幅とを同時に2分の1に縮小し、ダウンサンプリングされたビデオフレームを得る。ここで、ビデオ符号化デバイスは、直接平均、バイキュービック補間(bicubic interpolation)、バイリニア補間(bilinear interpolation)などのアルゴリズムを使用してダウンサンプリングを行うことができ、この実施例は、ダウンサンプリングが使用する具体的なアルゴリズムおよびダウンサンプリングの比率に対して限定していない。
【0056】
二、ダウンサンプリングされたビデオフレームを複数の符号化ブロックに分割し、各符号化ブロックに対してプリコーディングを行い、各符号化ブロックのプリコーディングのコストを計算する。
【0057】
ダウンサンプリングされたビデオフレームについては、プリコーディングへの分析の難しさを低減するために、ビデオ符号化デバイスは、それを所定サイズの符号化ブロックに分割し、さらに、各符号化ブロックに対してプリコーディングを行い、各符号化ブロックのプリコーディングのコストを得る。
【0058】
オプションとして、ビデオ符号化デバイスは、ダウンサンプリングされたビデオフレームを8×8の符号化ブロック(単位が画素である)に分割し、各符号化ブロックのプリコーディングのコストを順次に計算する。説明すべきものとして、ダウンサンプリングされたビデオフレームの長さまたは幅が8の整数倍ではない場合、ビデオ符号化デバイスは、ダウンサンプリングされたビデオフレームに対してエッジ拡張処理を行い、その後、エッジ拡張処理されたビデオフレームに対して分割を行う。
【0059】
プリコーディングのコストへの計算方式について、1つの可能な実施形態では、ビデオ符号化デバイスは、符号化ブロックにおける各画素の予測残差の絶対値の合計を、符号化ブロックのプリコーディングのコストとして決定し、他の可能な実施形態では、ビデオ符号化デバイスは、数式cost=D+λRに基づいて、プリコーディングのコストを計算する。ここで、costは、プリコーディングのコストであり、Dは、歪みの度合いを表し(現在の符号化ブロックにおけるすべての再構成された画像と元の画像と(例えば、全ての画素)の差の絶対値の和を用いて表現することができ)、λは、ラグランジュ定数であり、Rは、符号化ブロックが占有するビット数である。
【0060】
三、各符号化ブロックのプリコーディングのコストの合計をフレーム内プリコーディングのコストとして決定する。
【0061】
各符号化ブロックのプリコーディングのコストを計算した後、ビデオ符号化デバイスは、各プリコーディングのコストを加算し、ビデオフレームのフレーム内プリコーディングのコストIcostを得る。
【0062】
ステップ202では、ビデオ符号化デバイスは、フレーム内プリコーディングのコストに基づいて、ビデオフレームの量子化パラメータ閾値を設定する。
【0063】
ダウンサンプリング符号化方式を使用してビデオ符号化を行う場合、ビデオフレームに対して少なくとも一回のダウンサンプリングおよび一回のアップサンプリングを行う必要があるため、また、アップ/ダウンサンプリングが、いずれも、ビデオフレームにおける細部が失われることをもたらすことがあり、これによって、画像のエッジ領域に鋸歯状の歪みが生じ、ビデオ画質に影響を及ぼし、また、ビデオフレームの情報量が大きいほど、ダウンサンプリング符号化された後の歪みがひどくなる。
【0064】
後に情報量が大きいビデオフレームに対してダウンサンプリング符号化を行うことを避けるために、ビデオ符号化デバイスは、フレーム内プリコーディングのコストに基づいて、現在のビデオフレームの情報量を決定し、さらに、情報量が比較的大きい場合、より大きい量子化パラメータ閾値を設定し、これにより、その後に、このビデオフレームに対しいてフル解像度符号化を行う傾向が強くなるようにして(ビデオフレームの情報損失を避け)、情報量が比較的小さい場合、より小さい量子化パラメータ閾値を設定し、これにより、その後に、このビデオフレームに対してダウンサンプリング符号化を行う傾向が強くなるようにする(ビデオフレームの情報量が比較的少ない場合、ダウンサンプリング符号化が歪みに対する影響は小さい)。
【0065】
ステップ203では、ビデオ符号化デバイスは、ビデオフレームの量子化パラメータ推定値を計算し、量子化パラメータ推定値が、ビデオフレームにおける細部の予想圧縮状況を特徴づけるために使用される。例えば、量子化パラメータ推定値は、ビデオフレームにおける情報の予想圧縮状態を示すことができる。
【0066】
ビデオ符号化デバイスは、ビデオフレームを取得した後、現在のビデオフレームの量子化パラメータ推定値を推定し、これにより、量子化パラメータ推定値に基づいて、現在のビデオフレームにおける細部の予想圧縮状況を決定する。ここで、細部の予想圧縮状況は、細部の予想損失状況を反映するために使用されるものであり、また、細部の予想圧縮状況がより深刻になるほど、損失が予想される細部がより多くなる、ということを示し、相応的に、ビデオフレームの歪みが強化され、かつ、品質が低下になってしまう。
【0067】
1つの可能な実施形態では、ビデオフレームがフレームシーケンスの1番目のフレームである場合、予め設定された量子化パラメータを量子化パラメータ推定値として決定し、ここで、予め設定された量子化パラメータは、固定値であってもよく、ビデオフレームにおける各画素の平均ビットレートから計算されてもよい。
【0068】
ビデオフレームがフレームシーケンスの1番目のフレームではない場合、エンコーダが使用する符号化モードに基づいて、量子化パラメータ推定値を決定し、ここで、符号化モードには、固定画質符号化と固定ビットレート符号化とが含まれる。例えば、符号化モードは、固定画質符号化と固定ビットレート符号化とのうちの1つとすることができる。固定画質符号化とは、固定のビデオ画質を維持するように構成される符号化方式を指し、固定ビットレート符号化とは、固定のビデオビットレートを維持するように構成される符号化方式を指す。
【0069】
説明すべきものとして、上述のステップ203は、ステップ201~202との間に厳密な前後関係が存在しなく、例えば、ステップ203は、ステップ201~202と同時に実行されてもよいし、本実施例は、ステップ203とステップ201~202の実行タイミングについて限定していない。
【0070】
ステップ204では、ビデオ符号化デバイスは、量子化パラメータ閾値と量子化パラメータ推定値に基づいて、ビデオフレームに対応する目標符号化方式を決定し、目標符号化方式には、フル解像度符号化またはダウンサンプリング符号化が含まれる。例えば、目標符号化方式は、フル解像度符号化とダウンサンプリング符号化とを含む複数の符号化方式のうちの1つとすることができる。
【0071】
ビデオフレームの量子化パラメータ閾値と量子化パラメータ推定値を計算した後、ビデオ符号化デバイスは、量子化パラメータ閾値と量子化パラメータ推定値の大きさを比較することにより、ビデオフレームを符号化する際に使用される目標符号化方式を決定する。
【0072】
1つの可能な実施形態では、量子化パラメータ推定値が量子化パラメータ閾値より大きい場合、ビデオ符号化デバイスは、ダウンサンプリング符号化を目標符号化方式として決定し、量子化パラメータ推定値が量子化パラメータ閾値より小さい場合、ビデオ符号化デバイスは、フル解像度符号化を目標符号化方式として決定する。
【0073】
さらに、決定された目標符号化方式に基づいてビデオフレームを符号化した後、ビデオ符号化デバイスは、エンコーダを介して、さらに量子化パラメータ推定値に基づいて、目標符号化方式で符号化されたビデオフレームに対してビットレート制御を行い(ビットレート制御アルゴリズムを使用する)、最終的に、ビデオフレームのデータを出力する。
【0074】
関連技術においてIフレームに対してフル解像度符号化を一括して行う一方、Pフレームに対してダウンサンプリング符号化を一括して行うこととは異なり、本実施例において、ビデオ符号化デバイスは、ビデオフレームの画像特徴に基づいて、画像の細部が比較的多いビデオフレームに対してダウンサンプリング符号化を行うことを避け、これにより、符号化プロセスで発生する歪みを低減し、ビデオ符号化の効果を向上させる。
【0075】
以上より、本実施例では、ビデオフレームを符号化する前に、まず、ビデオフレームに対してプリコーディングへの分析を行い、ビデオフレームのフレーム内プリコーディングのコストを得て、これにより、フレーム内プリコーディングのコストに基づいて、ビデオフレームの量子化パラメータ閾値を設定し、どのような符号化方式を使用してビデオフレームを符号化するかということを決定する場合、ビデオフレームの量子化パラメータ推定値と量子化パラメータ閾値との大きさ関係を比較することにより、フル解像度方式またはダウンサンプリング方式を使用してビデオフレームを符号化する。関連技術で使用されている符号化方式と比較して、本実施例では、符号化方式の選択プロセスでは、現在のビデオフレームの細部の豊かさおよび細部の圧縮状況が考慮されたので、最終的に決定された符号化方式は、ビデオフレーム自体の画像特徴に合致し、さらに、ビデオ符号化の効果を向上させる。
【0076】
本願の他の実施例によって提供されるビデオ符号化方法のフローチャートを示す
図3を参照し、本実施例は、このビデオ符号化方法がビデオ符号化デバイスに適用されることを例として説明を行い、この方法は、下記のステップを含むことができる。
【0077】
ステップ301では、ビデオ符号化デバイスは、ビデオフレームのフレーム内プリコーディングのコストを計算し、フレーム内プリコーディングのコストが、ビデオフレームにおける細部の豊かさおよび空間相関度を特徴づけるために使用される。
【0078】
本ステップの実施形態は、上記ステップ201と同様であり、本実施例は、ここでは説明しない。
【0079】
ステップ302では、ビデオ符号化デバイスは、フレーム内プリコーディングのコストとビデオフレームの画素数とに基づいて、各画素のフレーム内プリコーディングのコストの平均値を計算する。
【0080】
1つの可能な実施形態では、現在のビデオフレームの情報量(即ち、ビデオフレームの細部の複雑さ)を反映するために、ビデオ符号化デバイスは、さらに、フレーム内プリコーディングのコストと、現在のビデオフレームにおける画素ポイントの数(即ち、画素数)とに基づいて、各画素ポイントのフレーム内プリコーディングのコストの平均値を計算する。
【0081】
ここで、フレーム内プリコーディングのコストの平均値が小さいほど、ビデオフレームに含まれる情報量が少なくなり、画像の細部が少なくなる(即ち、アップ・ダウンサンプリング時の情報損失が少なくなり、ダウンサンプリング符号化を使用するのに適している)ということを表し、逆に、フレーム内プリコーディングのコストの平均値が大きいほど、ビデオフレームに含まれる情報量が大きくなり、画像の細部が多くなる(即ち、アップ・ダウンサンプリング時の情報損失が多くなり、フル解像度符号化を使用するのに適している)ということを表す。
【0082】
概略的には、フレーム内プリコーディングのコストの平均値は、
【0083】
【0084】
ここで、Icostは、ビデオフレームのフレーム内プリコーディングのコストであり、widthは、ビデオフレームの水平方向での画素ポイントの数であり、heightは、ビデオフレームの垂直方向での画素ポイントの数である。
【0085】
例えば、ビデオフレームがカメラによって収集された画像フレームである場合、width*heightは、カメラの解像度であり、例えば1080×720である。
【0086】
ステップ303では、フレーム内プリコーディングのコストの平均値が予め設定されたコスト閾値より大きい場合、ビデオ符号化デバイスは、量子化パラメータ閾値を第1値に設定する。
【0087】
ステップ304では、フレーム内プリコーディングのコストの平均値が予め設定されたコスト閾値より小さい場合、ビデオ符号化デバイスは、量子化パラメータ閾値を第2値に設定し、第1値が第2値より大きい。
【0088】
量子化パラメータ閾値を設定する実施形態について、1つの可能な実施形態では、ビデオ符号化デバイスは、コスト閾値を予め設定し、現在のビデオフレームのフレーム内プリコーディングのコストの平均値が予め設定された閾値より大きいかどうかを検出する。それより大きい場合、現在のビデオフレームの情報量が比較的大きいということを表し、その後、フル解像度符号化を選択する傾向が強くなるようにして(ダウンサンプリング符号化時の歪みの度合いが比較的高い)、ビデオ符号化デバイスは、ビデオフレームに対して比較的大きい量子化パラメータ閾値を設定する。それより小さい場合、現在のビデオフレームの情報量が比較的小さいということを表し、その後、ダウンサンプリング符号化を選択する傾向が強くなるようにして、ビデオ符号化デバイスは、ビデオフレームに対して比較的小さい量子化パラメータ閾値を設定する。
【0089】
概略的には、量子化パラメータ閾値QPTHを設定する数式は、以下の通りである。
【0090】
【数2】
他の可能な実施形態では、ビデオ符号化デバイスは、2つ以上のコスト閾値を予め設定し、異なるコスト閾値の区間に対して、異なる量子化パラメータ閾値を設定してもよい。本実施例は、1つのコスト閾値のみを設定することを例として説明を概略的に行うが、これに対して限定していない。
【0091】
上記のステップ301~304により、ビデオ符号化デバイスは、現在のビデオフレーム自体の画像特徴(含まれている情報量の大きさ)に基づいて、現在のビデオフレームに対して、対応する量子化パラメータ閾値を設定する。さらに、ビデオ符号化デバイスは、以下のステップ305~307により、ビデオフレームの量子化パラメータ推定値を計算する。
【0092】
説明すべきものとして、上述のステップ301~304は、ステップ305~307との間に厳密な前後関係が存在しなく、例えば、ステップ301~304は、ステップ305~307と同時に実行されてもよいし、本実施例は、これに対して限定していない。
【0093】
ステップ305では、ビデオフレームがフレームシーケンスの1番目のフレームである場合、ビデオ符号化デバイスは、予め設定された量子化パラメータを量子化パラメータ推定値として決定する。
【0094】
ビデオ符号化デバイスは、ビデオフレームを取得した場合、まず、このビデオフレームがフレームシーケンスの1番目のフレームであるかどうかを検出し、そうである場合、予め設定された量子化パラメータをビデオフレームの量子化パラメータ推定値として決定し、そうではない場合、さらに、エンコーダが使用する符号化モードに基づいて、ビデオフレームの量子化パラメータ推定値を決定し、例えば、次のステップ306または307を実行する。
【0095】
1つの可能な実施形態では、この予め設定された量子化パラメータは、予め設定された固定値(例えば35)であってもよく、また、目標ビットレート、フレームレートおよび解像度に基づいて計算されてもよい。
【0096】
例えば、ビデオ符号化デバイスは、目標ビットレート/フレームレート/解像度の値に基づいて、ビデオフレームにおける各画素ポイントの平均ビットレートを計算し、さらに、平均ビットレートに基づいて1番目のフレームの量子化パラメータ推定値を設定する。ここで、平均ビットレートに基づいて量子化パラメータを設定することは、ビットレート制御アルゴリズムを使用することができ、本実施例は、ここでは説明しない。
【0097】
ステップ306では、ビデオフレームがフレームシーケンスの1番目のフレームではなく、かつ、エンコーダが使用する符号化モードが固定画質符号化である場合、ビデオ符号化デバイスは、エンコーダの外部プリセット値を量子化パラメータ推定値として決定する。
【0098】
現在のビデオフレームがフレームシーケンスの1番目のフレームではない場合、ビデオ符号化デバイスは、現在のビデオフレームがフル解像度符号化を使用していると仮定し、さらに、エンコーダが使用する符号化モードを取得し、これにより、この符号化モードに基づいて、ビデオフレームの量子化パラメータ推定値を設定する。
【0099】
エンコーダが使用する符号化モードが固定画質符号化である場合、エンコーダは統一の量子化パラメータに基づいて符号化を行うので、例えば、ビデオフレーム内のすべての符号化ブロックの量子化パラメータはいずれも同じであるので、ビデオ符号化デバイスは、エンコーダの外部プリセット値(例えば、エンコーダが予め設定した量子化パラメータ)を量子化パラメータ推定値として決定する。
【0100】
ステップ307では、ビデオフレームがフレームシーケンスの1番目のフレームではなく、かつ、エンコーダが使用する符号化モードが固定ビットレート符号化である場合、ビデオ符号化デバイスは、ビデオフレームにおける所定の符号化ブロックの量子化パラメータを計算し、所定の符号化ブロックの量子化パラメータを量子化パラメータ推定値として決定する。
【0101】
エンコーダが使用する符号化モードが固定ビットレート符号化(ビデオフレームの量子化パラメータを調整することにより、出力するビットレートを一定にするように制御する)である場合、ビデオ符号化デバイスは、ビデオフレームにおける所定の符号化ブロックの量子化パラメータを、ビデオフレームの量子化パラメータ推定値として決定し、ここで、この所定の符号化ブロックが、ビデオフレームの1番目の符号化ブロックであってもよい。
【0102】
1つの可能な実施形態では、ビデオ符号化デバイスは、現在のビデオフレームの1つ前のフレームに基づいて、ビデオフレームにおける1番目の符号化ブロックの量子化パラメータを計算し、概略的には、
図4に示すように、本ステップは、以下のステップを含むことができる。
【0103】
ステップ307Aでは、ビデオ符号化デバイスは、第1量子化パラメータオフセットと第2量子化パラメータオフセットを取得し、第1量子化パラメータオフセットが、ダウンサンプリング符号化の量子化パラメータとフル解像度符号化のパラメータとの差であり、第2量子化パラメータオフセットが、Iフレームの量子化パラメータとPフレームの量子化パラメータとの差である。
【0104】
ダウンサンプリング符号化とフル解像度符号化を切り替える際にビデオ画質を安定させてビデオ画質の急変が発生しないように、ビデオ符号化デバイスでは、第1量子化パラメータオフセットQPdeltaが予め設定されており、ここで、第1量子化パラメータのオフセットは、フル解像度符号化の量子化パラメータ(フル解像度符号化を行う際に、ビットレート制御によって使用される量子化パラメータ)と、ダウンサンプリング符号化の量子化パラメータ(ダウンサンプリング符号化を行う際に、ビットレート制御によって使用される量子化パラメータ)との差であり、QPdeltaの値は、5、6または7であってもよい。
【0105】
オプションとして、フル解像度符号化の量子化パラメータ-第1量子化パラメータオフセットの値は、ダウンサンプリング符号化の量子化パラメータとしてもよく、逆に、ダウンサンプリング符号化の量子化パラメータ+第1量子化パラメータオフセットの値は、フル解像度符号化の量子化パラメータとしてもよい。
【0106】
また、ビデオの全体的な圧縮効率を向上させるために、ビデオ符号化デバイスでは、第2量子化パラメータオフセットQPoffset_I/Pが予め設定されており、ここで、第2量子化パラメータオフセットは、Iフレームの量子化パラメータ(Iフレームに対してビットレート制御を行う際に使用される量子化パラメータ)と、Pフレームの量子化パラメータ(Pフレームに対してビットレート制御を行う際に使用される量子化パラメータ)との差であり、QPoffset_I/Pの値は、1、2または3であってもよい。
【0107】
ビデオフレームにおける1番目の符号化ブロックの量子化パラメータを計算する前に、ビデオ符号化デバイスは、第1量子化パラメータオフセットと第2量子化パラメータオフセットを取得する。
【0108】
例えば、ビデオ符号化デバイスは、QPdelta=6、QPoffset_I/P=2を取得する。
【0109】
ステップ307Bでは、ビデオ符号化デバイスは、ビデオフレームの1つ前のフレームの平均量子化パラメータを計算し、平均量子化パラメータが、1つ前のフレームにおける各符号化ブロックの量子化パラメータの平均値である。
【0110】
現在のビデオフレームは1番目のフレームではなく、即ち、1つ前のフレームが存在し、かつ、1つ前のフレームが符号化されたので、1つの可能な実施形態では、ビデオ符号化デバイスは、符号化された情報から1つ前のフレームにおける各符号化ブロックの量子化パラメータを取得し、さらに、各符号化ブロックの量子化パラメータに基づいて、1つ前のフレームの平均量子化パラメータを計算する。連続のビデオフレームの画面が連続性および類似性が存在しているため、ビデオ符号化デバイスは、1つ前のフレームの平均量子化パラメータに基づいて、現在のビデオフレームの量子化パラメータ推定値を決定することができ、これにより、符号化時に消費される処理リソースを低減し、量子化パラメータ推定値の正確性を向上させる。
【0111】
例えば、ビデオ符号化デバイスは、1つ前のフレームの平均量子化パラメータが30であると計算し得る。
【0112】
1つ前のフレームのフレームタイプ(IフレームまたはPフレーム)および使用された符号化方式(フル解像度符号化またはダウンサンプリング符号化)に基づいて、ビデオ符号化デバイスは、1つ前のフレームの平均量子化パラメータを基にして、第1符号化ブロックの量子化パラメータを計算する。
【0113】
オプションとして、1つ前のフレームがIフレームであると検出した場合、ビデオ符号化デバイスは、次のステップ307Cまたは307Dを実行し、1つ前のフレームがPフレームであると検出した場合、ビデオ符号化デバイスは、次のステップ307Eまたは307Fを実行する。
【0114】
ステップ307Cでは、1つ前のフレームがIフレームであり、かつ、ダウンサンプリング符号化を使用した場合、ビデオ符号化デバイスは、平均量子化パラメータと、第1量子化パラメータオフセットと第2量子化パラメータオフセットとの合計を、所定の符号化ブロックの量子化パラメータとして決定する。
【0115】
1つ前のフレームがIフレームであり、かつ、ダウンサンプリング符号化を使用した場合、ビデオ符号化デバイスは、第1量子化パラメータオフセットと第2量子化パラメータオフセットとに基づいて、平均量子化パラメータに対してオフセット計算を行い、所定の符号化ブロックの量子化パラメータを得る。
【0116】
概略的には、ビデオ符号化デバイスは、1つ前のフレームの符号化情報を取得し、この符号化情報は、1つ前のフレームがIフレームであり、かつ、ダウンサンプリング符号化を使用したということを示し、ステップ307Aおよび307Bにおける例を組み合わせて、所定の符号化ブロックの量子化パラメータが30+6+2=38であると計算し得る。
【0117】
ステップ307Dでは、1つ前のフレームがIフレームであり、かつ、フル解像度符号化を使用した場合、ビデオ符号化デバイスは、平均量子化パラメータと第2量子化パラメータオフセットとの合計を、所定の符号化ブロックの量子化パラメータとして決定する。
【0118】
上記ステップ307Cとは異なり、1つ前のフレームがフル解像度符号化を使用した場合、端末は、第1量子化パラメータオフセットを使用して平均量子化パラメータに対してオフセット処理を行う必要がなく、即ち、平均量子化パラメータと第2量子化パラメータとの合計を、所定の符号化ブロックの量子化パラメータとして直接に決定する。
【0119】
概略的には、ステップ307Aおよび307Bにおける例を組み合わせて、1つ前のフレームがIフレームであり、かつ、フル解像度符号化を使用した場合、ビデオ符号化デバイスは、所定の符号化ブロックの量子化パラメータが30+2=32であると計算し得る。
【0120】
ステップ307Eでは、1つ前のフレームがPフレームであり、かつ、ダウンサンプリング符号化を使用した場合、ビデオ符号化デバイスは、平均量子化パラメータと第1量子化パラメータオフセットとの合計を、所定の符号化ブロックの量子化パラメータとして決定する。
【0121】
1つ前のフレームがPフレームであり、かつ、ダウンサンプリング符号化を使用した場合、ビデオ符号化デバイスは、第1量子化パラメータオフセットに基づいて、平均量子化パラメータに対してオフセット計算を行い、所定の符号化ブロックの量子化パラメータを得る。
【0122】
概略的には、ステップ307Aおよび307Bにおける例を組み合わせて、1つ前のフレームがPフレームであり、かつ、ダウンサンプリング符号化を使用した場合、ビデオ符号化デバイスは、所定の符号化ブロックの量子化パラメータが30+6=36であると計算し得る。
【0123】
ステップ307Fでは、1つ前のフレームがPフレームであり、かつ、フル解像度符号化を使用した場合、ビデオ符号化デバイスは、平均量子化パラメータを所定の符号化ブロックの量子化パラメータとして決定する。
【0124】
上記ステップ307Eとは異なり、1つ前のフレームがフル解像度符号化を使用した場合、端末は、第1量子化パラメータオフセットを使用して平均量子化パラメータに対してオフセット処理を行う必要がなく、即ち、平均量子化パラメータを所定の符号化ブロックの量子化パラメータとして直接に決定する。
【0125】
概略的には、ステップ307Aおよび307Bにおける例を組み合わせて、1つ前のフレームがPフレームであり、かつ、フル解像度符号化を使用した場合、ビデオ符号化デバイスは、所定の符号化ブロックの量子化パラメータが30であると計算し得る。
【0126】
ステップ308では、量子化パラメータ推定値が量子化パラメータ閾値より大きい場合、ダウンサンプリング符号化を目標符号化方式として決定する。
【0127】
上記ステップ301~307により現在のビデオフレームの量子化パラメータ閾値と量子化パラメータ推定値を取得した後、ビデオ符号化デバイスは、量子化パラメータ推定値と量子化パラメータ閾値を比較することにより、ビデオフレームに対してどのような符号化方式を使用するかを決定する。
【0128】
例えば、取得された量子化パラメータ閾値が33であり、かつ、量子化パラメータ推定値が36である場合、ビデオ符号化デバイスは、ダウンサンプリング符号化をビデオフレームの目標符号化方式として決定する。
【0129】
ステップ309で、量子化パラメータ推定値が量子化パラメータ閾値より小さい場合、ビデオ符号化デバイスは、フル解像度符号化を目標符号化方式として決定する。
【0130】
例えば、取得された量子化パラメータ閾値が36であり、かつ、量子化パラメータ推定値が32である場合、ビデオ符号化デバイスは、フル解像度符号化をビデオフレームの目標符号化方式として決定する。
【0131】
ステップ310では、ビデオフレームがダウンサンプリング符号化を使用した場合、ビデオ符号化デバイスは、第1量子化パラメータオフセットに基づいて、量子化パラメータ推定値を修正して、修正された量子化パラメータに基づいてビデオフレームを符号化する。
【0132】
上記ステップ309または310により目標符号化方式を決定した後、ビデオ符号化デバイスは、目標符号化方式を使用して現在のビデオフレームを符号化し、符号化されたビデオフレームをエンコーダに入力し、エンコーダは、量子化パラメータ推定値に基づいて、符号化されたビデオフレームに対してビットレート制御を行う。
【0133】
フル解像度符号化/ダウンサンプリング符号化を切り替える際にビデオ画質の急変が発生することを避けるために、ビデオフレームに対してダウンサンプリング符号化を行う場合、エンコーダがビットレート制御を行う前に、ビデオ符号化デバイスは、第1量子化パラメータオフセットに基づいて、量子化パラメータ推定値を修正する。ここで、修正された量子化パラメータ=量子化パラメータ推定値-第1量子化パラメータオフセットである。
【0134】
さらに、固定画質符号化を使用した場合、ダウンサンプリングフレーム(ダウンサンプリング符号化されたビデオフレーム)の量子化パラメータ推定値は、実際に符号化を行い際の量子化パラメータであり、固定ビットレート符号化を使用した場合、ダウンサンプリングフレームに対応する量子化パラメータ推定値は、予め設定された符号化ブロックの量子化パラメータである。
【0135】
本実施例では、予め設定された第1量子化パラメータオフセットを使用して量子化パラメータ推定値を修正し、フル解像度符号化とダウンサンプリング符号化の切り替え際にビデオ画質の急変が発生することを避け、ビデオ画質の安定を維持し、また、第2量子化パラメータオフセットを予め設定することにより、ビデオの全体的な圧縮効率を向上させる。
【0136】
本実施例では、現在のビデオフレームが1番目のフレームではない場合、ビデオ符号化デバイスは、1つ前のフレームの平均量子化パラメータに基づいて、現在のビデオフレームの量子化パラメータ推定値を得て、これにより、量子化パラメータ推定値の正確さを向上させ、さらに、その後に選択される符号化方式の正確さを向上させる。
【0137】
本実施例では、ビデオフレームにおける各画素のフレーム内プリコーディングのコストの平均値を計算し、かつ、フレーム内プリコーディングのコストの平均値が比較的大きい場合、比較的大きい量子化パラメータ閾値を設定することにより、その後にフル解像度符号化を選択する傾向が強くなるようにして、これによって、ビデオフレームの情報量が比較的大きい場合にダウンサンプリング符号化を使用することによって情報損失が大きくなって、ビデオ画面の歪みが発生してしまう、という課題が避けられる。
【0138】
以下は、本発明の装置の実施例であり、装置の実施例に詳細的に説明されていない細部について、上記の逐一対応する方法の実施例を参照することができる。
【0139】
本願の一実施例によって提供されるビデオ符号化装置の構成ブロック図を示す
図5を参照する。このビデオ符号化装置は、ビデオ符号化デバイスの全体または一部として実現されてもよい。この装置は、コスト計算モジュール510と、閾値設定モジュール520と、推定モジュール530と、決定モジュール540とを含む。ビデオ符号化装置のモジュールのうちの1つ以上は処理回路によって実現されることができる。
【0140】
前記コスト計算モジュール510は、ビデオフレームのフレーム内プリコーディングのコストを計算するように構成される。前記フレーム内プリコーディングのコストが、前記ビデオフレームにおける細部の豊かさおよび空間相関度を特徴づけるために使用される。
【0141】
前記閾値設定モジュール520は、前記フレーム内プリコーディングのコストに基づいて、前記ビデオフレームの量子化パラメータ閾値を設定するように構成される。
【0142】
前記推定モジュール530は、前記ビデオフレームの量子化パラメータ推定値を計算するように構成される。前記量子化パラメータ推定値が、前記ビデオフレームにおける細部の予想圧縮状況を特徴づけるために使用される。
【0143】
前記決定モジュール540は、前記量子化パラメータ閾値と前記量子化パラメータ推定値に基づいて、前記ビデオフレームに対応する目標符号化方式を決定するように構成される。前記目標符号化方式には、フル解像度符号化またはダウンサンプリング符号化が含まれる。
【0144】
オプションとして、前記決定モジュール540は、第1決定ユニットと、第2決定ユニットとを含む。
【0145】
前記第1決定ユニットは、前記量子化パラメータ推定値が前記量子化パラメータ閾値より大きい場合、前記ダウンサンプリング符号化を前記目標符号化方式として決定するように構成される。
【0146】
前記第2決定ユニットは、前記量子化パラメータ推定値が前記量子化パラメータ閾値より小さい場合、前記フル解像度符号化を前記目標符号化方式として決定するように構成される。
【0147】
オプションとして、前記コスト計算モジュール510は、ダウンサンプリングユニットと、第3決定ユニットとを含む。
【0148】
前記ダウンサンプリングユニットは、前記ビデオフレームに対してダウンサンプリングを行うように構成される。
【0149】
前記第1計算ユニットは、ダウンサンプリングされたビデオフレームを複数の符号化ブロックに分割して、各符号化ブロックに対してプリコーディングを行い、前記各符号化ブロックのプリコーディングのコストを計算するように構成される。
【0150】
前記第3決定ユニットは、前記各符号化ブロックの前記プリコーディングのコストの合計を、前記フレーム内プリコーディングのコストとして決定するように構成される。
【0151】
オプションとして、前記閾値設定モジュール520は、第2計算ユニットと、第2設定ユニットとを含む。
【0152】
前記第2計算ユニットは、前記フレーム内プリコーディングのコストと前記ビデオフレームの画素数とに基づいて、各画素のフレーム内プリコーディングのコストの平均値を計算するように構成される。
【0153】
前記第1設定ユニットは、前記フレーム内プリコーディングのコストの平均値が予め設定されたコスト閾値より大きい場合、前記量子化パラメータ閾値を第1値に設定するように構成される。
【0154】
前記第2設定ユニットは、前記フレーム内プリコーディングのコストの平均値が予め設定されたコスト閾値より小さい場合、前記量子化パラメータ閾値を第2値に設定するように構成され、前記第1値が前記第2値より大きい。
【0155】
オプションとして、前記推定モジュール530は、第4決定ユニットと、第5決定ユニットとを含む。
【0156】
前記第4決定ユニットは、前記ビデオフレームがフレームシーケンスの1番目のフレームである場合、予め設定された量子化パラメータを前記量子化パラメータ推定値として決定するように構成される。
【0157】
前記第5決定ユニットは、前記ビデオフレームがフレームシーケンスの1番目のフレームではない場合、エンコーダが使用する符号化モードに基づいて、前記量子化パラメータ推定値を決定するように構成される。
【0158】
ここで、前記符号化モードには、固定画質符号化と固定ビットレート符号化が含まれ、前記固定画質符号化とは、固定のビデオ画質を維持する符号化方式を指し、前記固定ビットレート符号化とは、固定のビデオビットレートを維持する符号化方式を指す。
【0159】
オプションとして、第5決定ユニットは、
前記符号化モードが前記固定画質符号化である場合、前記エンコーダの外部プリセット値を前記量子化パラメータ推定値として決定するように構成され、前記外部プリセット値が、前記エンコーダが予め設定した量子化パラメータである。
【0160】
前記第5決定ユニットは、前記符号化モードが固定ビットレート符号化である場合、前記ビデオフレームにおける所定の符号化ブロックの量子化パラメータを計算し、前記所定の符号化ブロックの量子化パラメータを前記量子化パラメータ推定値として決定するように構成され、前記所定の符号化ブロックが、前記ビデオフレームの1番目の符号化ブロックである。
【0161】
オプションとして、前記ビデオフレームにおける所定の符号化ブロックの量子化パラメータを計算することは、
第1量子化パラメータオフセットと第2量子化パラメータオフセットを取得することであって、前記第1量子化パラメータオフセットが、ダウンサンプリング符号化の量子化パラメータとフル解像度符号化の量子化パラメータとの差であり、前記第2量子化パラメータオフセットが、Iフレームの量子化パラメータとPフレームの量子化パラメータとの差であることと、
前記ビデオフレームの1つ前のフレームの平均量子化パラメータを計算することであって、前記平均量子化パラメータが、前記1つ前のフレームにおける各符号化ブロックの量子化パラメータの平均値であることと、
前記1つ前のフレームがIフレームであり、かつ、前記ダウンサンプリング符号化を使用した場合、前記平均量子化パラメータと、前記第1量子化パラメータオフセットと、第2量子化パラメータオフセットとの合計を、前記所定の符号化ブロックの量子化パラメータとして決定することと、
前記1つ前のフレームがIフレームであり、かつ、前記フル解像度符号化を使用した場合、前記平均量子化パラメータと前記第2量子化パラメータオフセットとの合計を、前記所定の符号化ブロックの量子化パラメータとして決定することと、
前記1つ前のフレームがPフレームであり、かつ、前記ダウンサンプリング符号化を使用した場合、前記平均量子化パラメータと前記第1量子化パラメータオフセットとの合計を、所定の符号化ブロックの量子化パラメータとして決定することと、
前記1つ前のフレームがPフレームであり、かつ、前記フル解像度符号化を使用した場合、前記平均量子化パラメータを、前記所定の符号化ブロックの量子化パラメータとして決定することと、を含む。
【0162】
オプションとして、前記装置は、さらに、
前記ビデオフレームが前記ダウンサンプリング符号化を使用した場合、前記第1量子化パラメータオフセットに基づいて、前記量子化パラメータ推定値を修正し、修正された量子化パラメータに基づいて、前記ビデオフレームを符号化する符号化モジュール、を含む。
【0163】
以上のように、本実施例では、ビデオフレームを符号化する前に、まず、ビデオフレームに対してプリコーディングへの分析を行い、ビデオフレームのフレーム内プリコーディングのコストを得て、これにより、フレーム内プリコーディングのコストに基づいて、ビデオフレームの量子化パラメータ閾値を設定し、どのような符号化方式を使用してビデオフレームを符号化するかを決定する場合、ビデオフレームの量子化パラメータ推定値と量子化パラメータ閾値との大きさ関係を比較することにより、フル解像度方式またはダウンサンプリング方式を使用してビデオフレームを符号化する。関連技術で使用されている符号化方式と比較して、本実施例において、符号化方式の選択プロセスでは、現在のビデオフレームの細部の豊かさおよび細部の圧縮状況が考慮されたので、最終的に決定された符号化方式は、ビデオフレーム自体の画像特徴に合致し、さらに、ビデオ符号化の効果を向上させる。
【0164】
本実施例では、予め設定された第1量子化パラメータオフセットを使用して量子化パラメータ推定値を修正し、フル解像度符号化とダウンサンプリング符号化の切り替えによるビデオ画質の急変を避け、ビデオ画質の安定を維持し、また、第2量子化パラメータオフセットを予め設定することにより、ビデオの全体的な圧縮効率を向上させる。
【0165】
本実施例では、現在のビデオフレームが1番目のフレームではない場合、ビデオ符号化デバイスは、1つ前のフレームの平均量子化パラメータに基づいて、現在のビデオフレームの量子化パラメータ推定値を得て、これにより、量子化パラメータ推定値の正確さを向上させ、さらに、その後に選択される符号化方式の正確さを向上させる。
【0166】
本実施例では、ビデオフレームにおける各画素のフレーム内プリコーディングのコストの平均値を計算し、かつ、フレーム内プリコーディングのコストの平均値が比較的大きい場合、比較的大きい量子化パラメータ閾値を設定することにより、その後にフル解像度符号化を選択する傾向が強くなるようにして、これによって、ビデオフレームの情報量が比較的大きい場合にダウンサンプリング符号化を使用することによって情報損失が大きくなって、ビデオ画面の歪みが発生してしまう、という課題が避けられる。
【0167】
説明すべきものとして、上述の実施例によって提供されるビデオ符号化装置は、上述の各機能モジュールの区分のみを例に挙げて説明するが、実際の応用中、必要に応じて、上述の機能を異なる機能モジュールに割り当てて完了させてもよいし、即ち、上述の機能の全部または一部を完了させるように、ビデオ符号化デバイスの内部構成を異なる機能モジュールに分割してもよい。さらに、上記実施例によって提供されるビデオ符号化装置およびビデオ符号化方法の実施例は、同一の構想に属するものとすることができ、その具体的な実現プロセスの詳細内容について、方法の実施例を参照して、ここでは説明しない。
【0168】
図6は、本願の一実施例によって提供される端末600の構成ブロック図を示す。この端末600は、携帯モバイル端末であってもよいし、例えば、スマートフォン、タブレットコンピュータ、MPEG3プレーヤー(Moving Picture Experts Group Audio/Video Layer III、動画専門家圧縮標準オーディオレベル3)、MPEG4プレーヤー(Moving Picture Experts Group Audio/Video Layer IV、動画専門家圧縮標準オーディオレベル4)などであってもよい。端末600は、ユーザデバイス、携帯端末などの他の名称と呼ばれることもある。
【0169】
通常、端末600は、プロセッサ601とメモリ602とを含む。
【0170】
プロセッサ601(例えば、処理回路)は、1つ以上の処理コアを含んでもよく、例えば4コアプロセッサ、8コアプロセッサなどである。プロセッサ601は、DSP(Digital Signal Processing、デジタル信号処理)、FPGA(Field-Programmable Gate Aray、フィールドプログラム可能ゲートアレイ)、PLA(Programmable Logic Aray、プログラム可能論理アレイ)のうちの少なくとも1つのハードウェア形態を使用して実現することができる。プロセッサ601は、メインプロセッサとコプロセッサとを含んでもよく、メインプロセッサが、アウェイク状態でのデータを処理するためのプロセッサであり、CPU(Central Processing Unit、中央プロセッサ)とも呼ばれ、コプロセッサが、スタンバイ状態でのデータを処理するための低消費電力プロセッサである。いくつかの実施例では、プロセッサ601は、GPU(Graphics Processing Unit、画像プロセッサ)と統合されてもよいし、GPUが、ディスプレイが表示する必要がある内容へのレンダリングと描画を担当する。いくつかの実施例では、プロセッサ601は、AI(Artficial Intelligence、人工知能)プロセッサを含んでもよく、このAIプロセッサが、マシン学習に関する計算動作を処理する。
【0171】
メモリ602は、1つ以上のコンピュータ可読記憶媒体を含んでもよく、このコンピュータ可読記憶媒体が、有形で非一時的であり得る。メモリ602は、高速ランダムアクセスメモリと、例えば1つ以上の磁気ディスク記憶デバイス、フラッシュメモリ記憶デバイスなどのような不揮発性メモリとを含んでもよい。いくつかの実施例では、メモリ602における非一時的(または非過渡的)なコンピュータ可読記憶媒体は、少なくとも1つの命令を記憶するために使用され、この少なくとも1つの命令が、プロセッサ601によって実行され、これにより、本願によって提供されるビデオ符号化方法が実現される。
【0172】
いくつかの実施例では、端末600は、さらに、周辺デバイスインターフェース603と、少なくとも1つの周辺デバイスとを含んでもよい。具体的に、周辺デバイスには、無線周波数回路604、タッチディスプレイスクリーン605、カメラコンポーネント606、オーディオ周波数回路607、位置決めコンポーネント608、および電源609のうちの少なくとも1つが含まれる。
【0173】
周辺デバイスインターフェース603は、I/O(Input/Output、入力/出力)に関連する少なくとも1つの周辺デバイスを、プロセッサ601およびメモリ602に接続するために使用されることができる。いくつかの実施例では、プロセッサ601、メモリ602、および周辺デバイスインターフェース603は、同一のチップまたは回路基板に集積され、いくつかの他の実施例では、プロセッサ601、メモリ602、および周辺デバイスインターフェース603のうちのいずれか1つまたは2つは、個別のチップまたは回路基板上で実現されてもよく、本実施例は、これに対して限定していない。
【0174】
無線周波数回路604は、RF(Radio Frequency、無線周波数、電磁信号とも呼ばれる)信号を送受信するために使用される。無線周波数回路604は、電磁信号を介して、通信ネットワークおよび他の通信デバイスと通信する。無線周波数回路604は、電気信号を電磁信号に変換して送信し、あるいは、受信された電磁信号を電気信号に変換する。オプションとして、無線周波数回路604は、アンテナシステム、RFトランシーバ、1つ以上の増幅器、チューナ、発振器、デジタル信号プロセッサ、符号化・復号化チップセット、ユーザIDモジュールカードなどを含む。無線周波数回路604は、少なくとも1つの無線通信プロトコルによって他の端末と通信することができる。この無線通信プロトコルは、ワールドワイドウェブ、大都市圏ネットワーク、イントラネット、各世代のモバイル通信ネットワーク(2G、3G、4G及び5G)、無線LANおよび/または無線(Wireless Fidelity、無線セキュリティ)ネットワークを含むが、これらに限定されていない。いくつかの実施例では、無線周波数回路604は、NFC(Near Field Communication、近距離無線通信)に関する回路を含んでもよく、本願は、これに対して限定していない。
【0175】
タッチディスプレイスクリーン605は、UI(User Interface、ユーザインタフェース)を表示するために使用される。このUIは、図、テキスト、アイコン、ビデオおよびこれらの任意の組み合わせを含んでもよい。タッチディスプレイスクリーン605はまた、タッチディスプレイスクリーン605の表面または表面上のタッチ信号を収集する機能を有する。このタッチ信号は、制御信号としてプロセッサ601に入力して処理することができる。タッチディスプレイスクリーン605は、仮想ボタンおよび/または仮想キーボード(ソフトボタンおよび/またはソフトキーボードとも称される)を提供するために使用される。いくつかの実施例では、タッチディスプレイスクリーン605は、1つであってもよく、端末600のフロントパネルに設置され、他のいくつかの実施例では、タッチディスプレイスクリーン605は、少なくとも2つであってもよく、端末600の異なる表面にそれぞれ設置されてもよく、または折り畳み状に設計されてもよいし、またいくつかの実施例では、タッチディスプレイスクリーン605は、フレキシブルディスプレイスクリーンであってもよく、端末600の曲げ表面または折り畳み面に設置されてもよい。さらに、タッチディスプレイスクリーン605は、非長方形の不規則な図形に設置されてもよく、即ち、異形のスクリーンである。タッチディスプレイスクリーン605は、LCD(Liquid Crystal Display、液晶ディスプレイ)、OLED(Organic Light-Emitting Diode、有機発光ダイオード)などの材質を使用して製造することができる。
【0176】
カメラコンポーネント606は、画像またはビデオを収集するために使用される。オプションとして、カメラコンポーネント606は、フロントカメラとバックカメラとを含む。通常、フロントカメラは、ビデオ通話や自撮りを実現するために使用され、バックカメラは、写真やビデオの撮影を実現するために使用される。いくつかの実施例では、バックカメラは少なくとも2つがあり、それぞれメインカメラ、被写界深度カメラ、広角カメラのうちのいずれか1つであり、これによって、メインカメラと被写界深度カメラの融合により背景ぼかし機能を実現し、メインカメラと広角カメラの融合によりパノラマ撮影及びVR(Virtual Reality、仮想現実)撮影機能を実現するということが実現される。いくつかの実施例では、カメラコンポーネント606は、フラッシュを含んでもよい。フラッシュは、モノクロ温度フラッシュであってもよく、ダブルカラー温度フラッシュであってもよい。ダブルカラー温度フラッシュとは、暖かい光のフラッシュと冷たい光のフラッシュとの組み合わせを指し、異なる色温度での光補償に用いられることができる。
【0177】
オーディオ周波数回路607は、ユーザと端末600との間のオーディオインターフェースを提供するために使用される。オーディオ周波数回路607は、マイクとスピーカとを含んでもよい。マイクロフォンは、ユーザおよび環境の音響波を収集し、音響波を電気信号に変換してプロセッサ601に入力して処理し、または、無線周波数回路604に入力して音声通信を実現する。ステレオ収集またはノイズ低減の目的で、マイクは複数であってもよく、端末600の異なる位置にそれぞれ設置されてもよい。マイクロフォンは、アレイマイクロフォンまたは全方向収集型マイクロフォンであってもよい。スピーカは、プロセッサ601または無線周波数回路604からの電気信号を音響波に変換するために使用される。スピーカは、伝統的な薄膜スピーカであってもよく、圧電セラミックスピーカであってもよい。スピーカが圧電セラミックスピーカである場合は、電気信号を人間の聞こえる音響波に変換できるだけでなく、電気信号を人間の聞こえない音響波に変換して距離測定などの用途を実現できる。いくつかの実施例では、オーディオ周波数回路607は、ヘッドホンジャックを含んでもよい。
【0178】
位置決めコンポーネント608は、ナビゲーションまたはLBS(Location Based Service、位置に基づくサービス)を実現するために、端末600の現在の地理位置を特定するために使用される。位置決めコンポーネント608は、米国のGPS(Global Positioning System、グローバルポジショニングシステム)、中国の北斗システム、またはロシアのガリレオシステムに基づく位置決めコンポーネントであってもよい。
【0179】
電源609は、端末600における各コンポーネントに対して電力を供給するために使用される。電源609は、交流、直流、使い捨て電池、または充電可能な電池であってもよい。電源609が充電可能な電池を含む場合、この充電可能な電池は、有線充電電池または無線充電電池であってもよい。有線充電電池は、有線回線によって充電される電池であり、無線充電電池は、無線コイルによって充電される電池である。この充電可能な電池は、高速充電技術をサポートするために使用されてもよい。
【0180】
いくつかの実施例では、端末600は、1つ以上のセンサー610を含んでもよい。この1つ以上のセンサー610は、加速度センサー611、ジャイロセンサー612、圧力センサー613、指紋センサー614、光学センサー615、および近接センサー616を含むが、これらに限定されていない。
【0181】
加速度センサー611は、端末600で確立された座標系の3つの座標軸での加速度の大きさを検出することができる。例えば、加速度センサー611は、重力加速度の3つの座標軸での成分を検出するために使用されてもよい。プロセッサ601は、加速度センサー611によって収集された重力加速度信号に基づいて、タッチディスプレイスクリーン605が横方向ビューまたは縦方向ビューでユーザインタフェースの表示を行うように制御することができる。加速度センサー611は、ゲームまたはユーザの動きデータの収集にも使用されてもよい。
【0182】
ジャイロセンサー612は、端末600の本体方向および回転角度を検出することができ、ジャイロセンサー612は、加速度センサー611と協働して、ユーザによる端末600への3D動作を収集することができる。プロセッサ601は、ジャイロセンサー612によって収集されたデータに基づいて、モーションセンシング(例えば、ユーザの傾斜操作に応じてUIを変更すること)、撮影時の画像安定、ゲーム制御、および慣性ナビゲーションなどの機能を実現することができる。
【0183】
圧力センサー613は、端末600のサイドフレームおよび/またはタッチディスプレイスクリーン605の下層に設置されてもよい。圧力センサー613が端末600のサイドフレームに設置される場合、ユーザによる端末600への把持信号を検出でき、この把持信号に基づいて、左右の手の識別またはショートカット動作を行うことができる。圧力センサー613がタッチディスプレイスクリーン605の下層に設置される場合、ユーザによるタッチディスプレイスクリーン605への圧力操作に基づいて、UIインタフェースでの操作可能なコントロールへの制御を実現することができる。操作可能なコントロールは、ボタンコントロール、スクロールバーコントロール、アイコンコントロール、メニューコントロールのうちの少なくとも1つを含む。
【0184】
指紋センサー614は、ユーザの指紋を収集することにより、収集された指紋に基づいてユーザのIDを識別するために使用される。ユーザのIDが信頼されたIDであると識別された場合、プロセッサ601は、そのユーザに対して、関連する敏感な操作を実行するように許可し、この敏感な操作が、スクリーンのロック解除、暗号化情報の閲覧、ソフトウェアのダウンロード、支払い、および設定の変更などを含む。指紋センサー614は、端末600の正面、背面、または側面に設置されてもよい。物理的なキーまたはメーカーロゴが端末600に設置される場合、指紋センサー614は、物理的なキーまたはメーカーロゴと統合されてもよい。
【0185】
光学センサー615は、環境光の強度を収集するために使用される。一実施例では、プロセッサ601は、光学センサー615によって収集された環境光の強度に応じて、タッチディスプレイスクリーン605の表示輝度を制御してもよい。具体的に、環境光の強度が比較的高い場合、タッチディスプレイスクリーン605の表示輝度を高くし、環境光の強度が比較的低い場合、タッチディスプレイスクリーン605の表示輝度を低くする。別の実施例では、プロセッサ601は、光学センサー615によって収集された環境光の強度に応じて、カメラコンポーネント606の撮影パラメータを動的に調整することもできる。
【0186】
近接センサー616は、距離センサーとも呼ばれ、通常、端末600の正面に設置される。近接センサー616は、ユーザと端末600の正面との間の距離を収集するために使用される。1つの実施例では、近接センサー616が、ユーザと端末600の正面との間の距離が徐々に小さくなることを検出した場合、プロセッサ601は、タッチディスプレイスクリーン605がスクリーンオン状態からスクリーンオフ状態に切り替わるように制御し、近接センサー616が、ユーザと端末600の正面との間の距離が徐々に大きくなることを検出した場合、プロセッサ601は、タッチディスプレイスクリーン605がスクリーンオフ状態からスクリーンオン状態に切り換えるように制御する。
【0187】
当業者であれば、
図6に示されている構造は一例であり、端末600に対する限定を構成するものではなく、図示しているよりも多いまたは少ないコンポーネントを含んだり、またはいくつかのコンポーネントを組み合わせたり、あるいは異なるコンポーネント配置を使用したりすることができる、ということを理解することができる。
【0188】
本願の実施例は、また、ビデオ符号化デバイスを提供し、このデバイスは、プロセッサと、メモリとを含み、前記プロセッサには、前記プロセッサによってロードされ実行されることで、上記の各実施例によって提供されるビデオ符号化方法を実現するための、少なくとも1つの命令、少なくとも1つのプログラム、コードセットまたは命令セットが記憶されている。
【0189】
本願の実施例は、また、コンピュータ可読記憶媒体を提供し、この記憶媒体は、前記プロセッサによってロードされ実行されることで、上述の各実施例によって提供されるビデオ符号化方法を実現するための、少なくとも1つの命令、少なくとも1つのプログラム、コードセットまたは命令セットが記憶されている。
【0190】
オプションとして、このコンピュータ可読記憶媒体は、リードオンリーメモリ(ROM:Read-Only Memory)、ランダムアクセスメモリ(RAM:Random Access Memory)、固体ハードディスク(SSD:Solid State Drives)または光ディスクなどを含んでもよい。ここで、ランダムアクセスメモリは、抵抗式ランダムアクセスメモリ(ReRAM:Reistance Random Access Memory)と、動的ランダムアクセスメモリ(DRAM:Dynamic Random Access Memory)とを含んでもよい。上記の本願の実施例の番号は、説明のためだけのものであり、実施例の優劣を表すものではない。
【0191】
上記は、本願のより良い実施例だけであり、本発明を限定するものではないし、本発明の精神及び原則内で、実行された任意の修正、均等な置換、改善などは、いずれも、本発明の保護範囲内に含まれるべきである。