JP6714695B2 - 動的な解像度切換えを用いたリアルタイムビデオエンコーダレート制御 - Google Patents

動的な解像度切換えを用いたリアルタイムビデオエンコーダレート制御 Download PDF

Info

Publication number
JP6714695B2
JP6714695B2 JP2018519380A JP2018519380A JP6714695B2 JP 6714695 B2 JP6714695 B2 JP 6714695B2 JP 2018519380 A JP2018519380 A JP 2018519380A JP 2018519380 A JP2018519380 A JP 2018519380A JP 6714695 B2 JP6714695 B2 JP 6714695B2
Authority
JP
Japan
Prior art keywords
encoding
bit rate
resolution
quantization
frame
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018519380A
Other languages
English (en)
Other versions
JP2019501554A (ja
JP2019501554A5 (ja
Inventor
クーセラ、アキ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of JP2019501554A publication Critical patent/JP2019501554A/ja
Publication of JP2019501554A5 publication Critical patent/JP2019501554A5/ja
Application granted granted Critical
Publication of JP6714695B2 publication Critical patent/JP6714695B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/167Position within a video image, e.g. region of interest [ROI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/192Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/192Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive
    • H04N19/194Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive involving only two passes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234363Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the spatial resolution, e.g. for clients with a lower screen resolution
    • H04N21/234372Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the spatial resolution, e.g. for clients with a lower screen resolution for performing aspect ratio conversion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/23439Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements for generating different versions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

本開示は、動的な解像度切換えを用いたリアルタイムビデオエンコーダレート制御に関する。
デジタルビデオストリームは、通常、一連のフレームまたは一連の静止画像を使用してビデオを表現する。各フレームは多数のブロックを含むことができ、このことによって、ピクセル毎の色、輝度、または他の属性の値を記述する情報を含むことができる。
典型的なビデオストリームのデータ量は多く、ビデオの送信と格納のためにかなりのコンピューティングリソースや通信リソースを使用する。ビデオデータに含まれるデータが大量であることから、送信及び格納のために高性能圧縮が必要とされる。さらに、利用可能な接続に基づく最適化解像度で品質のよいビデオデータをストリーミングできることが望ましい。
本明細書において、ビデオストリームをエンコードするための目標ビットレートを得るための動的な解像度切換えを使用するシステム、方法、および装置のいくつかの態様を開示する。本開示のある態様に従う装置は、ビデオストリームの複数のフレームのうちの第1のフレームを識別し、その第1のフレームを量子化パラメータを表す第1のビットレートでエンコードし、第1のフレームをエンコードすることに応答して第1のモーション探索領域に対する1つ以上のエンコーダ限界を識別し、第1のビットレートを第1のフレームの目標ビットレートと比較し、量子化パラメータを最小量子化閾値および最大量子化閾値のうちの一方と比較し、第1のビットレートと目標ビットレートとの比較及び量子化パラメータと最小量子化閾値および最大量子化閾値のうちの一方との比較に応答して少なくとも1つのエンコードパラメータを調整し、ビデオストリームの第2のフレームを識別し、その第2のフレームを調整された少なくとも1つのエンコードパラメータを用いてエンコードし、エンコードした第1のフレームおよびエンコードした第2のフレームを出力ビットストリームに送信するように設けられる。
本開示の別の態様による装置は、複数のフレームの入力フレームを識別し、その入力フレームを入力量子化パラメータを使用してエンコードし、その入力フレームのエンコードに応答して、モーション探索領域に対する1つまたは複数のエンコーダ限界を識別し、前記入力フレームのエンコードに応答して複数のビットを生成し、前記複数のビットと、前記入力フレームをエンコードするための目標ビットレートとに基づいて少なくとも1つのエンコードパラメータを調整し、前記少なくとも1つのエンコードパラメータを用いて入力フレームをエンコードすることによってエンコード済みフレームを生成し、そのエンコード済みフレームを出力ビットストリームに送信するように設けられる。
本開示の別の態様による装置は、複数のフレームの入力フレームを識別し、その入力フレームを一定の量子化パラメータを表す第1のビットレートでエンコードし、入力フレームのエンコードに応答してモーション探索領域に対する1つまたは複数のエンコーダ限界を識別し、第1のビットレートを入力フレームの最小目標ビットレートおよび最大目標ビットレートのうちの一方と比較し、第1のビットレートと入力フレームの最小目標ビットレートおよび最大目標ビットレートのうちの一方との比較に応答して、前記少なくとも1つのエンコードパラメータを調整し、前記少なくとも1つのエンコードパラメータを使用して前記入力フレームをエンコードすることによってエンコード済みフレームを生成し、そのエンコード済みフレームを出力ビットストリームに送信するように設けられる。
本明細書の上記および他の箇所に記載の装置は、説明したように装置を設置するためにコンピュータメモリに格納された命令を実行するように構成された少なくとも1つのプロセッサを備えることができる。本開示の態様はまた、対応する方法、および適切なコンピュータシステム上で実行されるときにそのような命令または方法を実行するコンピュータプログラムコードを担持する1つまたは複数の対応するコンピュータ可読媒体を提供する。
本開示の上記した態様及び他の態様は、以下の実施形態の詳細な説明、添付の特許請求の範囲および添付の図面に開示される。
本発明は、添付の図面と併せて以下の詳細な説明を読むとよく理解される。図面中の同じ番号は、特に明記しない限り同様の要素を指す。
最大化された量子化パラメータに起因してオーバーシュートになっているビデオストリームをエンコードするための目標ビットレートを示すグラフ。 最小化された量子化パラメータに起因してアンダーシュートになっているビデオストリームをエンコードするための目標ビットレートを示すグラフ。 ビデオエンコードデコードシステムの概略図。 送信局または受信局を実装できるコンピューティングデバイスの例のブロック図。 ビデオストリームに対するエンコードとそれに続くデコードの典型例の図。 本明細書の教示の一態様によるビデオ圧縮システムのブロック図。 本明細書の教示の別の態様によるビデオ解凍システムのブロック図。 シングルパスエンコードにおける目標エンコード用ビットレートを得るためのプロセスの一例のフローチャート図。 2パスエンコードにおける目標エンコード用ビットレートを得るためのプロセスの一例のフローチャート図。
ビデオエンコーダにおけるレート制御アルゴリズムは、入力データの複雑さが経時的に変化する場合に、エンコーダに一定のビットレートを生成させつづけることを目的としている。一定ビットレートは、先行する一または複数のフレームが生成したビットの量に基づき、フレーム毎の量子化パラメータ(QP)を調整することによって得ることができる。一般に、量子化が高いほどビットレートは低くなり、量子化が低いほどビットレートは高くなる。量子化パラメータは、ビデオストリームのデータがエンコーダによって量子化されるときの度合(scale)を示す。すなわち、より高い量子化パラメータがエンコーダによって使用される場合、その量子化ステージでは、より高い量子化パラメータについてはビデオデータのより高い縮小(reduction)を行い、より低い量子化パラメータについてはビデオデータにおけるより低い縮小を行う。こうして得られる量子化済みビデオデータは、当該データを備えるビデオストリームの一フレームをエンコードするときのビットレートを示す。一般に、ビデオストリームの所与のフレームについて、より高い量子化パラメータを使用するとより低いフレームビットレートが得られ、より低い量子化パラメータを使用するとより高いフレームビットレートが得られる。
しかしながら、ビデオシーケンスの複雑さおよびエンコーダの能力の多様さによって、所与のビデオストリームのエンコードに目標ビットレートを合わせることができない場合がある。これは、QPが既に最大値閾値(例えば、更なる増加が解像度に対するビデオ品質を明白な視覚的アーチファクトを生成することによって低下させる場合のQPの値)にキャップされているのに、まだビットレートが十分に低くなく、結果として、ビットレートのオーバーシュートが生じることが理由であり得る。あるいは、大きなQPの使用によってビデオ品質に有害なコーディングアーチファクトを生じることもある。同様に、所与の帯域幅でユーザに対してビデオ品質を最適化するのが目的であって、QPが最小値閾値(例えば、更なる減少が解像度に対するビデオ品質の向上に影響を及ぼさない場合のQPの値)に到達している場合、ビデオ品質をさらに向上させる方法はないかもしれない。したがって、ユーザーエクスペリエンスは不快となる。
図1A及び図1Bは、最大化された量子化パラメータに起因するオーバーシュートしたビデオストリームをエンコードするための目標ビットレートと、最小化された量子化パラメータに起因するアンダーシュートしたビデオストリームをエンコードするための目標ビットレートとをそれぞれ示すグラフである。横軸は、エンコーダによってエンコードされているビデオストリームのフレームの連続的な進行を示し、縦軸は、所定のフレームに対しエンコーダの量子化ステージで使用される量子化パラメータを示す。ビデオストリームのフレームをエンコードするための最小QP閾値100および最大QP閾値102が目標ビットレート104に対する一定値として示されている。これらの図は、さらに、エンコードしているデータに応じてQP106を単に上昇させたり低下させるだけでは目標ビットレート104が得られないことを示している。フレームビットレート108は、例えば所与のフレームを備える入力データのエンコードの複雑さに起因して変動することがある。
図1Aに示すように、フレームビットレート108は、ビデオストリームのデータが複雑になるにつれて上昇する。フレームビットレート108の上昇に応答して、エンコーダは、ビデオストリームの目標ビットレート104を維持しようとしてQP106を上昇させる。しかしながら、最終的には、QP106は最大QP閾値102に達し、それ以上上昇させることができないのに、エンコードするデータが目標ビットレート104を得るには過剰に多く残っているので、フレームビットレート108はまだ目標ビットレート104に達していない。これは、最大QP閾値102がキャップされているにもかかわらず、フレームビットレート108が目標ビットレート104よりも依然として高いので、ビットレートオーバーシュートと呼ばれる。同様に、図1Bに示すように、エンコーダは、フレームビットレート108が低すぎるので目標ビットレート104が得られないと判断した場合、QP106を減少させることがある。しかしながら、フレームビットレート108が最小QP閾値100に達したにもかかわらず目標ビットレート104の下にとどまっていると、ビットレートアンダーシュートとなる。
したがって、従来のエンコーダは、QPの単なる調整によってビデオデータのエンコード用の一定ビットレートを得られない。さらに、一部のエンコーダはエンコード用のキーフレームを挿入することもあるが、この解決策は、そのキーフレームをコーディングするときにビットレートピークを必然的に引き起こすとの理由の点で少なくとも最適ではない。対照的に、本開示は、エンコード中に解像度を切換えることによってレート制御性能を改善するための動的な基準フレームスケーリングを説明する。そこでレート制御が行われ、例えば、エンコーダが、それ用の予測信号を形成するのに先立って基準フレームを内部的にスケーリングすることによって達成される。ビデオストリームのエンコード用のシングルパスエンコーダおよび2パスエンコーダが説明される。2パスエンコーダでは、第1のパスが、一定の量子化器を使用してビデオストリームのフレームをエンコードし、第2のパスが、どのフレームが複雑でどれが単純であるかを先に知っているフレーム毎のビットを最適に割り当てる。動的基準フレームスケーリングの更なる詳細は、本明細書において、それが実施され得るシステムを参照して最初に説明される。
図2は、ビデオエンコードデコードシステム200の概略図である。送信局202は、例えば図3に記載されているような内部ハードウェア構成を有するコンピュータとすることができるが、送信局202の他の適切な実装も可能である。例えば、送信局202の処理を複数の装置に分散させることができる。
ネットワーク204は、ビデオストリームのエンコードおよびデコードのために送信局202と受信局206とを接続することができる。具体的には、ビデオストリームを送信局202でエンコードすることができ、エンコードされたビデオストリームを受信局206でデコードすることができる。ネットワーク204は、例えば、インターネットとすることができる。ネットワーク204は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、仮想プライベートネットワーク(VPN)、携帯電話ネットワーク、または、送信局202からのビデオストリームを、この例では受信局206へと転送する他の手段であってもよい。
受信局206は、一例では、図3に記載されたような内部ハードウェア構成を有するコンピュータとすることができるが、受信局206の他の適切な実装も可能である。例えば、受信局206の処理を複数の装置に分散させることができる。
ビデオエンコードデコードシステム200の他の実装も可能である。例えば、ある実装例ではネットワーク204を省略することができる。別の実装例では、ビデオストリームをエンコードし、受信局206へまたはメモリを有する任意の他の装置に後で送信するために格納することができる。一実装例では、受信局206は、エンコードされたビデオストリームを(例えば、ネットワーク204、コンピュータバスおよび/または何らかの通信路を介して)受信し、後でデコードするためにそのビデオストリームを記憶する。ある例示的な実装例では、エンコードされたビデオをネットワーク204を介して送信するために、リアルタイム転送プロトコル(RTP)が使用される。別の実装例では、RTP以外のトランスポートプロトコル、例えばHTTPベースのビデオストリーミングプロトコルを使用することができる。
例えばビデオ会議システムで使用される場合、以下に説明するように、ビデオストリームをエンコードおよびデコードする能力を送信局202および/または受信局206に含めてもよい。例えば、受信局206は、ビデオ会議サーバ(例えば、送信局202)からのエンコードされたビデオビットストリームを受信してデコードおよび表示し、さらにそれ自身のビデオビットストリームをエンコードし、他の参加者によるデコード及び視聴のためにビデオ会議サーバに送信するビデオ会議参加者であり得る。
図3は、送信局または受信局を実現できるコンピューティングデバイス300の一例のブロック図である。例えば、コンピューティングデバイス300は、図2の送信局202および受信局206の一方または両方を実装することができる。コンピューティングデバイス300は、複数のコンピューティングデバイスを含むコンピューティングシステムの形態であってもよいし、例えば、携帯電話、タブレットコンピュータ、ラップトップコンピュータ、ノートブックコンピュータ、デスクトップコンピュータ等の単一のコンピューティングデバイスの形態であってもよい。
コンピューティングデバイス300内のCPU302は、従来の中央処理装置とすることができる。あるいは、CPU302は、現在存在しているかまたは今後開発される、情報を操作または処理することができる任意の他のタイプの装置または複数の装置であってよい。なお、開示された実装例は、例えばCPU302などの単一のプロセッサをもって実施することができるが、複数のプロセッサを使用して速度および効率の利点を得てもよい。
コンピューティングデバイス300内のメモリ304は、一実装例では読み出し専用メモリ(ROM)装置またはランダムアクセスメモリ(RAM)装置とすることができる。任意の他の適切なタイプの記憶装置をメモリ304として使用することができる。メモリ304は、CPU302がバス312を使用することによってアクセスされるコードおよびデータ306を含むことができる。メモリ304は、オペレーティングシステム308およびアプリケーションプログラム310をさらに含むことができ、このアプリケーションプログラム310は、CPU302が本明細書で説明する方法を実行できるようにする少なくとも1つのプログラムを含む。例えば、アプリケーションプログラム310は、アプリケーション1〜Nを含むことができ、アプリケーション1〜Nは、本明細書で説明する方法を実行するビデオコーディングアプリケーションをさらに含む。コンピューティングデバイス300は、例えば、モバイルコンピューティングデバイスとともに使用されるメモリカードであってよい二次記憶装置314を備えることもできる。ビデオ通信セッションはかなり多量の情報を含むことがあるので、それらの全体または一部が二次記憶装置314に記憶され、処理のために必要に応じてメモリ304にロードされる。
コンピューティングデバイス300は、ディスプレイ318などの1つまたは複数の出力デバイスを備えることもできる。ディスプレイ318は、一例では、ディスプレイにタッチ入力を感知するように動作可能なタッチ感知要素を組み合わせたタッチ感知ディスプレイであってもよい。ディスプレイ318は、バス312を介してCPU302に結合され得る。ユーザがコンピューティングデバイス300をプログラムするかまたは他の方法で使用することを可能にする他の出力デバイスを、ディスプレイ318に加えてまたはそれに代えて、設けてもよい。出力装置がディスプレイであるかまたはディスプレイを含む場合、ディスプレイは、液晶ディスプレイ(LCD)、ブラウン管(CRT)ディスプレイ、または、OLEDディスプレイのような発光ダイオード(LED)ディスプレイといった様々な手段で実施することができる。
コンピューティングデバイス300は、例えば、カメラ、またはコンピューティングデバイス300を使用しているユーザの画像などの画像を感知することができる現在存在しているかまたは将来開発される任意の他の画像検出装置320といった、画像検出装置320を含んでもよいし画像検出デバイス320と通信してもよい。画像検出装置320は、コンピューティングデバイス300を操作しているユーザを向くように配置され得る。一例では、画像検出装置320の位置および光軸は、視野がディスプレイ318に直接隣接する領域でかつそこからディスプレイ318が見える領域を含むように、構成することができる。
コンピューティングデバイス300は、マイクロフォン、またはコンピューティングデバイス300の近くの音を感知することができる現在存在するかまたは今後開発される任意の他のサウンド検出装置等の、サウンド検出装置322を含んでもよいしサウンド検出装置322と通信してもよい。サウンド検出装置322は、コンピューティング装置300を操作しているユーザを向くように配置され得、ユーザがコンピューティング装置300を操作している間にユーザによってなされた会話や他の発話といった音声を受信するように構成することができる。
なお、図3は、コンピューティングデバイス300のCPU302およびメモリ304を単一のユニットに統合して示しているが、他の構成を利用することもできる。CPU302の機能は、直接的に結合される複数のマシンにまたはローカルエリアネットワークまたは他のネットワークを介して結合される複数のマシンに分散させることができる(各マシンは1つまたは複数のプロセッサを有する)。メモリ304は、コンピューティングデバイス300の動作を実行する複数のマシンのネットワークベースのメモリまたはメモリのような複数のマシンにわたって分散させることができる。なお、コンピューティングデバイス300のバス312は、単一のバスとして示されているが、複数のバスから構成することができる。さらに、二次記憶装置314は、コンピューティング装置300の他の構成要素に直接結合されてもよく、またはネットワークを介してアクセス可能であってよく、メモリカードなどの単一の統合ユニットを備えてもよくまたは複数のメモリカードなどの複数のユニットを備えてもよい。したがって、コンピューティングデバイス300は、多様な構成で実現することができる。
図4は、ビデオストリーム400をエンコードし、続いてデコードする例の図である。ビデオストリーム400は、ビデオシーケンス402を含む。次のレベルでは、ビデオシーケンス402は、多数の隣接するフレーム404を含む。なお、隣接するフレーム404として3つのフレームが示されているが、ビデオシーケンス402は任意の数の隣接するフレーム404を含むことができる。隣接するフレーム404は、個々のフレーム例えばフレーム406へとさらに細分され得る。次のレベルでは、フレーム406を一連のセグメントまたは一連のプレーン408に分割され得る。複数のセグメント408は、例えば、並列処理を可能にする複数のフレームサブセットであってもよい。複数のセグメント408は、ビデオデータを別々の色に分離することができる複数のフレームサブセットであってもよい。例えば、カラービデオデータの一フレーム406は1つの輝度プレーンと2つのクロミナンスプレーンとを含むことができる。複数のセグメント408は異なる解像度でサンプリングされ得る。
フレーム406が複数のセグメント408に分割されているか否かにかかわらず、そのフレーム406は、例えばフレーム406内の16×16画素に対応するデータを含むことができる、複数のブロック410にさらに細分されてよい。複数のブロック410は、ピクセルデータの1つまたは複数のプレーン408からのデータを含むように構成することもできる。複数のブロック410は、4×4ピクセル、8×8ピクセル、16×8ピクセル、8×16ピクセル、16×16ピクセルまたはそれ以上といった、任意の他の適切なサイズとすることができる。特に注記しない限り、ブロックおよびマクロブロックという用語は、本明細書では互換的に使用される。
図5は、ある実装例に従うエンコーダ500のブロック図である。エンコーダ500は、例えばメモリ304などのメモリに格納されたコンピュータソフトウェアプログラムを提供するなどによって、上述したように、送信局202に実装することができる。そのコンピュータソフトウェアプログラムは、CPU302のようなプロセッサによって実行されると、送信局202に図5で説明した方法でビデオデータをエンコードさせる機械命令を含むことができる。エンコーダ500は、例えば送信局202に含まれる専用のハードウェアとして実装することもできる。1つの特に望ましい実装例では、エンコーダ500はハードウェアエンコーダである。エンコーダ500は、ビデオストリーム400を入力として使用してエンコードまたは圧縮されたビットストリーム520を生成する(実線の接続線によって示される)順方向パス内の様々な機能を実行するための以下のステージ、すなわち、イントラ及びインター予測ステージ502、変換ステージ504、量子化ステージ506、およびエントロピーエンコードステージ508を有する。エンコーダ500は、将来のブロックのエンコード用のフレームを再構成するための再構成経路(点線の接続線によって示される)を備えることができる。図5において、エンコーダ500は、再構成経路内の様々な機能を実行するための以下のステージ、すなわち脱量子化(dequantization)ステージ510、逆変換(inverse transform)ステージ512、再構成(reconstruction)ステージ514、およびループフィルタリングステージ516を有する。エンコーダ500の他の構造的変形を使用してビデオストリーム400をエンコードすることができる。
エンコードのためにビデオストリーム400が提示されると、各フレーム406がブロックの単位で処理される。イントラ及びインター予測ステージ502では、各ブロックが、フレーム内予測(イントラ予測とも呼ばれる)またはフレーム間予測(インター予測とも呼ばれる)を使用してエンコードされる。どの場合でも、予測ブロックが形成される。イントラ予測の場合、予測ブロックは、以前にエンコードされ再構成された現フレーム内のサンプルから形成されることができる。インター予測の場合、予測ブロックは、1つまたは複数の以前に構築された基準フレーム内のサンプルから形成されることができる。
次に、依然として図5を参照すると、イントラ及びインター予測ステージ502で現在のブロックから予測ブロックが減算されて残差ブロック(残差とも呼ばれる)を生成することができる。変換ステージ504では、その残差を、ブロックベース変換を使用する例えば周波数領域における変換係数に変換する。量子化ステージ506では、量子化値(quantizer value)または量子化レベル(quantization level)を使用して、変換係数を、量子化済み変換係数と呼ばれる離散量子値に変換する。例えば、その変換係数は、量子化値によって除算され切り捨てられてもよい。次いで、量子化済み変換係数は、エントロピーエンコードステージ508によってエントロピーエンコードされる。エントロピーエンコードされた係数は、ブロックをデコードするために使用される他の情報、例えば、使用される予測のタイプ、変換タイプ、動きベクトルおよび量子化値を備えることができる他の情報と共に、圧縮ビットストリーム520へと出力される。圧縮ビットストリーム520は、可変長コーディング(VLC)または算術コーディングなどの様々な技術を使用してフォーマットされ得る。圧縮ビットストリーム520は、エンコード済みビデオストリームまたはエンコード済みビデオビットストリームとも呼ばれ、これらの用語はここでは互換的に使用される。
図5の再構成経路(点線の接続線によって示される)は、エンコーダ500およびデコーダ600(以下に説明する)の両方が圧縮ビットストリーム520をデコードするために同じ参照フレームを使用することを保証するために使用され得る。この再構成経路は、以下で詳述するデコードプロセス中に生じる機能と似た機能を実行し、それには脱量子化ステージ510で量子化済み変換係数を脱量子化し、逆変換ステージ512で脱量子化済み変換係数を逆変換して微分残差ブロック(微分残差とも呼ばれる)を生成することが含まれる。再構成ステージ414では、イントラ及びインター予測ステージ502で予測された予測ブロックを微分残差に加えて再構成ブロックを作成する。ループフィルタリングステージ516は、ブロック化アーチファクトなどの歪みを低減するために再構成ブロックに適用され得る。
エンコーダ500の他の変形を使用して圧縮ビットストリーム520をエンコードしてよい。例えば、非変換ベースのエンコーダは、あるブロックまたはフレームに対して変換ステージ504なしで残差信号を直接量子化することができる。別の実装例では、エンコーダは、量子化ステージ506及び脱量子化ステージ510を単一ステージへと結合させたものを有することができる。
図6は、別の実装例に従うデコーダ600のブロック図である。デコーダ600は、例えば、メモリ304に格納されたコンピュータソフトウェアプログラムを提供することによって受信局206に実装することができる。このコンピュータソフトウェアプログラムは、CPU302のようなプロセッサによって実行されると受信局206に図6で説明した方法でビデオデータをデコードさせる機械命令を含むことができる。デコーダ600は、例えば、送信局202または受信局206に含まれるハードウェアで実施することもできる。
デコーダ600は、上述のエンコーダ500の再構成経路と同様に、一例では、圧縮ビットストリーム520から出力ビデオストリーム616を生成するための様々な機能を実行するための以下のステージ、すなわち、エントロピーデコードステージ602、脱量子化ステージ604、逆変換ステージ606、イントラ及びインター予測ステージ608、再構成ステージ610、ループフィルタリングステージ612、およびデブロッキング(deblocking)フィルタリングステージ614を備える。圧縮されたビットストリーム520をデコードするためにデコーダ600の他の構造的変形を使用することができる。
デコードのために圧縮ビットストリーム520が提示されると、圧縮ビットストリーム520内のデータ要素がエントロピーデコードステージ602によってデコードされて量子化済み変換係数のセットを生成する。脱量子化ステージ604は、(例えば、量子化済み変換係数に量子化値を乗算することによって)量子化済み変換係数を脱量子化し、逆変換ステージ606は脱量子化済み変換係数を逆変換して、エンコーダ500における逆変換ステージ512によって作成されるものと同一であり得る微分残差を生成する。圧縮ビットストリーム520からデコードされたヘッダ情報を使用すると、デコーダ600は、イントラ及びインター予測ステージ608を使用して、例えばイントラ及びインター予測ステージ502でエンコーダ500において作成されたものと同じ予測ブロックを作成することができる。再構成ステージ610では、予測ブロックが微分残差に加えられて再構成ブロックが作成される。ループフィルタリングステージ612は、ブロッキングアーチファクトを低減させるために再構成ブロックに適用され得る。再構成ブロックに他のフィルタリングを適用することができる。この例では、デブロックフィルタリングステージ614が再構成ブロックに適用されてブロッキング歪を低減し、その結果が出力ビデオストリーム616として出力される。出力ビデオストリーム616は、デコードされたビデオストリームとも呼ばれ、これらの用語は本明細書では互換的に使用される。圧縮ビットストリーム520をデコードするためにデコーダ600の他の変形を使用することができる。例えば、デコーダ600は、デブロッキングフィルタリングステージ614なしで出力ビデオストリーム616を生成し得る。
図7および図8は、それぞれ単一パスエンコードおよび2パスエンコードにおいて一定目標ビットレートを得るための解像度スケーリングを使用するプロセス700および800のフローチャート図である。プロセス700および800は、ビデオストリームのエンコードを補助するために、コンピューティングデバイス300などのシステムに実装することができる。プロセス700および800は、例えば、送信局202または受信局206などのコンピューティングデバイスによって実行されるソフトウェアプログラムとして実装することができる。このソフトウェアプログラムは、CPU302などのプロセッサによって実行されると、コンピュータ装置にプロセス700またはプロセス800のうちの一方を実行させる、メモリ304などのメモリに格納される機械可読命令を含むことができる。プロセス700および800の全体または一部を、ハードウェアを使用して実装することができる。上述のように、いくつかのコンピューティングデバイスは、複数のメモリおよび複数のプロセッサを有してもよく、プロセス700および800のそれぞれのステップまたは動作は、異なるプロセッサおよびメモリを使用して分散されてもよい。本明細書で「プロセッサ」および「メモリ」という用語を単数形で使用することは、1つのプロセッサまたは1つのメモリのみを有するコンピューティングデバイスだけでなく、各々が説明したステップの必ずしもすべてでなくてよい一部のステップを実施するのに使用され得る複数のプロセッサまたはメモリを有するデバイスを包含する。
説明を簡単にするために、各プロセス700および800は、一連のステップまたは動作として示され説明される。しかし、本開示によるステップおよび動作は、様々な順序でおよび/または同時に行われることができる。さらに、本開示によるステップまたは動作は、ここに提示および記載されていない他のステップまたは動作と共に行うことができる。さらに、開示された主題に従って方法を実施するために、図示された全てのステップまたは動作が必要とされるわけではない。プロセス700または800の一方は、入力信号の各フレームに対して繰り返されてもよい。
図7を参照すると、比較的一定の目標ビットレートを得るためにシングルパスエンコードにおける解像度スケーリングを使用するプロセス700は、動作702で、目標ビットレート、初期QP、最小QP閾値、および最大QP閾値のそれぞれの値を設定することによって開始する。これらの値は、ビデオストリームがエンコードされている初期解像度を示すことができる。動作704において、エンコーダは、その初期QPを使用してビデオストリームの第1のフレームをエンコードする。動作706では、第1のフレームのエンコードが目標ビットレートを満たすフレームビットレートをもたらす場合、動作704に戻ってビデオストリームの次のフレームをエンコードするためにエンコーダを準備する。そうでない場合、プロセス700は、動作708のトリガ調整フェーズに進んで、フィルタリングロジックを使用してビデオデータに振動(oscillations)が存在するかどうかを判定する。動作708において振動がない場合、動作704に戻ってビデオストリームの次のフレームをエンコードするためにエンコーダを準備する。そうでない場合、プロセス700は、動作710で開始される調整フェーズに進む。
動作710において、目標ビットレートを満たさないフレームビットレートが、オーバーシュートに起因したものなのかまたはアンダーシュートに起因したものなのかを判定する。例えばビデオストリームがエンコードされている解像度に対してQPが低すぎるので、フレームビットレートが目標ビットレートを超える(オーバーシュートする)ところで、オーバーシュートが発生する。例えばビデオストリームがエンコードされている解像度に対してQPが高すぎるので、フレームビットレートが目標ビットレートより下にある(アンダーシュートする)ところでアンダーシュートが生じる。オーバーシュートまたはアンダーシュートが判定されたかどうかに関わらず、ビデオストリームの品質を改善するために、ビデオストリームの1つまたは複数のエンコードパラメータがこれ以降で調整される。エンコーディングパラメータは、調整されるとビデオストリームの品質または視覚的表現に影響を及ぼす任意の値を含むことができる。ある実装例では、エンコードパラメータには、限定ではないが、QP、ビデオ解像度、最大QP閾値、および最小QP閾値が含まれる。エンコーダによって以下に行われる調整は、ビットレート問題がオーバーシュートまたはアンダーシュートに起因するものであるかどうかに依存する。
動作710で、ビットレートオーバーシュートがあると判定された場合、プロセス700は動作712に進み、QPに現在設定されている値(動作710が1回だけ実行された場合には動作702で設定された初期QPであり得る)が最大QP閾値に現在設定されている値に等しいかどうかが判定される。そうでない場合、QPは動作714で上昇され、動作704に戻り、上昇後のQPを使用してビデオストリームの次のフレームをエンコードするためにエンコーダを準備する。しかしながら、QPの値が最大QP閾値の値と等しい場合、そのQPはビデオストリームの解像度に対する最大有効値に達したので、そのQPをさらに上昇させることはできない。そこで、動作716において、プロセス700はビデオストリームの解像度を低下させる、これには最小QP閾値および最大QP閾値の値をリセットすることが含まれる。動作716は、解像度の低下に基づいてQPの値も低下させる。次に、動作716は、動作704に戻ることによって、新しい解像度およびQP、最小QP閾値、および最大QP閾値を使用して、次のフレームをエンコードするためのエンコーダを準備する。
一方、動作710でビットレートアンダーシュートがあると判定した場合、プロセス700は動作718に進む。そこでは、(動作710が1回だけ実行されたときの動作702で設定された初期QPであり得る)QPに現在設定されている値が最小QP閾値に現在設定されている値に等しいかどうかが判定される。等しくなければ、QPは動作720で低下され、動作704に戻り、低下後のQPを使用してビデオストリームの次のフレームをエンコードするためにエンコーダを準備する。しかしながら、QPの値が最小QP閾値の値と等しい場合、そのQPは、ビデオストリームの解像度に対する最小有効値に達したので、そのQPをさらに低下させることはできない。そこで、動作722において、プロセス700はビデオストリームの解像度を上昇させ、これには最小QP閾値および最大QP閾値の値をリセットすることが含まれる。動作722は解像度の上昇に基づいてQPの値も上昇させる。動作722は、動作704に戻ることによって、新しい解像度およびQP、最小QP閾値、および最大QP閾値を使用して、次のフレームをエンコードするためのエンコーダを準備する。
より高い解像度のソースが利用可能であれば、エンコード用ビットレートが一貫して目標ビットレートをアンダーシュートするか、または目標ビットレートを特定の閾値回数を超えてアンダーシュートするところのビデオ解像度を上昇させることが別の選択肢である。例えば、ユーザが360pの解像度でビデオを見ることを選択したが、当該ユーザの帯域幅ではより高い解像度で視聴できる場合、ビデオ解像度は、そのユーザの接続においてそのユーザがビデオをストリーミングできる最大解像度まで上昇させてよい。
2パスエンコードでは、ビデオストリームのフレームをエンコードするための第1のパスは、一定の量子化パラメータに基づいてエンコードするのに、どのフレームが困難すぎるかまたは容易すぎるかを、例えば、ビデオストリームの第1のフレームに対応する入力フレームをエンコードすることによって生成される複数のビットを検出することによって、判定することを備える。入力フレームが困難すぎるかまたは容易すぎることを生成した複数のビットが示す場合、エンコーダは、対応するフレームをエンコードする第2のパス上でそのビデオストリームの解像度を調整することができる。このようにして、2パスエンコードは、第1のパスで潜在的なインスタンスを識別している間に、第2のパスでビデオストリームを効果的にエンコードするために必要な調整を行うことによって、ほとんどのアンダーシュートおよびオーバーシュートを防止することができる。アンダーシュートの量またはオーバーシュートの量は、解像度が1次元当たりに調整される必要がある度合を示すことができる。
ここで図8を参照すると、比較的一定の目標ビットレートを得るための2パスエンコードにおける解像度スケーリングを使用するためのプロセス800が、目標ビットレートの初期値およびQPの初期値を設定することによって動作802で開始する。動作804では、入力フレームを受信し、設定された目標ビットレートおよびQP値を使用して入力フレームをエンコードする。動作806で入力フレームのエンコードに応答して複数のビットが生成される。この複数のビットは、入力フレームがエンコードされるビットレートを示す。生成されたビットのサイズに応じて、プロセス800は、ビデオ解像度のようなビデオストリームのエンコードパラメータを調整するための調整フェーズに進むことができる。ある実装例では、調整フェーズに進むべきかどうかの判定は、フレームビットレートが、その範囲内でQPを変更しても望ましいビデオ品質(例えば、解像度に対して目に見えるコーディングアーチファクトのないビデオストリーミング)をもたらす特定の範囲の外にあるかどうかに基づいてなされることができる。例えば、フレームビットレートが目標ビットレートの100〜200kbps内にある場合、動作808は、調整フェーズに進まないと判定することができる。調整が行われない場合、プロセス800は動作816に進み、そこでは、エンコードされたフレームが、以前に設定されたQP値に基づいて生成され、その後、エンコードされたフレームは、出力ビデオストリームの一部として動作818で送信される。ある実装例では、動作808における判定は、フラグを使用してコード化することができる。
動作808においてビデオ解像度に対する調整が必要であると判定された場合、プロセス800は動作810に進み、そこでは、調整が必要になったのが、入力フレームエンコード用ビットレートが目標ビットレートのアンダーシュートに起因するのかまたはオーバーシュートに起因するかどうかを判定する。オーバーシュートの場合、動作812で、例えばビデオストリームの解像度を低下させることによって1つ以上のエンコードパラメータが調整される。アンダーシュートの場合、動作814で、例えばビデオストリームの解像度を上昇させることによって1つ以上のエンコードパラメータが調整される。ある実装例では、ビデオ解像度に対する調整は、ビットレート偏差百分率の重み付けされた逆数の平方根、例えばSnew=√(1/(α×Bdev))を用いて判定されてよく、ここで、Snewは、解像度の新しいスケーリング/ディメンション比を表し、αは重み付けパラメータを表し、Bdevはビットレート範囲からのずれを表す。例えば、入力フレームのエンコードが20%未満のオーバーシュートをもたらし、重み付けパラメータが1に設定される場合、1280×720の解像度を有するビデオストリームの入力フレームは、Snew=√(1/(1×1.2))=0.913とスケーリングされ、その結果、1168×657の新しいストリーミング解像度が得られる。同様に、入力フレームをエンコードすると50パーセントの深刻なアンダーシュートが発生する場合、スケーリング比は、Snew=√(1/(1×0.5))=1.414となる。このようにして、解像度ビデオストリームは調整されて1810×1018でエンコードされる。重みパラメータαを1より大きく調整すると、新しいフレームビットレートは許容範囲の中間値(例えば、100〜200kbpsの範囲に対して150kbps)に近い値にエンコードされることになる。
ビデオ解像度に対する調整が行われた後、プロセス800は動作816に進み、そこでは入力フレームに対応するエンコード済みフレームがビデオストリームの第2パスの一部としてエンコードされる。エンコード済みフレームは、その後、出力ビデオストリームの一部として、動作818で送信される。
解像度スケーリングは、上記の利点以外のさらなる利点を提供し得る。例えば、解像度スケーリングは、確立されたモーション探索ウィンドウ領域でのインター予測に対して許容可能な動きベクトルを見つけられなかったエンコーダに対して性能を改善することができる。これは、典型的には、イントラ予測の過度使用に起因する不十分な圧縮をもたらすこととなる。このような状況でビデオストリームを小スケール化すること(downscaling)によってビットレートは低下する。というのは、エンコードするピクセルが少なく、ビデオストリーム内の絶対的動き量も少なくなるからである。これにより、検索ウィンドウの利用性が向上することがある。
ある実装例では、動作810でのアンダーシュートの判定に応答して、動作814は、モーション探索領域のサイズを減少させることを備え、これは、ビデオ解像度の低下に代えてまたは加えて行うこともできる。同様に、動作810でのオーバーシュートの判定に応答して、動作812は、ビデオ解像度を上昇させる代わりにまたはそれに加えて、モーション探索領域のサイズを大きくすることを備える。ある実装例では、モーション探索領域のサイズの変更は、入力フレームの特定の色成分に対して、例えばその輝度および/またはクロミナンス画素値に対してのみ行われる。
ある実装例では、例えば、動作804で入力フレームをエンコードすることに応答して、モーション探索領域に対する1つまたは複数のエンコーダ限界を識別することができる。それらエンコーダ限界は、例えば、ビデオストリームが、所与の解像度で高速移動場面を適切に表現するエンコーダ500の能力を超える動き量を含む高速移動場面を含むといった、エンコーダ500によって見つけられた動きベクトルが閾値を超える例を示すことができる。一実装例では、動きベクトルが閾値を超えることをエンコーダ限界が示すことに応答して、ビデオストリームの解像度を低下させる。
一実装例では、モーション探索領域のサイズは変更対象とならない。例えば、エンコーダ500がハードウェアエンコーダとして実施される場合、モーション探索領域をN×Mのサイズに静的に設定してよい。ここで、NおよびMは同じ値であってもよいしまたは異なる値であってもよい。従って、モーション探索領域は、ビデオストリームの解像度がN×Mより大きい場合にのみ、入力フレームの一部をカバーすることができる。モーション探索領域の中点位置を、例えば、カバーされる入力フレームの初期部分の初期基準位置(例えば、コードされるべき現在のブロックまたはスライスの中点位置)に対して定義することができる。しかし、一実装例では、例えば、モーション探索領域が入力フレームの大部分をカバーするようにすることによってエンコーダ500がモーション探索領域内の動きを検出する能力を向上させるために、ビデオストリームの解像度を低下することができる。このように解像度を低下させる判定は(例えば、動作808でエンコードパラメータを調整するかどうかを判定する一部として)、上述したように、例えばモーション探索領域に対する閾値や他のエンコーダ限界に基づいて行うことができる。解像度を下げると、モーション探索領域によって結果的にカバーされる入力フレームの部分の基準位置に基づいて、モーション探索領域の中点位置がリセットされることになる。同様に、ある実装例では、ビデオストリームの解像度は、閾値または他のエンコーダ限界に基づいて上昇されてもよい。例えば、解像度がモーション探索領域のサイズよりも小さい場合(例えば、モーション探索領域が入力フレーム全体より多くをカバーする場合)、エンコーダ500は、ビデオストリームの解像度をモーション探索領域のサイズに等しくなるまで上昇させることができる。したがって、モーション探索領域の中点位置は、適用可能な場合、入力フレームの基準位置にあるかまたはそのまま維持される。本明細書で使用する「中点」という用語は、対応する寸法に対する中心位置を指す。
モーション探索領域に対する1つ以上のエンコーダ限界を図8の2パスエンコードに関して本明細書で説明したが、それらエンコーダ限界は、図7に関して説明したような単一パスエンコードの文脈で適用してよい。例えば、ビデオストリームの第1のフレームのエンコードパラメータを調整することは、(例えば、動作708におけるトリガ調整判定の一部として)モーション探索領域に対するエンコーダ限界を特定すること、およびエンコーダ限界に基づいて解像度を低下させる(または上昇させる)ことを含んでよい。ある実装例では、このように解像度を変更することにより、モーション探索領域の中点位置が、モーション探索領域によって結果的にカバーされる第1のフレームの部分の基準位置に対してリセットされる結果となる。
エンコーダ500がハードウェアエンコーダである別の実装例では、モーション探索のパラメータは、モーション探索領域の中点位置がエンコードされているフレームのブロックと共に変化することを除いて、ブロック−ブロック間およびフレーム−フレーム間で同じに維持される。したがって、解像度が変更されると、解像度の変化によって多かれ少なかれ動きがキャプチャされる。例えば、解像度を変更することにより、フレーム内のあるブロックに対してより良好なマッチングが得られ、したがって、速い動きがある場合に、低い解像度が同じサーチエリア内でより多くの動きをキャプチャするので、残差はより少なくなる。
プロセス700および800の初期動作で設定される目標ビットレートは、変動の影響を受ける可変ビットレートであってもよい。この変動は、ビデオをストリーミングするユーザの接続速度またはネットワーク接続タイプの変化によって生じる可能性がある。例えば、ユーザが最初にWiFi接続を介してビデオをストリーミングし、それが利用できなくなる場合、そのビデオストリーミングはLTE接続に切換えることがある。各ネットワーク接続タイプが、所与の解像度で所与のビデオストリームを最適に見るために最適化されたそれ自身の目標ビットレートを示すことがあるという点で、可変目標ビットレート用の単一パスエンコード及び2パスエンコード用の開示されたレート制御プロセスの実装例は望ましい。
上記のエンコードおよびデコードの態様は、エンコードおよびデコード技術のいくつかの例を示す。しかしながら、エンコードおよびデコードは、それらの用語が特許請求の範囲で使用されるように、圧縮、解凍、変換、または他の任意の処理またはデータの変更を意味し得ることを理解されたい。
「例」という語は、本明細書では、例、事例、または説明として役立つことを意味するために使用される。本明細書において「例」と記載された任意の態様または設計は、必ずしも他の態様または設計に対して好ましいまたは有利であると解釈されるべきではない。むしろ、「例」という言葉の使用は、技術液思想を具体的な方法で示すことを意図している。本出願で使用される場合、用語「または」は排他的な「または」ではなく包括的な「または」を意味するものとする。すなわち、他に明記されていない限り、または文脈から明らかでない限り、「XはAまたはBを含む」とは、自然の包括的置換のいずれかを意味することを意図する。つまり、XがAを含む;XがBを含む;またはXがAおよびBの両方を含むとあれば、「XはAまたはBを含む」は、上記のどの場合でも満足する。さらに、本出願および添付の特許請求の範囲で使用される冠詞「a」および「an」は、他に明記されない限り、または単数形に向けられる文脈から明らかでない限り、「1つ以上」を意味すると一般に解釈されるべきである。さらに、「ある実装例」または「一実装例」という用語の使用は、そのように記載されていない限り、同じ実施形態または実装例を意味するものではない。
送信局202および/または受信局206(およびその上に記憶され、および/またはそれによって実行される、エンコーダ500およびデコーダ600を備えるアルゴリズム、方法、命令など)の実装例は、ハードウェア、ソフトウェア、またはそれらの任意の組合せを含む。ハードウェアは、例えば、コンピュータ、IP(intellectual property)コア、特定用途向け集積回路(ASIC)、プログラマブル論理アレイ、光プロセッサ、プログラマブル論理コントローラ、マイクロコード、マイクロコントローラ、サーバ、マイクロプロセッサ、デジタル信号プロセッサ、または他の適切な回路を備えることができる。特許請求の範囲において、「プロセッサ」という用語は、前述のハードウェアのいずれかを単独でまたは組み合わせて備えるものとして理解されるべきである。用語「信号」および「データ」は互換的に使用される。さらに、送信局202および受信局206の部分は、必ずしも同じ方法で実施される必要はない。
さらに、一態様では、例えば、送信局202または受信局206は、実行されると、本明細書で説明した方法、アルゴリズムおよび/または命令のうちのいずれかを実行するコンピュータプログラムを備えた汎用コンピュータまたは汎用プロセッサを使用して実装され得る。加えてまたは代えて、例えば、本明細書で説明した方法、アルゴリズム、または命令のいずれかを実行するための他のハードウェアを備えることができる専用コンピュータ/プロセッサを利用することができる。
送信局202および受信局206は、例えば、ビデオ会議システムのコンピュータ上に実装することができる。あるいは、送信局202はサーバ上に実装することができ、受信局206は、ハンドヘルド通信デバイスなどのサーバとは別のデバイス上に実装することができる。この場合、送信局202は、エンコーダ500を使用してコンテンツをエンコード済みビデオ信号へとエンコードし、そのエンコード済みビデオ信号を通信装置に送信し得る。次に、その通信装置は、デコーダ600を使用して、エンコード済みビデオ信号をデコードし得る。あるいは、その通信装置は、その通信装置上にローカルに格納されたコンテンツ、例えば、送信局202によって送信されていないコンテンツをデコードし得る。他の適切な送信および受信実施方式が利用可能である。例えば、受信局206は、ポータブル通信デバイスではなく、概して据え置きのパーソナルコンピュータであってもよく、および/またはエンコーダ500を備える装置がデコーダ600を備えてもよい。
さらに、本発明の実装の全部または一部は、例えば、有形のコンピュータ使用可能媒体またはコンピュータ可読媒体からアクセス可能なコンピュータプログラム製品の形態を取ることができる。コンピュータ使用可能媒体またはコンピュータ可読媒体は、例えば、プロセッサによって使用されるプログラムを有形に格納、記憶、通信、または移送できる任意の装置であり得る。当該媒体は、例えば、電子媒体、磁気媒体、光学媒体、電磁気媒体、または半導体デバイスであり得る。他の適切な媒体も利用可能である。
上述した実施形態、実施形態及び態様は、本発明の理解を容易にするために記載されており、本発明を限定するものではない。それどころか、本発明は、添付の特許請求の範囲内に含まれる様々な改変および同等の構成を包含することを意図しており、その範囲は、法律で許容されるようなすべての改変および同等の構造を包含するように最も広い解釈が与えられる。

Claims (22)

  1. ビデオストリームをエンコードする方法であって、
    ビデオストリームの複数のフレームのうちの第1のフレームを識別することと、
    前記第1のフレームを量子化パラメータを表す第1のビットレートでエンコードすることと、
    前記第1のビットレートを前記第1のフレームの目標ビットレートと比較するとともに前記量子化パラメータを最小量子化閾値および最大量子化閾値の一方と比較することと、
    前記第1のビットレートと前記目標ビットレートとの比較及び前記量子化パラメータと前記最小量子化閾値および前記最大量子化閾値の一方との比較に応答して、少なくとも1つのエンコードパラメータを調整することと、
    前記ビデオストリームの第2のフレームを識別することと、
    前記第2のフレームを前記調整された少なくとも1つのエンコードパラメータを使用して第2のビットレートでエンコードすることと、
    エンコードされた前記第1のフレームおよびエンコードされた前記第2のフレームを出力ビットストリームに送信することと
    を備え、
    前記第1のビットレートが前記目標ビットレートより小さく、前記量子化パラメータが前記最小量子化閾値と同じかそれより小さい場合、前記少なくとも1つのエンコードパラメータを調整することが、
    前記ビデオストリームの解像度を上昇させることと、
    前記量子化パラメータを上昇させることと、
    上昇後の前記解像度に基づいて前記最小量子化閾値および前記最大量子化閾値を調整することと
    を備え、前記最小量子化閾値は、更なる減少が解像度に対するビデオ品質の向上に影響を及ぼさない場合の量子化パラメータの値であり、前記最大量子化閾値は、更なる増加が解像度に対するビデオ品質を明白な視覚的アーチファクトを生成することによって低下させる場合の量子化パラメータの値である、ビデオストリームをエンコードする方法。
  2. 前記第1のビットレートが前記目標ビットレートよりも小さく、前記量子化パラメータが前記最小量子化閾値よりも大きい場合、前記少なくとも1つのエンコードパラメータを調整することが、前記量子化パラメータを低下させることを備える、請求項1に記載の方法。
  3. 前記第1のフレームをエンコードすることに応答してモーション探索領域に対する1つまたは複数のエンコーダ限界を識別することと、
    前記エンコーダ限界に基づいて前記ビデオストリームの解像度を調整することと
    を更に備える請求項1または2に記載の方法。
  4. 前記第1のビットレートが前記目標ビットレートよりも大きく、前記量子化パラメータが前記最大量子化閾値よりも小さい場合、前記少なくとも1つのエンコードパラメータを調整することは、前記量子化パラメータを上昇させることを備える、請求項1〜3のいずれか一項に記載の方法。
  5. 前記第1のビットレートが前記目標ビットレートより大きく、前記量子化パラメータが前記最大量子化閾値と同じかそれより大きい場合、前記少なくとも1つのエンコードパラメータを調整することは、
    前記ビデオストリームの解像度を低下させることと、
    前記量子化パラメータを低下させることと、
    低下後の解像度に基づいて前記最小量子化閾値および前記最大量子化閾値を調整することと
    を備える請求項1〜4のいずれか一項に記載の方法。
  6. 前記少なくとも1つのエンコードパラメータを調整することは、
    1つまたは複数のエンコーダ限界に基づいて前記ビデオストリームの解像度を低下させることと、
    低下後の解像度での前記第1のフレームの基準位置を決定することと、
    前記第1のフレームの前記基準位置に基づいてモーション探索領域の中点位置をリセットすることと
    を備える、請求項1に記載の方法。
  7. 前記少なくとも1つのエンコードパラメータは、前記ビデオストリームの解像度、前記量子化パラメータ、前記最小量子化閾値、または前記最大量子化閾値のうちの少なくとも1つを備える請求項1〜6のいずれか一項に記載の方法。
  8. ビデオストリームをエンコードする方法であって、
    ビデオストリームの複数のフレームの入力フレームを識別することと、
    前記入力フレームを入力量子化パラメータを用いてエンコードすることと、
    前記入力フレームをエンコードすることに応答して複数のビットを生成することと、
    前記複数のビットと、前記入力フレームをエンコードするための目標ビットレートと、最小量子化閾値と、最大量子化閾値とに基づいて、少なくとも1つのエンコードパラメータを調整することと、
    前記少なくとも1つのエンコードパラメータを用いて前記入力フレームをエンコードすることによってエンコード済みフレームを生成することと、
    前記エンコード済みフレームを出力ビットストリームに送信することと
    を備え、
    前記入力フレームをエンコードすることに応答して生成される前記複数のビットが前記目標ビットレートよりも小さいフレームビットレートを示し、前記入力量子化パラメータが前記最小量子化閾値と同じかそれより小さい場合、
    前記少なくとも1つのエンコードパラメータを調整することが、前記ビデオストリームの解像度を上昇させることと、前記入力量子化パラメータを上昇させることと、上昇後の前記解像度に基づいて前記最小量子化閾値および前記最大量子化閾値を調整することとを備え、
    前記エンコード済みフレームを生成することが上昇後の解像度で前記入力フレームをエンコードすることを備え
    前記最小量子化閾値は、更なる減少が解像度に対するビデオ品質の向上に影響を及ぼさない場合の量子化パラメータの値であり、前記最大量子化閾値は、更なる増加が解像度に対するビデオ品質を明白な視覚的アーチファクトを生成することによって低下させる場合の量子化パラメータの値である、ビデオストリームをエンコードする方法。
  9. 前記入力フレームをエンコードすることに応答して、モーション探索領域に対する1つまたは複数のエンコーダ限界を識別することと、
    前記エンコーダ限界に基づいて前記ビデオストリームの解像度を調整することと
    を更に備える請求項8に記載の方法。
  10. 前記入力フレームをエンコードすることに応答して生成された複数のビットが前記目標ビットレートよりも大きいフレームビットレートを示す場合、
    前記少なくとも1つのエンコードパラメータを調整することが、前記ビデオストリームの解像度を低下することを備え、
    前記エンコード済みフレームを生成することが、低下後の解像度で前記入力フレームをエンコードすることを備える請求項8または9に記載の方法。
  11. 前記少なくとも1つのエンコードパラメータを調整することは、前記少なくとも1つのエンコードパラメータが前記複数のビットと前記目標ビットレートとに基づく調整に供されるかどうかをフラグを用いて示すことを備える請求項8〜10のいずれか一項に記載の方法。
  12. 前記少なくとも1つのエンコードパラメータを調整することは、
    前記1つまたは複数のエンコーダ限界に基づいて前記ビデオストリームの解像度を低下させることと、
    前記低下後の解像度で前記入力フレームの基準位置を決定することと、
    前記入力フレームの前記基準位置に基づいてモーション探索領域の中点位置をリセットすることと
    を備える請求項8〜11のいずれか一項に記載の方法。
  13. 前記少なくとも1つのエンコードパラメータは、前記入力量子化パラメータ、エンコード量子化パラメータ、および前記ビデオストリームの解像度のうちの少なくとも1つを備える請求項8〜12のいずれか一項に記載の方法。
  14. 前記入力量子化パラメータは定数である請求項8〜13のいずれか一項に記載の方法。
  15. ビデオストリームをエンコードする方法であって、
    ビデオストリームの複数のフレームの入力フレームを識別することと、
    前記入力フレームを一定の量子化パラメータを表す第1のビットレートでエンコードすることと、
    前記第1のビットレートを前記入力フレームに対する最小目標ビットレート及び最大目標ビットレートの一方と比較するとともに前記量子化パラメータを最小量子化閾値および最大量子化閾値の一方と比較することと、
    前記第1のビットレートを前記最小目標ビットレート及び前記最大目標ビットレートの一方と比較することおよび前記量子化パラメータを前記最小量子化閾値および前記最大量子化閾値の一方と比較することに応答して、少なくとも1つのエンコードパラメータを調整することと、
    前記少なくとも1つのエンコードパラメータを用いて前記入力フレームをエンコードすることによってエンコード済みフレームを生成することと、
    前記エンコード済みフレームを出力ビットストリームに送信することと
    を備え、
    前記第1のビットレートが前記最小目標ビットレートよりも小さく、前記量子化パラメータが前記最小量子化閾値と同じかそれより小さい場合、
    前記少なくとも1つのエンコードパラメータを調整することは、前記ビデオストリームの解像度を上昇させることと、前記量子化パラメータを上昇させることと、上昇後の前記解像度に基づいて前記最小量子化閾値および前記最大量子化閾値を調整することとを備え、
    前記エンコード済みフレームを生成することは、前記上昇後の解像度で前記入力フレームをエンコードすることを備え
    前記最小量子化閾値は、更なる減少が解像度に対するビデオ品質の向上に影響を及ぼさない場合の量子化パラメータの値であり、前記最大量子化閾値は、更なる増加が解像度に対するビデオ品質を明白な視覚的アーチファクトを生成することによって低下させる場合の量子化パラメータの値である、ビデオストリームをエンコードする方法。
  16. 前記入力フレームをエンコードすることに応答してモーション探索領域に対する1つまたは複数のエンコーダ限界を識別することと、
    前記エンコーダ限界に基づいて前記ビデオストリームの解像度を調整することと
    を更に備える請求項15に記載の方法。
  17. 前記第1のビットレートが前記最大目標ビットレートよりも大きい場合、
    前記少なくとも1つのエンコードパラメータを調整することは、前記ビデオストリームの解像度を低下させることを備え、
    前記エンコード済みフレームを生成することは、低下後の解像度で前記入力フレームをエンコードすることを備える請求項15または16に記載の方法。
  18. 前記少なくとも1つのエンコードパラメータを調整することは、
    前記少なくとも1つのエンコードパラメータが、前記入力フレームがエンコードされる第1のビットレートを示す複数のビットと、前記最小目標ビットレートと前記最大目標ビットレートとの間の目標ビットレートとに基づく調整に供されるかどうかをフラグを用いて示すことを備える請求項15〜17のいずれか一項に記載の方法。
  19. 前記少なくとも1つのエンコードパラメータを調整することは、
    前記1つまたは複数のエンコーダ限界に基づいて前記ビデオストリームの解像度を低下させることと、
    低下後の解像度で前記入力フレームの基準位置を決定することと、
    前記入力フレームの前記基準位置に基づいてモーション探索領域の中点位置をリセットすることと
    を備える請求項15〜18のいずれか一項に記載の方法。
  20. 前記少なくとも1つのエンコードパラメータは、前記一定の量子化パラメータ、前記最小目標ビットレート、前記最大目標ビットレート、エンコード量子化パラメータ、または前記ビデオストリームの解像度のうちの少なくとも1つを備える、請求項15〜19のいずれか一項に記載の方法。
  21. 請求項1〜20のいずれか一項に記載の方法を実施するように構成された装置。
  22. 少なくとも1つのプロセッサと、前記プロセッサに請求項1〜20のいずれか一項に記載のステップを実行させるように構成された命令を格納するメモリとを備える、請求項21に記載の装置。
JP2018519380A 2016-01-19 2016-12-22 動的な解像度切換えを用いたリアルタイムビデオエンコーダレート制御 Active JP6714695B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/000,097 US10356406B2 (en) 2016-01-19 2016-01-19 Real-time video encoder rate control using dynamic resolution switching
US15/000,097 2016-01-19
PCT/US2016/068216 WO2017127213A1 (en) 2016-01-19 2016-12-22 Real-time video encoder rate control using dynamic resolution switching

Publications (3)

Publication Number Publication Date
JP2019501554A JP2019501554A (ja) 2019-01-17
JP2019501554A5 JP2019501554A5 (ja) 2020-02-27
JP6714695B2 true JP6714695B2 (ja) 2020-06-24

Family

ID=57822055

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018519380A Active JP6714695B2 (ja) 2016-01-19 2016-12-22 動的な解像度切換えを用いたリアルタイムビデオエンコーダレート制御

Country Status (9)

Country Link
US (1) US10356406B2 (ja)
JP (1) JP6714695B2 (ja)
KR (1) KR102118573B1 (ja)
CN (1) CN107040781B (ja)
AU (1) AU2016388357B2 (ja)
CA (1) CA3001672C (ja)
DE (2) DE102016125353A1 (ja)
GB (1) GB2546887B (ja)
WO (1) WO2017127213A1 (ja)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3420699A1 (en) * 2016-02-26 2019-01-02 Net Insight Intellectual Property AB Edge node control
US10162936B2 (en) * 2016-03-10 2018-12-25 Ricoh Company, Ltd. Secure real-time healthcare information streaming
US10362307B2 (en) * 2016-09-09 2019-07-23 Hanwha Techwin Co., Ltd. Quantization parameter determination method and image capture apparatus
GB2595029B (en) 2017-04-21 2022-02-09 Zenimax Media Inc Systems and methods for rendering & pre-encoded load estimation based encoder hinting
KR102315524B1 (ko) * 2017-06-16 2021-10-21 한화테크윈 주식회사 영상의 비트레이트 조절 방법 및 영상 획득 장치
CN109151481B (zh) * 2017-06-28 2022-03-15 腾讯科技(深圳)有限公司 图片的传输和接收的方法、装置、系统、设备和介质
CN109151470B (zh) * 2017-06-28 2021-03-16 腾讯科技(深圳)有限公司 编码分辨率控制方法及终端
US11146608B2 (en) * 2017-07-20 2021-10-12 Disney Enterprises, Inc. Frame-accurate video seeking via web browsers
US10412410B2 (en) * 2017-08-14 2019-09-10 Google Llc Compound motion-compensated prediction
CN109413427B (zh) * 2017-08-17 2022-04-08 腾讯科技(深圳)有限公司 一种视频帧编码方法及终端
US11539908B2 (en) * 2017-09-29 2022-12-27 Advanced Micro Devices, Inc. Adjustable modulation coding scheme to increase video stream robustness
CN109819263B (zh) 2017-11-22 2022-08-19 腾讯科技(深圳)有限公司 视频编码方法、装置、计算机设备及存储介质
US10659514B2 (en) 2018-03-28 2020-05-19 Arlo Technologies, Inc. System for video monitoring with adaptive bitrate to sustain image quality
CN110495174B (zh) * 2018-04-04 2021-12-03 深圳市大疆创新科技有限公司 编码方法、装置、图像处理系统和计算机可读存储介质
CN108391127B (zh) * 2018-04-27 2021-08-10 腾讯科技(深圳)有限公司 视频编码方法、装置、存储介质及设备
CN108769681B (zh) * 2018-06-20 2022-06-10 腾讯科技(深圳)有限公司 视频编码、解码方法、装置、计算机设备和存储介质
CN108924553B (zh) * 2018-06-20 2021-10-08 腾讯科技(深圳)有限公司 视频编码、解码方法、装置、计算机设备和存储介质
KR102711111B1 (ko) * 2018-09-28 2024-09-26 인텔 코포레이션 전송 제어 비디오 코딩
US10554975B1 (en) 2018-09-30 2020-02-04 Tencent America LLC Method and apparatus for video coding
WO2020112193A1 (en) * 2018-11-26 2020-06-04 Google Llc Safe and cross device consistent video compression
CN110572654B (zh) * 2019-09-27 2024-03-15 腾讯科技(深圳)有限公司 视频编码、解码方法和装置、存储介质及电子装置
CN113038136B (zh) * 2019-12-25 2022-10-11 成都鼎桥通信技术有限公司 一种视频自适应调整方法和装置
FR3105904B1 (fr) 2019-12-26 2023-03-10 Thales Sa Procédé d'allocation pour liaison bas-débit
CN111601109A (zh) * 2020-05-13 2020-08-28 西安万像电子科技有限公司 图像数据的处理方法、装置和系统
US20220312018A1 (en) * 2021-03-23 2022-09-29 Samsung Electronics Co., Ltd. Electronic device to encode video with max quantum parameter control and the method thereof
CN113115107B (zh) * 2021-04-15 2021-12-28 深圳鸿祥源科技有限公司 一种基于5g网络的手持视频采集终端系统
CN114172874B (zh) * 2021-12-27 2024-07-30 上海商米科技集团股份有限公司 视频传输参数的自适应调节方法和系统
CN114650437B (zh) * 2022-03-14 2024-04-16 百果园技术(新加坡)有限公司 一种视频发布方法、装置、设备及存储介质
CN114827669B (zh) * 2022-03-31 2023-08-18 杭州网易智企科技有限公司 一种视频数据的传输方法、装置、介质及设备

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3773585B2 (ja) * 1996-03-29 2006-05-10 富士通株式会社 画像符号化装置
AU2003248178B2 (en) 1997-12-23 2006-07-06 Thomson Licensing S.A. Low noise encoding and decoding apparatus and method
US6192154B1 (en) 1998-01-26 2001-02-20 International Business Machines Corporation Two-pass encoding method of digital motion video sequences for constant-or variable bit rate
US6343098B1 (en) * 1998-02-26 2002-01-29 Lucent Technologies Inc. Efficient rate control for multi-resolution video encoding
US6650704B1 (en) 1999-10-25 2003-11-18 Irvine Sensors Corporation Method of producing a high quality, high resolution image from a sequence of low quality, low resolution images that are undersampled and subject to jitter
US6674796B1 (en) 2000-02-14 2004-01-06 Harmonic, Inc. Statistical multiplexed video encoding for diverse video formats
EP1139669A1 (en) * 2000-03-28 2001-10-04 STMicroelectronics S.r.l. Coprocessor for motion estimation in digitised video sequence encoders
JP4258694B2 (ja) * 2000-10-06 2009-04-30 日本電気株式会社 動画像符号化方法、動画像符号化装置、動画像復号化装置及びそれらを備えた動画像通信システム
US20020071052A1 (en) 2000-12-07 2002-06-13 Tomoaki Itoh Transmission rate control method
US6785334B2 (en) 2001-08-15 2004-08-31 Koninklijke Philips Electronics N.V. Method for transmission control in hybrid temporal-SNR fine granular video coding
US7050502B2 (en) * 2001-09-18 2006-05-23 Matsushita Electric Industrial Co., Ltd. Method and apparatus for motion vector detection and medium storing method program directed to the same
GB2387055A (en) 2002-03-28 2003-10-01 Sony Uk Ltd Data compression method including target data quantity allocation
GB2387058A (en) 2002-03-28 2003-10-01 Sony Uk Ltd Method of selecting a quantisation parameter using trial parameters
US6728315B2 (en) 2002-07-24 2004-04-27 Apple Computer, Inc. Method and apparatus for variable accuracy inter-picture timing specification for digital video encoding with reduced requirements for division operations
US7519115B2 (en) * 2003-03-31 2009-04-14 Duma Video, Inc. Video compression method and apparatus
US7352808B2 (en) * 2004-01-29 2008-04-01 International Business Machines Corporation System and method for the dynamic resolution change for video encoding
US7697608B2 (en) * 2004-02-03 2010-04-13 Sony Corporation Scalable MPEG video/macro block rate control
US20060056511A1 (en) * 2004-08-27 2006-03-16 University Of Victoria Innovation And Development Corporation Flexible polygon motion estimating method and system
KR100631743B1 (ko) 2004-11-26 2006-10-11 삼성전자주식회사 스케일러블 비트스트림의 효율적 전송 방법 및 장치
JP4251291B2 (ja) 2004-12-22 2009-04-08 日本ビクター株式会社 動画像符号化装置、動画像符号化方法
US7602997B2 (en) 2005-01-19 2009-10-13 The United States Of America As Represented By The Secretary Of The Army Method of super-resolving images
US7983341B2 (en) * 2005-02-24 2011-07-19 Ericsson Television Inc. Statistical content block matching scheme for pre-processing in encoding and transcoding
CN101107862B (zh) * 2005-03-14 2010-05-26 松下电器产业株式会社 编码装置及具备编码装置的动态图像记录系统
US8077775B2 (en) 2006-05-12 2011-12-13 Freescale Semiconductor, Inc. System and method of adaptive rate control for a video encoder
US8250618B2 (en) 2006-09-18 2012-08-21 Elemental Technologies, Inc. Real-time network adaptive digital video encoding/decoding
US20090110062A1 (en) * 2007-10-30 2009-04-30 The Hong Kong University Of Science And Technology Optimal heegard-berger coding schemes
US8077772B2 (en) * 2007-11-09 2011-12-13 Cisco Technology, Inc. Coding background blocks in video coding that includes coding as skipped
US8139607B2 (en) 2008-01-21 2012-03-20 At&T Intellectual Property I, L.P. Subscriber controllable bandwidth allocation
EP2290984A4 (en) 2008-05-16 2011-08-10 Sharp Kk VIDEO RECORDING DEVICE
US8396114B2 (en) * 2009-01-29 2013-03-12 Microsoft Corporation Multiple bit rate video encoding using variable bit rate and dynamic resolution for adaptive video streaming
US8270473B2 (en) * 2009-06-12 2012-09-18 Microsoft Corporation Motion based dynamic resolution multiple bit rate video encoding
US8879623B2 (en) * 2009-09-02 2014-11-04 Sony Computer Entertainment Inc. Picture-level rate control for video encoding a scene-change I picture
GB2501402B (en) 2010-12-21 2015-06-24 Syndiant Inc Spatial light modulator with storage reducer
US9071841B2 (en) * 2011-05-17 2015-06-30 Microsoft Technology Licensing, Llc Video transcoding with dynamically modifiable spatial resolution
US9955195B2 (en) * 2011-08-30 2018-04-24 Divx, Llc Systems and methods for encoding and streaming video encoded using a plurality of maximum bitrate levels
EP2579593A1 (en) 2011-10-04 2013-04-10 Thomson Licensing Adaptive quantisation for intra-encoded image blocks
US9094684B2 (en) 2011-12-19 2015-07-28 Google Technology Holdings LLC Method for dual pass rate control video encoding
US9578342B2 (en) * 2013-06-24 2017-02-21 Dialogic Corporation Rate control algorithm for scalable video encoding with disposable P-frames
CN103686172B (zh) * 2013-12-20 2016-08-17 电子科技大学 低延迟视频编码可变比特率码率控制方法

Also Published As

Publication number Publication date
GB2546887A (en) 2017-08-02
AU2016388357B2 (en) 2020-02-13
AU2016388357A1 (en) 2018-04-12
US10356406B2 (en) 2019-07-16
GB201621731D0 (en) 2017-02-01
JP2019501554A (ja) 2019-01-17
DE102016125353A1 (de) 2017-07-20
CA3001672C (en) 2020-07-14
CN107040781A (zh) 2017-08-11
KR102118573B1 (ko) 2020-06-03
GB2546887B (en) 2020-04-15
KR20180054717A (ko) 2018-05-24
DE202016008214U1 (de) 2017-04-28
US20170208328A1 (en) 2017-07-20
CA3001672A1 (en) 2017-07-27
CN107040781B (zh) 2020-11-03
WO2017127213A1 (en) 2017-07-27

Similar Documents

Publication Publication Date Title
JP6714695B2 (ja) 動的な解像度切換えを用いたリアルタイムビデオエンコーダレート制御
US10397574B2 (en) Video coding quantization parameter determination suitable for video conferencing
US20230379502A1 (en) Method and apparatus for image encoding/decoding
US11909963B2 (en) Image encoding method, decoding method, encoder, and decoder
WO2014139396A1 (en) Video coding method using at least evaluated visual quality and related video coding apparatus
US11375237B2 (en) Method and apparatus for image encoding/decoding
CN107667532B (zh) 用于非基带信号代码化的变换选择
US11418789B2 (en) Content adaptive quantization for video coding
KR20170137090A (ko) 디스플레이 스트림 압축을 위한 레이트 제약형 폴백 모드
KR20140110008A (ko) 객체 검출 정보에 따른 인코딩
US11627321B2 (en) Adaptive coding of prediction modes using probability distributions
US9210424B1 (en) Adaptive prediction block size in video coding
JP7125559B2 (ja) ビットレート削減のためのビデオストリーム適応フィルタリング
Waingankar et al. Efficient low bit rate video compression technique for mobile applications

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180706

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190624

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190702

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190930

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191029

A524 Written submission of copy of amendment under article 19 pct

Free format text: JAPANESE INTERMEDIATE CODE: A524

Effective date: 20200120

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20200121

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20200121

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200511

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200605

R150 Certificate of patent or registration of utility model

Ref document number: 6714695

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250