JP5410549B2 - 事前計算動き情報を用いたビデオ・エンコード - Google Patents

事前計算動き情報を用いたビデオ・エンコード Download PDF

Info

Publication number
JP5410549B2
JP5410549B2 JP2011548015A JP2011548015A JP5410549B2 JP 5410549 B2 JP5410549 B2 JP 5410549B2 JP 2011548015 A JP2011548015 A JP 2011548015A JP 2011548015 A JP2011548015 A JP 2011548015A JP 5410549 B2 JP5410549 B2 JP 5410549B2
Authority
JP
Japan
Prior art keywords
video
encoding
bit stream
compressed video
motion information
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.)
Expired - Fee Related
Application number
JP2011548015A
Other languages
English (en)
Other versions
JP2012516645A (ja
JP2012516645A5 (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.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2012516645A publication Critical patent/JP2012516645A/ja
Publication of JP2012516645A5 publication Critical patent/JP2012516645A5/ja
Application granted granted Critical
Publication of JP5410549B2 publication Critical patent/JP5410549B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/24Systems for the transmission of television signals using pulse code modulation
    • 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/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • 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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • 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/176Methods 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 block, e.g. a macroblock
    • 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/187Methods 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 a scalable video layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/33Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the spatial domain
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • 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/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/12Systems in which the television signal is transmitted via one channel or a plurality of parallel channels, the bandwidth of each channel being less than the bandwidth of the television signal

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Television Systems (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Description

[0001] インターネットのようなネットワーク上におけるストリーミング・オーディオおよびビデオを再生することが増々普及するにつれて、再生中のネットワーク条件に一貫性がなくてもクライアントの体験を最大化するように、サーバーからクライアントに転送されるデータを最適化することが必要になっている。クライアントの体験を最適化するには、ビデオ再生のオーディオ部分およびビデオ部分をエンコードする品質レベルを選択して、ビデオ・コンテンツの品質を保存しつつ、ビデオを中断することなく転送し再現できるようにしなければならない。
[0002] 品質レベルは、一般に、入力ストリームにおいてエンコードされているオーディオまたはビデオ部分に対して指定されたビット・レートによって決められる。ビット・レートが高い程、一般に、元のオーディオまたはビデオについてエンコードされ保持されている情報量が多いことを示し、したがって、ビデオの再生中に、元の入力オーディオまたはビデオが一層精度良く再現され提示されることになる。逆に、ビット・レートが低い程、元の入力オーディオまたはビデオについてエンコードされ保持されている情報が少なく、したがって、ビデオ再生中に、元のオーディオまたはビデオが、精度を低くして再現され提示されることを示す。
[0003] 一般に、ビット・レートは、様々な要因に基づいてビデオおよびオーディオの各々をエンコードするために指定される。第1の要因は、サーバーとクライアントとの間におけるネットワーク状態である。大量のデータを転送することができるネットワーク接続は、このネットワーク接続を通じて後に転送される入力ビデオに対してより高いビット・レートを指定できることを示す。第2の要因は、所望の起動レイテンシーである。起動レイテンシーとは、大量のデータを受信し、処理し、バッファーしなければならないために、最初に起動するときにビデオ再生ツールに生ずる遅れのことである。第3の要因は、グリッチング(glitching)に対する耐性である。グリッチングとは、データが失われたためにビデオ再生を停止しなければならないときのことである。殆どの場合、起動レイテンシーまたはグリッチングは、いかなる量であっても許容できず、したがって、起動レイテンシーやグリッチングを最小限に抑えるまたは排除するように、指定されるビット・レートを最適化することが望ましい。
[0004] 現在入手可能な市販のストリーミング・メディア・システムは、コーディング・レート制御を行う際に多ビット・レート(MBR)コーディングを拠り所としている。MBRコーディングでは、ソース・ビデオ・コンテンツは異なるコーディング・レートで代用ビット・ストリームにエンコードされ、サーバーにおいて同じメディア・ファイルに格納されるのが通例である。これによって、変化するネットワーク状態にしたがって、異なるコーディング・レートに対応する様々なレベルの品質で、セグメント単位またはチャンク(chunk)単位で、通例セグメント間でビット・ストリーム切り替えを用いて、コンテンツを再生することが可能となる。
ビデオ・エンコードにおける動き推定および補償
[0005] ビデオをエンコードして所望のビット・レートに圧縮する技法は、多数開発されている。このような技法には、フレーム内圧縮技法(フレームが静止画像として圧縮される)、およびフレーム間圧縮技法(1つ又は複数の他のフレームからフレームが予測または推定される)が含まれる。フレーム内圧縮は、データに対する周波数変換、ならびにそれに続く非可逆(lossy) 圧縮および可逆(lossless)圧縮を伴うことが多い。フレーム間圧縮は、動き推定を含むことができる。
[0006] 動き推定は、フレーム間における動きを推定するプロセスである。ビデオ用動き推定は、非適切問題であると言われる。何故なら、見られる場面内における動きは三次元で発生するが、ビデオの連続フレームは3D場面の二次元画像平面への投影であるからである。広く行き渡った1つの技法では、動き推定を用いるエンコーダーが、現フレームにおける画素のブロックを、他のフレーム(基準フレームと呼ぶ)の中にある検索エリアにおける同様の画素のブロック(ピクチャー・エレメントまたはサンプル)と照合しようとする。エンコーダーが基準フレームの検索エリアにおいて正確な一致または「十分に近い」一致を発見したとき、エンコーダーはこれらのブロックの位置変化を動きデータ(動きベクトルのような)としてパラメータ化する。
[0007] 逆に、動き補償は、動きデータを用いて基準フレームからフレームを再現するプロセスである。広く行き渡った1つの技法では、エンコーダーまたはデコーダーが、現フレームの動きデータを基準フレームに適用することによって、現フレームを再現し、予測フレームを作成する。エンコーダーは、予測フレームと現フレームの元のバージョンとの間の差(残差と呼ばれることもある)を、フレーム内圧縮(例えば、損失付随または損失なし圧縮)に用いられるのと同じ技法を用いて圧縮することができる。カメラ・ビデオの総体的ビット・レートは、残差のビット・レートに非常に依存し、残差のビット・レートは、動きデータのビット・レートと比較すると、総体的ビット・レートにおいてひときわ目立つ可能性がある。残差のビット・レートは、残差が単純である(例えば、何らかの規準にしたがって正確な一致または正当な一致に導く動き推定のために)場合、または非可逆圧縮が残差の複雑度を劇的に低下させる場合には低くなる。一方、複素残差(complex residual)(即ち、動き推定が正当な一致を見いだせなかった場合の残差)のビット・レートは、残差の複雑度を低下させるために適用される非可逆圧縮の度合いに応じて、一層高くなる可能性がある。
[0008] 以下の詳細な説明は、多ビット・レートおよびマルチ・コアの用途におけるように、事前に計算された動き情報を用いるビデオ・エンコーディング技法(方法、デバイス、およびシステムによって実現される)に関する。これら種々の用途では、ビデオ・エンコーダーが生ビデオ・コンテンツおよび事前に計算された動き情報を入力として取り込む。次いで、ビデオ・エンコーダーは、この事前に計算された動き情報に基づいて、動き補償を適用し、生ビデオ・コンテンツの予測フレームをエンコードすることができる。種々の用途では、これによって、ビデオ・エンコーダーは一層効率的に動き推定および補償を適用することが可能になる。
[0009] 多ビット・レート用途の一例では、事前に計算した動き情報入力を有するビデオ・エンコーダーを用いて、ソース・ビデオをエンコードして、連続的に低くなるビット・レートとした複数のビット・ストリームを得る。連続的に低くなるビット・レートでエンコードしたビット・ストリーム毎に、ビデオ・エンコーダーは、それよりも高いビット・レートで以前のビット・ストリームについて計算した動き情報を、その事前に計算した動き情報入力として受ける。ビデオ・エンコーダーは、次に低いビット・レートでビット・ストリームの動き補償エンコードを実行するために、それよりも高いビット・レートで以前のビット・ストリームについて計算したこの入力動き情報を用いることを選択することができる。しかしながら、ビデオ・エンコーダーは、ビット・レートの低下を達成するためには、他のエンコーディング・パラメータの中でもとりわけ、量子化の度合いおよびビデオ解像度というような、エンコーディング・パラメータの種々の調節を行う必要がある。ビデオ用動き推定は、先に背景において論じたように、「非適切問題」であるので(理由の中でもとりわけ)、より高いエンコーディング・ビット・レートでのビデオについて事前に計算された動き情報は、より低いビット・レートを達成するために調節されたエンコーディング・パラメータを用いて同じソース・ビデオをエンコードするには、低精度であることが分かる。例えば、予測フレームの所与のブロックに対して高い一致度(小さな残差)が得られる動きベクトルは、高い方のビット・レートのエンコーディング・パラメータで基準フレームがエンコードされたときと、低い方のビット・レートで基準フレームがエンコードされたときとの間で比較すると、変化する可能性がある。前述の多ビット・レートの用途の例では、ビデオ・エンコーダーは、次の連続ビット・レートのエンコードがビデオ解像度の変化を含むか否かに応じて、より高いビット・レートについて計算された入力動き情報を用いるか否か選択する。ビデオ解像度が次の連続ビット・レートでは変化していない場合、ビデオ・エンコーダーは、より高いビット・レートに合わせて事前に計算された入力動き情報を用いる。しかし、ビデオ解像度が変化する場合、ビデオ・エンコーダーは、代わりに、現在のビット・レートでビット・ストリームをエンコードするために、新たに動き情報を計算する。この新たに計算された動き情報は、事前に計算された動き情報入力として、次に低いビット・レートにおけるビット・ストリームのために、ビデオ・エンコーダーに受け渡される。
[0010] マルチ・コア・プロセッサーの用途の一例では、動き推定は、ビデオ・エンコーダーに入力される前に、別の事前計算フェーズとして実行される。フレーム内圧縮が、ソース・ビデオの基準フレームに対して最初に行われる。次に、動き推定事前計算を、マルチ・コア・コンピューターにおいてほぼ並列な動作として実行することができる。コンピューターの各プロセッサー・コアが、別々のフレームの動き推定を計算するために割り当てられ、別々のフレームは、それぞれの基準フレームに対してフレーム間(予測)エンコードを用いてエンコードされる。このようにプロセッサー・コア間で動き推定の計算を分割することによって、ビデオ・エンコーダーはマルチ・コア・コンピューターの処理能力を最大限利用することが可能になる。
[0011] この摘要は、詳細な説明において以下で更に説明する概念から選択したものを、簡略化した形態で紹介するために設けられている。この摘要は、特許請求する主題の主要な特徴や必須の特徴を特定することを意図するのではなく、特許請求する主題の範囲を決定するときに補助として用いられることを意図するのでもない。本発明の更に別の特徴や利点は、添付図面を参照しながら進められる、以下の実施形態の詳細な説明から明白となろう。
図1は、事前計算された動き情報入力を有するビデオ・エンコーダーのブロック図である。 図2は、図1のビデオ・エンコーダーの一般化した実施態様のブロック図である。 図3は、可変ビット・レートで、ビデオの区分ストリーミングを供給するビデオ・ストリーミング・システムのブロック図である。 図4は、図3のビデオ・ストリーミング・システムによる区分ストリーミングにおいて用いる、図1のビデオ・エンコーダーを用いて区分ビデオ・ストリーミングをエンコードするビデオ・エンコーディング・システムのブロック図である。 図5は、図4のビデオ・エンコーディング・システムによって実行されるプロセスのフロー・チャートである。 図6は、図1のビデオ・エンコーダーのための動き情報の事前計算にマルチ・コア・プロセッサーを用いるビデオ・エンコーディング・システムのデータ・フロー図である。 図7は、種々の記載する実施形態を実現することができる動作環境を一般化したブロック図である。
[0019] 以下の詳細な説明は、事前に計算された動き情報を用いるビデオ・エンコードのための種々の技法およびシステムに関する。これらの技法は、多ビット・レート・ストリーミングへの応用、およびマルチ・コア・ビデオ・エンコードへの応用というコンテキストで説明する。しかしながら、これらの技法は、更に広く他のビデオ・エンコードの用途にも適用することができる。
[0020] 本明細書において記載する種々の技法およびツールは、独立して用いることができる。これらの技法およびツールの中には、組み合わせて用いることができるものもある。以下では、処理動作(act)のフローチャートを参照しながら種々の技法について説明する。フローチャートにおいて示される種々の処理動作は、それらよりも少ない動作に統合すること、またはそれらよりも多い動作に分離することもできる。簡素化のために、個々のフローチャートに示される動作の、別の場所で説明される動作に対する関係は、示されないことが多い。多くの場合、フローチャートにおける動作は、順序を変更することができる。
I.事前計算された動き情報を用いるビデオ・エンコーダー
[0021] 図1は、以下で説明する多ビット・レートおよびマルチ・コアの用途において用いることができるビデオ・エンコーダー100の一例を示す。ビデオ・エンコーダー100は、ビデオ・コンテンツの「生の」(圧縮されていない)フレーム、およびこのビデオ・コンテンツについて事前に計算された動き情報を受けるために入力110、120を有する。次いで、このビデオ・エンコーダーは、ビデオ・コンテンツの基準フレームのフレーム内コーディングを実行し、動き情報を利用して、ビデオ・コンテンツの予測フレームのフレーム間コーディングを実行する。このエンコードは、Windows Media Videoフォーマット、SMPTE-421-Mフォーマット、MPEG−xフォーマット(例えば、MPEG−1、MPEG−2、またはMPEG−4)、H.26xフォーマット(例えば、H.261、H.262、H.263、またはH.264)、または他のフォーマットというような、既知のビデオ・エンコード規格にしたがって実行することができる。しかしながら、フレーム間コーディングの場合、ビデオ・エンコーダーは、それ自体の動き推定をフレームについて実行する代わりに、予測フレームのフレーム間コーディングについて予め計算されている動き情報を用いることを選択することができる。ビデオ・エンコーダーは、ビデオ・コンテンツをエンコードして圧縮ビットストリームとし、これを出力130として供給する。また、ビデオ・エンコーダーは、入力ビデオ・コンテンツのフレーム間圧縮に用いた動き情報も、動き情報出力140として出力することができる。
[0022] 図2は、ビデオ・エンコーダー100の適した実施態様の一例を示す、一般化したブロック図であり、これと共に、以下で更に詳細に説明する多ビット・レートおよびマルチ・コア技法を実現することができる。ビデオ・エンコーダー100は、ビデオ・ピクチャー(フレーム)のシーケンスをその生ビデオ・コンテンツ入力110として事前計算動き情報入力120と共に受信し、圧縮ビット・ストリーム130を出力として生成する。
[0023] ビデオ・エンコーダー100は、ビデオ・ピクチャーを処理する。「ピクチャー」という用語は、一般に、ソース画像データ、コード化画像データ、または再現された画像データを指す。プログレシブ・ビデオ(progressive video)では、ピクチャーはプログレシブ・ビデオ・フレームとなる。インターレース・ビデオでは、ピクチャーは、コンテキストに応じて、インターレース・ビデオ・フレーム、フレームの最上位フィールド、またはフレームの最下位フィールドを指す場合もある。
[0024] ビデオ・エンコーダー100は、入力ビデオのインター・コード化予測ピクチャー、および入力ビデオのイントラ・コード化ピクチャーを圧縮する。提示のために、図2は、エンコーダー100を通過するイントラ・コード化フレームの経路と、インター・コード化予測フレームの経路とを示す。ビデオ・エンコーダー100のコンポーネントの多くは、イントラ・コード化コンテンツおよびインター・コード化予測コンテンツの双方を圧縮するために用いられる。これらのコンポーネントによって行われる正確な動作は、圧縮される情報のタイプに応じて変化する可能性がある。
[0025] 一般に、ビデオ・エンコーダー100内では、インター・コード化予測フレーム(ピクチャーのような)が、事前に再現されたコンテンツ(1つ又は複数の他のピクチャーのような。これらは通例基準ピクチャーまたはアンカーと呼ばれる)からの予測に関して表される。例えば、所与の時点におけるコンテンツは、プログレッシブP−フレームまたはB−フレーム、インターレースP−フィールドまたはB−フィールド、あるいはインターレースP−フレームまたはB−フレームとしてエンコードされる。ビデオ・エンコーダー100内部では、予測された情報と対応するイントラ・コード化フレームとの間の差が、予測残差となる。
[0026] インター−パス上にある入力ビデオ110のコンテンツは、動き情報に基づいて、予測ピクチャーとしてエンコードされる。ある種の条件を満たす場合、ビデオ・エンコーダー100は、入力120からの事前計算動き情報を用いる(選択スイッチ256によって図示されるように)。この動き情報は、マクロブロックに対する1組のまたは一連の動きベクトル、あるいは1つ又は複数の基準ピクチャーに関する他のインター−パス・ビデオ・ピクチャーのサンプル集合という形態をなすことができる。一般に、事前計算動き情報を用いる選択は、第1に、事前計算動き情報の利用可能性に基づき、第2に、動き情報の直前の計算からどのエンコーディング・パラメータが変化したか、そして変化したか否か、更にビデオ・コンテンツの現在のエンコードに用いられているパラメータに基づく。一例では、動き情報が、ビデオ・エンコーダーが現在エンコードしているビデオ・コンテンツとは異なるビデオ解像度を有するビデオ・コンテンツをエンコードするために計算されたのである場合、ビデオ・エンコーダーは、入力130からの、事前に計算した動き情報を用いないことを選択する。
[0027] しかしながら、ビデオ・エンコーダー100は、代わりに、動き推定部258を用いて、インター−パス・ビデオ・コンテンツ110に対して新たな動き推定を実行することを選択することができる(この場合も、選択スイッチ256によって図示されている)。動き推定部258は、事前にエンコードされたビデオ・コンテンツ・フレームの再現を表す、1つ又は複数の基準ピクチャーに対するビデオ・ピクチャーのマクロブロックまたは他のサンプル集合の動きを推定する。ピクチャー・ストア264は、この再現されたビデオ・コンテンツ266を、1つまたは複数の基準ピクチャーとしてバッファーする。多数の基準ピクチャーが用いられる場合、多数の基準ピクチャーは異なる時間方向または同じ時間方向から得ることができる。動き推定部258は、動きベクトル情報のような動き情報260を出力する。
[0028] 動き補償部262は、動き補償した現ピクチャー268を形成するときに、動きベクトルをある種の再現されたビデオ・コンテンツ266(基準ピクチャー(1つまたは複数)として格納されている)に適用する。動き補償ピクチャー268のブロックと元のインター−パス・ビデオ・ピクチャーの対応するブロックとの間における差(少しでもある場合)は、そのブロックに対する予測残差270となる。後にインター−パス・ビデオ・フレーム(例えば、ビデオ・デコーダーにおいて)を再現する間に、再現される予測残差は動き補償残差ビデオ268に加算されて、元のインター−パス・ビデオ256に更に近い再現コンテンツが得られる。しかしながら、非可逆圧縮の場合、一部の情報が元のインター−パス・ビデオから失われることに変わりはない。代わりに、動き推定部および動き補償部が他のタイプの動き推定/補償を適用する。
[0029] 周波数変換器280は、空間ドメイン・ビデオ情報を周波数ドメイン(即ち、空間、変換)データに変換する。ブロック基準のビデオ・コンテンツでは、周波数変換器280はDCT、DCTの異形、または他の前方ブロック変換(forward block transform)をサンプルまたは予測残差データのブロックに適用して、周波数変換係数のブロックを生成する。周波数変換器280は、8×8、8×4、4×8、4×4、または他のサイズの周波数変換を適用することができる。
[0030] 次に、量子化器282が変換係数のブロックを量子化する。量子化器282は、ピクチャー毎に、マクロブロック毎に、または他の単位毎に空間的に変化するステップ・サイズで、非均一スカラー量子化をスペクトル・データに適用する。加えて、場合によっては、量子化器がインター−レイヤー残差ビデオ・ピクチャーの色チャネルにわたって量子化を変化させることもある。また、量子化器282は、少なくとも一部の空間データ係数に対して他のタイプの量子化、例えば、均一または適応量子化を適用することもでき、あるいは周波数変換を用いないエンコーダー・システムにおいて空間ドメイン・データを直接量子化する。
[0031] 再現されたビデオ・コンテンツが、後続のインター−パス・ビデオ・ピクチャーの動き推定/補償に必要とされる場合、逆量子化器290が、量子化されたスペクトル・データ係数に対して逆量子化を実行する。逆周波数変換器292は、逆周波数変換を実行して、再現された予測残差(予測されたインター−パス残差ビデオ・コンテンツに対して)またはサンプル(イントラ−パス残差ビデオ・コンテンツに対して)のブロックを生成する。残差ビデオ・コンテンツ256が動き補償予測されていた場合、再現された予測残差を動き補償予測部268に加算して、再現残差ビデオを形成する。ピクチャー・ストア264は、後続の動き補償予測において用いるために、再現された残差ビデオをバッファーする。
[0032] エントロピー・コーダー284は、量子化器282の出力およびある種の副次情報(例えば、量子化パラメータ値)を圧縮する。典型的なエントロピー・コーディング技法は、算術コーディング、差分コーディング、ハフマン・コーディング、ラン・レングス・コーディング、LZコーディング、辞書型コーディング、およびこれらの組み合わせを含む。エントロピー・コーダー284は、通例、異なる種類の情報毎に異なるコーディング技法を用い、特定のコード化技法内にある多数のコード表から選択することができる。
[0033] ビデオ・エンコーダー240がイントラ−パス・ビデオ・コンテンツのイントラ−圧縮を実行するとき、このエンコーダーは、動き補償せずに、それをイントラ・コード化ピクチャーとして圧縮する。ビデオ256は、直接、周波数変換器280、量子化器282、およびエントロピー・コーダー284に供給され、エンコードされたビデオとして出力される。イントラ−コード化ビデオの再現バージョンは、後続の他のインター−パス・ビデオの動き補償に用いるために、バッファーすることができる。
[0034] コントローラー294は、動き推定部258、周波数変換器280、量子化器282、逆量子化器290、およびエントロピー・コーダー284のような、種々のモジュールから入力を受ける。コントローラー294は、エンコードの間中間結果を評価して、例えば、量子化ステップ・サイズを設定し、レート−歪み分析を実行する。コントローラー294は、他のモジュールと共に動作して、エンコードの間にコード化パラメータを設定および変更する。コントローラー294が異なるコード化パラメータの選択肢を評価するとき、コントローラー294は異なるパラメータ設定値を評価するためにある種の段階を繰り返し実行することができ、あるいはコントローラー294は異なるコード化パラメータを纏めて評価することもできる。評価すべきコード化パラメータ決定のツリー、および対応するエンコードのタイミングは、実施態様に依存する。実施形態によっては、コントローラー294がエンコーディング・セッション・ウィザード・インターフェース、他のエンコーダー・アプリケーション・インターフェース、または他のソースからも入力を受け取り、特定の規則を用いてエンコードするビデオを指定する場合もある。
[0035] ある種の用途では、ビデオ・エンコーダー100は、他の変化するエンコーディング・パラメータを用いて生ビデオ・コンテンツをエンコードして、以下で論ずる多ビット・レート用途において異なるビット・レートを得るために、事前計算動き情報として用いるためというように、インター−パス・ビデオ・コンテンツ(事前計算動き情報入力130からかまたは動き推定部258からかには関係なく)の動き補償に用いられた動き情報を出力することもできる。
II.多ビット・レート・ビデオ・エンコーダー
[0036] 図1および図2に示したビデオ・エンコーダー100は、多ビット・レート・ストリーミングの用途のためにインデックス化ファイルを生成するために用いることができる。インデックス化ファイルは、一般に、マルチメディア・プログラムのビデオを多数のストリーミング・セグメントに分割し、種々のビット・レートのビデオ・セグメントを表す多数の圧縮ビット・ストリームを収容する。
[0037] 一般に、多ビット・レート・ストリーミング用のインデックス化ファイルは、標準的なHTTPサーバーが、多数のビット・レートでマルチメディア・コンテンツを配給するために用いることができる。ビット・レートの選択(レート制御)は、クライアント側(例えば、クライアント側のみ)で行われる。クライアントは、最初にプログラムのストリーミング・セグメントに利用可能な種々のビット・レートを記載したインデックス情報をサーバーから入手することによって、レート制御を実行することができる。インデックス情報に基づいて、そして可能であれば他の情報(例えば、ネットワーク帯域幅、バッファー情報等)に基づいて、クライアントは所望のユーザー体験(利用可能なビット・レートおよび現在のネットワーク状態に基づいて、可能な限り最良のユーザー体験)を提供するためには、どのビット・レートでストリーミング・セグメントをサーバーからダウンロードするか判断することができる。
[0038] 他のタイプのコンピューティング・デバイス(例えば、従前からのHTTPサーバー以外)が、インデックス化ファイルを用いて、ファイルを提供することもできる。例えば、コンピューティング・デバイス(例えば、パーソナル・コンピューター、サーバー・コンピューター、または特殊目的ストリーミング・メディア・サーバー)がインデックス化ファイル・レイアウトを用いて、種々のファイル配給プロトコル(例えば、ファイル転送プロトコル(FTP)、ハイパーテキスト転送プロトコル(HTTP)、リアル・タイム・ストリーミング・プロトコル(RTSP)、MMS(Microsoft Media Services)等)を用いてマルチメディア・コンテンツを配給することができる。
[0039] ビット・レートの切り替えをサポートするために、プログラムは、ストリーミング・セグメント(自己完結ユニット)と呼ばれる時間チャンク(temporal chunk)に分割される。サーバーは、各ストリーミング・セグメントを1つ又は複数のビット・レートで格納する(例えば、各ストリーミング・セグメント−ビット・レートの組み合わせが、別のストリーミング・セグメント・エンコードとなる)。各ストリーミング・セグメントは、プログラムの特定のトラック(例えば、英語のオーディオ・トラックのような特定のオーディオ・トラック、または特定のビデオ・トラック)に利用可能な1つ又は複数のビット・レート・エンコードを有する。次いで、クライアントは、利用可能なビット・レートから(例えば、利用可能なストリーミング・セグメント・エンコードから)どのビット・レートにするか判断して、ストリーミング・セグメント毎にダウンロードする。例えば、クライアントは250Kb/秒(キロビット毎秒)でエンコードされたビデオ・トラック用第1ストリーミング・セグメント(第1ストリーミング・セグメントに利用可能な1つ又は複数のストリーミング・セグメント・エンコードから)、500Kb/秒でエンコードされたビデオ・トラック用第2ストリーミング・セグメント(第2ストリーミング・セグメントに利用可能な1つ又は複数のストリーミング・セグメント・エンコードから)、および1Mb/秒(メガビット毎秒)でエンコードされたビデオ・トラック用第3ストリーミング・セグメント(第3ストリーミング・セグメントに利用可能な1つ又は複数のストリーミング・セグメント・エンコードから)を入手することができる。各ストリーミング・セグメント・エンコードは、一定ビット・レート(CBR)または可変ビット・レート(VBR)とすることができる(そして、CBRおよびVBRの使用は、ストリーミング・セグメント・エンコード毎に混合することができる)。
[0040] 図3は、インデックス化ファイル・レイアウトを用いた、マルチメディア・コンテンツの区分ストリーミングのシステムを一般化したブロック図300で示す。図300において、サーバー310(例えば、標準的なHTTPサーバーのようなサーバー・コンピューター・システム)がマルチメディア・コンテンツをクライアント320(例えば、ラップトップまたはデスクトップ・コンピューターのようなクライアント・コンピューター・システム、あるいはPDAまたは移動体電話機のような他のタイプのコンピューティング・デバイス)にネットワーク330(例えば、インターネット)を通じて供給する。図300では、サーバー310はプログラムをインデックス化ファイルに格納する。クライアント320は、クライアント側レート制御ソフトウェアおよび/またはハードウェアを備えている。
[0041] 具体的な一実施態様例では、サーバー310は標準的なHTTPサーバーであり、ファイルを配給することができる以外には、特別のストリーミング能力が全くない。サーバー310は特殊ビット・レート選択能力を全くサポートしないので、クライアント320が全てのビット・レート選択動作(activities)を実行しなければならない。この実施態様では、クライアント320は全てのビット・レート選択動作を実行する。例えば、クライアント320は、サーバー310から入手したインデックス情報を用いて(例えば、単独で、またはクライアント・バッファー情報、ネットワーク帯域幅等というような他の情報と組み合わせて)、レート制御を実行することができる。しかしながら、他の実施態様では、レート制御機能の一部または全部をサーバーにおいて行うことができる。
[0042] 図4は、多ビット・レート・ビデオ・ストリーミング・システム300(図3)において用いるために、種々のビット・レートでマルチメディア・プログラムのビデオをエンコードして1組のビット・ストリーム410〜412を得るために、事前計算動き情報と共にビデオ・エンコーダー100(図1)を用いる多ビット・レート・ビデオ・エンコーディング・システム400を示す。この図に示すように、ビデオ・エンコーディング・システム400は、初期のビット・レートが最も高いストリーム410から開始して、連続的にビット・レートが低下するビット・ストリーム411〜412を含む1組のビット・ストリームを生成する。例示の目的で、図4は連続的にビット・レートが低下する3つのストリームを生成する多ビット・レート・ビデオ・エンコーディング・システム400を示す。しかしながら、多ビット・レート・ビデオ・エンコーディング・システムは、種々のビット・レートでいかなる数のストリームでも生成するように設計することもできることは明白なはずである。
[0043] 図5は、1組のビット・ストリーム410〜412をエンコードするために、多ビット・レート・ビデオ・エンコーディング・システムが実行するプロセス・フロー500を示す。最初の動作において、多ビット・レート・ビデオ・エンコーディング・システム400は、最初に、初期のビット・レートが最も高いストリーム410をエンコードする。初期のビット・レートが最も高いストリーム410に対して、ビデオ・エンコーディング・システム400は、生ビデオ・コンテンツをビデオ・エンコーダー100のビデオ入力110に入力する。これはビデオ・コンテンツの最初のエンコードであるので、事前計算された動き情報は一般に入手可能ではなく、ビデオ・エンコーダーの動き情報入力120は0となる。この場合、ビデオ・エンコーダー100の動き推定部258(図2)が動き推定プロセスを実行して、ビット・レートが最も高いストリームに対するビデオ・コンテンツのフレーム間の動き補償のための動き情報を生成する。あるいは、事前計算動き情報が入手可能である場合(以下で論ずるマルチ・コア動き事前計算を用いて、動き情報を事前計算する場合等)、事前計算された動き情報がビデオ・エンコーダー100の入力120に供給される。次いで、ビデオ・エンコーダーは、エンコードの間フレーム間の動き補償のために、この入力された動き情報を用いることを選択することができる(例えば、図2における動き情報選択スイッチ256を通じて)。
[0044] 動作511〜518の繰り返しループにおいて、多レート・ビデオ・エンコーディング・システムは、次に、後続の各ビット・レート・ストリーム411〜412をエンコードする。これら後続のストリーム411〜412に対して、連続的に低下するビット・レートで、多ビット・レート・ビデオ・エンコーディング・システム400は再度同じ生ビデオ・コンテンツをビデオ・エンコーダー100の入力110に供給する。加えて、各ストリーム410〜412の動き補償に用いられる動き情報が、ビデオ・エンコーダー100の出力に供給され、動作512に示すように、次のストリーム411〜412のビデオ・エンコーダーの動き情報入力120に受け渡される。つまり、例えば、ビデオ・エンコーダーにおいて初期ストリーム410のために動き推定部258によって計算された動き情報は、次にビット・レートが低いストリーム411のビデオ・エンコーダーによって用いられるために受け渡される。
[0045] 動作513〜517によって示すように、後続のビット・レート・ストリーム毎のビデオ・エンコーダーは、次に、直前のストリームからその入力120に受け渡された動き情報を用いるか否か(動作515)、または新たな動き推定を行うか否か(動作516)選択する。一般に、予期計算された動き情報を用いるか、または動き推定を新たに行うかについての判断は、所望のエンコーディング効率および品質で動き補償を実行するには動き情報に十分な信頼性がなくなるまでに限って、エンコーディング・パラメータが、次に低いビット・レートが得られるように変化しつつあるか否かに基づいて行われる。多ビット・レート・ビデオ・エンコーディング・システム400の一実施態様例では、動き情報の選択は、現ストリーム411〜412に新たな更に低いビット・レートが得られるように、ビデオ解像度を変化させたか否かに基づくことができる。したがって、ビデオ・エンコーダーは、動作513において、ストリームをエンコードするために用いるべきビデオ解像度を決定する。判断514において、動き情報選択スイッチ256は、ビデオ解像度が直前のストリームのそれに対して変更される(resize)か否かに基づいて、どの動き情報を用いるべきか決定する。ビデオ解像度が不変のままである場合、ビデオ・エンコーダーは、動作515によって示すように、直前のストリームのエンコードから受け渡された動き情報を用いて、後続のストリームをエンコードすることを選択する。しかしながら、ビデオ解像度が変更される場合、ビデオ・エンコーダーは代わりにその動き推定部285を用いて、新たなビデオ解像度でイントラ・コード化される基準フレームを用いて、ビデオ・コンテンツに対して新たな動き推定(動作516)を行う。動作517において、ビデオ・エンコーダーは次にこの新たな動き情報を用いてストリームをエンコードする。次に、新たに計算された動き情報は、次にビット・レートが低いストリームのビデオ・エンコーダーに受け渡される(次の後続ストリームをエンコードするループ511〜518の次の繰り返しにおける動作512において)。
[0046] このように、以前のビット・レート・ストリームのエンコードの間に動き推定から計算された動き情報を受け渡し、次にビット・レートが低いストリームのフレーム間エンコードのために、多ビット・レート・ビデオ・エンコーディング・システム400によって用いることができる。
III.マルチ・コア動き計算ビデオ・エンコーダー
[0047] 先に論じたビデオ・エンコーダー100の動き推定部258と同様、動き推定は、通例、フレーム間ピクチャーのブロック単位または他の同様のサンプル集合単位で、一般的には事前にエンコードされたフレーム(例えば、通例ではビデオの事前にエンコードされたイントラ・フレーム)から再現された(即ち、ビデオ・デコーダーによって行われるように)基準ピクチャーに関して行われる。動き推定は、通例、基準ピクチャーにおいて一致度が最も高いブロックを検索することを伴う。言い換えると、動き推定は、基準ピクチャーにおいて、インター・フレーム・ピクチャーの所与のブロックに対して最も小さな残差を生成するブロックを突き止めようとして、この所与のイントラ・フレーム・ピクチャー・ブロックと基準フレームとの一致度が最も高いブロックとの間の空間的変位である動き情報(動きベクトルのような)を発生する。再現されたイントラ・コード化フレームである基準フレームを動き推定に用いる理由は、このように事前にエンコードされたフレームのみが、デコーダーにおいてイントラ・コード化フレームを再現する際に用いるために、全く同じように利用可能であるからである。
[0048] 以下の章では、マルチ・コア・プロセッサー・コンピューターを用いて、生ビデオ・コンテンツに対して動き推定事前計算を実行し、次いでビデオ・エンコーダー100への事前計算動き情報入力としてビデオ・コンテンツを用いることを可能にする技法を紹介する。従来の動き推定とは異なり、この動き推定事前計算は、ビデオ・コンテンツのあらゆるエンコード(フレーム内コーディングを含む)の前に行われる。したがって、事前にエンコードされたフレームは未だ入手可能ではなく、基準フレームとして用いるために再現することができるフレームはない。このマルチ・コア動き情報事前計算技法は、再現されたイントラ・コード化フレーム・ピクチャーの代わりに、動き推定の基準ピクチャーに、生ビデオ・コンテンツのフレームを用いる。ビデオ・エンコーダー100によって後にエンコードされるときの量子化およびその他の圧縮損失のために、基準フレームとして用いられるこれらの生ビデオ・フレームは、一般に、デコーダーにおいて全く同じように再現することはできない。このマルチ・コア動き推定事前計算では生ビデオ・フレームを基準ピクチャーとして用いるために、動き情報は、事前にエンコードされて再現されたイントラ・フレームに基づくビデオ・エンコードの間の動き推定程には精度が高くない可能性があり、その結果、フレーム間エンコードに用いるときに、圧縮効率が低くなる可能性がある。
[0049] 図6は、マルチ・コア・プロセッサー・コンピューター上に動き情報事前計算を含むビデオ・エンコーディング・システム600の実施態様の一例を、事前計算動き情報入力ビデオ・エンコーダー100(図1)を用いるエンコードと共に示す。ビデオ・エンコーディング・システム600は、動き推定を事前計算として(ビデオ・エンコードに先立って)実行する。
[0050] ビデオ・エンコーディング・システム600は、動き推定の計算負荷を、マルチ・コア・プロセッサー・コンピューター610の別個のCPUコア620〜623間で分割することによって、性能上の利点を達成する。マルチ・コア・プロセッサー・コンピューター610は、あらゆる数「n」のCPUコアでも有することができ、これらのCPUコア上で動き推定を処理する。例えば、Intel社およびその他によって製造されている現在入手可能なマルチ・コア・コンピューターは、4、8、16、32、64個、更にこれらよりも多いプロセッサー・コアを有する。
[0051] 動き推定のために、CPUコア620〜623は、各々、生ビデオ・コンテンツのフレーム群の内別のインター・フレームの動き推定を実行するために割り当てられる。このように、動き推定事前計算は、CPUコア間におけるメモリー競合を回避する。生ビデオ・コンテンツの別個のインター・フレーム(図ではF0...Fnで示す)が、それぞれの基準フレームと共に、コンピューター610の別個のCPUコアに供給される。CPUコアは、それらのそれぞれのインター・フレーム・ピクチャーに対して動き推定を実行して、動き情報(インター・フレームのブロックに対する1組の動きベクトルのような)を生成する。次いで、生ビデオ・コンテンツの次のインター・フレーム・ピクチャー群(例えば、1回の繰り返し当たり「n」個のフレームから成る1群)についてこれを繰り返して、ビデオ・シーケンスまたはプログラム全体についての動き情報を生成する。
[0052] 次に、PCUコアを用いて動き推定事前計算によって生成した動き情報を、生ビデオ・コンテンツと共に、ビデオ・エンコーダー100(図1)に入力することができる。次いで、ビデオ・エンコーダー100は先に進んで、ビデオをエンコードする。このビデオのエンコードは、マルチ・コア動き推定事前計算からの動き情報を用いて、ビデオ・コンテンツのインター・フレームをエンコードすることを含む。ビデオ・エンコーダー100はマルチ・コア動き推定事前計算からの動き情報を用いるので、ビデオ・エンコーダー100は、それ自体が動き推定を(動き推定部258において)実行することを回避し、ビデオ・エンコードの大部分が省かれる。動き推定は、ビデオ・フレームがエンコードされる毎に順次行われるのではなく、マルチCPUコア間で本質的に並列に事前計算として行われるので、このマルチ・コア・ビデオ・エンコーダーは、遙かに速いビデオのエンコードを達成する。
IV.代表的なコンピューティング環境
[0053] 図7は、記載した実施形態、技法、および技術を実現することができる、適したコンピューティング環境700の一般化した例を示す。コンピューティング環境700は、本技術の使用範囲や機能に関して何の限定をも示唆することは意図していない。何故なら、本技術は多様な汎用または特殊目的コンピューティング環境においても実現できるからである。例えば、開示した技術は、ハンド・ヘルド・デバイス、マルチプロセッサー・システム、マイクロプロセッサーに基づくまたはプログラマブルな消費者用電子機器、ネットワークPC、ミニコンピューター、メインフレーム・コンピューター等を含む、他のコンピューター・システム構成でも実現することができる。また、開示した技術は、分散型コンピューティング環境においても実施することができ、この場合、通信ネットワークによってリンクされたリモート処理デバイスによってタスクが実行される。分散型コンピューティング環境では、プログラム・モジュールをローカルおよびリモート双方のメモリー記憶デバイスに位置付けることができる。
[0061] 図7を参照すると、コンピューティング環境700は、少なくとも1つの中央演算装置710とメモリー720とを含む。先に論じたマルチ・コア動き情報事前計算のために、コンピューターは複数のCPUコアを有するマルチ・コアCPUを含む。図7では、この最も基本的な構成730が破線の内部に含まれている。中央演算装置710は、コンピューター実行可能命令を実行し、実在のプロセッサーであってもまたは仮想プロセッサーであってもよい。マルチ処理システムでは、多数の演算装置がコンピューター実行可能命令を実行することによって、処理パワーを増大させ、したがって、多数のプロセッサーが同時に実行することができる。メモリー720は、揮発性メモリー(例えば、レジスター、キャッシュ、RAM)、不揮発性メモリー(例えば、ROM、EEPROM、フラッシュ・メモリー等)、またはこれら2つの何らかの組み合わせとすることができる。メモリー720は、例えば、本明細書において記載した技術を実現することができるソフトウェア780を格納する。コンピューティング環境は、更に別の機構を有することもある。例えば、コンピューティング環境700は、ストレージ740、1つ又は複数の入力デバイス750、1つ又は複数の出力デバイス760、および1つ又は複数の通信接続770を含む。バス、コントローラー、またはネットワークのような相互接続メカニズム(図示せず)が、コンピューティング環境700のコンピューターを相互接続する。通例、オペレーティング・システム・ソフトウェア(図示せず)が、コンピューティング環境700において実行する他のソフトウェアに合わせて動作環境を提供し、コンピューティング環境700のコンポーネントの動作(activities)を調整する。
[0055] ストレージ740は、リムーバブルまたは非リムーバブルであってもよく、磁気ディスク、磁気テープまたはカセット、CD−ROM、CD−RW、DVD、あるいは情報を格納するために用いることができ、コンピューティング環境700内でアクセスすることができるのであれば他のいずれの媒体でも含む。ストレージ740は、本明細書において記載した技術を実現することができるソフトウェア780の命令を格納する。
[0056] 入力デバイス(1つまたは複数)750は、キーボード、キーパッド、マウス、ペン、またはトラックボールのような接触入力デバイス、音声入力デバイス、走査デバイス、またはコンピューティング環境700に入力を供給するその他のデバイスとすることができる。オーディオについては、入力デバイス(1つまたは複数)750は、サウンド・カード、あるいはオーディオ入力をアナログまたはデジタル形態で受け入れる同様のデバイス、あるいはオーディオ・サンプルをコンピューティング環境700に供給するCD−ROMリーダーとすることができる。出力デバイス(1つまたは複数)760は、ディスプレイ、プリンター、スピーカー、CD−ライター、またはコンピューティング環境700からの出力を供給するその他のデバイスとすることができる。
[0057] 通信接続(1つまたは複数)770は、通信媒体(例えば、接続ネットワーク)を通じた他のコンピューティング・エンティティとの通信を可能にする。通信媒体は、コンピューター実行可能命令、圧縮グラフィクス情報、または変調データ信号の中にある他のデータというような情報を伝える。
[0058] コンピューター読み取り可能媒体は、コンピューティング環境700内部においてアクセスすることができる利用可能なあらゆる媒体である。一例として、そして限定ではなく、コンピューティング環境700では、コンピューター読み取り可能媒体はメモリー720、ストレージ740、通信媒体、および以上の内のいずれかの組み合わせを含む。容易に理解できてしかるべきであるが、コンピューター読み取り可能記憶媒体という用語は、メモリー620およびストレージ640のようなデータ記憶媒体や、変調データ信号のような単純でない伝送媒体を含む。
[0059] 本明細書において記載した方法は、そのいずれも、1つ又は複数のコンピューター読み取り可能媒体(例えば、ストレージまたは他の有形媒体)を通じて実行することができ、このような方法を実行する(例えば、コンピューティング・デバイス、オーディオおよび/またはビデオ処理デバイス、あるいはコンピューターに実行させる)コンピューター実行可能命令を備えている(例えば、有するまたは格納する)。動作は、完全自動、半自動とすることができ、または手作業の介入を伴うことができる。
[0060] 以上、本改革の原理について詳細な説明および添付図面において説明し図示したが、このような原理から逸脱することなく、種々の実施形態の構成および詳細を変更できることは認められよう。尚、本明細書において記載したプログラム、プロセス、または方法は、特に指示されていない限り、いずれの特定のタイプのコンピューティング環境にも関係付けられていないまたは限定されないことは言うまでもない。様々なタイプの汎用または特殊コンピューティング環境を、本明細補において記載した教示と共に用いることができ、あるいはこれらのコンピューティング環境が、本明細書において記載した教示にしたがって動作を実行することもできる。ソフトウェアとして示した実施形態のエレメントをハードウェアで実現することもでき、その逆も可能である。
[0061] 本発明の原理を適用することができる数多くの実施形態があり得ることに鑑み、以下の特許請求の範囲およびその均等物の範囲および主旨に該当すると考えられる実施形態全てを、我々の発明として特許請求する。

Claims (8)

  1. 多ビット・レート・ビデオにエンコードするために生ビデオ・コンテンツを処理する方法であって、
    徐々に低下するビット・レートで連続的に、圧縮ビデオ・ビット・ストリームとしてエンコードするために、生ビデオ・コンテンツを受けるステップと、
    初期圧縮ビデオ・ビット・ストリームを最も高いビット・レートでエンコードするステップであって、前記初期圧縮ビデオ・ビット・ストリームをエンコードすることによって、前記ビデオのインター・フレーム・ピクチャーのエンコードのために動き情報を生成する、ステップと、
    徐々に低下するビット・レートで後続の圧縮ビデオ・ビット・ストリームをエンコードするために、
    以前の圧縮ビデオ・ビット・ストリームをエンコードすることによって生成された前記動き情報を、前記後続の圧縮ビデオ・ビット・ストリームのエンコードに受け渡すステップと、
    前記後続の圧縮ビデオ・ビット・ストリームについてのビデオ・エンコーディング・パラメータに基づく条件が満たされているか否か判断するステップと、
    前記条件が満たされている場合、前記後続の圧縮ビデオ・ビット・ストリームをエンコードするステップであって、前記後続の圧縮ビデオ・ビット・ストリームのインター・フレームが、直前の圧縮ビデオ・ビット・ストリームをエンコードすることから受け渡された前記動き情報を用いて、エンコードされる、ステップと、
    前記条件が満たされない場合、前記後続の圧縮ビデオ・ビット・ストリームの再現された基準フレームに基づいて動き推定を実行し、前記後続の圧縮ビデオ・ビット・ストリームをエンコードすることによって、新たな動き情報を生成するステップであって、前記後続の圧縮ビデオ・ビット・ストリームのインター・フレームが、前記新たな動き情報を用いて、エンコードされる、ステップと、
    前記初期および後続の圧縮ビデオ・ストリームを含む出力多ビット・レート・ビデオを生成するステップと、
    を備えている、方法。
  2. 請求項1記載の方法において、前記条件が、直前の圧縮ビデオ・ビット・ストリームと後続の圧縮ビデオ・ビット・ストリームとの間においてビデオ解像度が不変のままであることである、方法。
  3. マルチ・コアCPUを有するコンピューター上においてビデオをエンコードする方法であって、
    ビデオのエンコードに先だって、前記ビデオのインター・フレーム・ピクチャー群についての動き情報を、動き推定事前計算として生成するステップを備えており、前記動き情報を生成するステップが、
    1群におけるインター・フレーム・ピクチャー毎に、前記コンピューターの複数のCPUコアの別々の1つにおいて、動き推定を実行するステップであって、前記動き推定が、前記それぞれのインター・フレーム・ピクチャーの複数の組のエレメントについて動き情報を生成する、ステップと、
    前記ビデオをエンコードするステップであって、このエンコードが、前記動き推定事前計算によって生成された前記動き情報に基づいて、前記インター・フレーム・ピクチャーをエンコードすることを含む、ステップと、
    前記エンコードしたビデオを収録した出力圧縮ビデオ・ビット・ストリームを生成するステップと、
    を備えている、方法。
  4. 請求項3記載の方法であって、更に、
    徐々に低下するビット・レートで、前記ビデオを1つ又は複数の追加ストリームとしてエンコードするステップを備えており、前記追加ストリームをエンコードする前記ステップが、
    直前の圧縮ビデオ・ビット・ストリームをエンコードすることによって生成された前記動き情報を、後続の圧縮ビデオ・ビット・ストリームのエンコードに受け渡すステップと、
    前記後続の圧縮ビデオ・ビット・ストリームについてのビデオ・エンコーディング・パラメータに基づく条件が満たされているか否か判断するステップと、
    前記条件が満たされている場合、前記後続の圧縮ビデオ・ビット・ストリームをエンコードするステップであって、前記後続の圧縮ビデオ・ビット・ストリームのインター・フレームが、直前の圧縮ビデオ・ビット・ストリームをエンコードすることから受け渡された前記動き情報を用いて、エンコードされる、ステップと、
    前記条件が満たされない場合、前記後続の圧縮ビデオ・ビット・ストリームの再現された基準フレームに基づいて動き推定を実行し、前記後続の圧縮ビデオ・ビット・ストリームをエンコードすることによって、新たな動き情報を生成するステップであって、前記後続の圧縮ビデオ・ビット・ストリームのインター・フレームが、前記新たな動き情報を用いて、エンコードされる、ステップと、
    前記初期および後続の圧縮ビデオ・ストリームを含む出力多ビット・レート・ビデオを生成するステップと、
    を備えている、方法。
  5. 請求項4記載の方法において、前記条件が、直前の圧縮ビデオ・ビット・ストリームと後続の圧縮ビデオ・ビット・ストリームとの間においてビデオ解像度が不変のままであることである、方法。
  6. 多ビット・レート・ビデオ・ストリーミングのために圧縮ビデオ・ストリームをエンコードするビデオ処理システムであって、
    エンコードしようとする生ビデオ・コンテンツを格納するメモリーと、
    前記生ビデオ・コンテンツを複数の圧縮ビデオ・ストリームとしてエンコードするようにプログラミングされているコンピューター処理手段と、
    を備えており、
    前記圧縮ビデオ・ストリームの前記エンコードが、
    動き推定によって前記生ビデオ・コンテンツのインター・フレーム・ピクチャーをエンコードするために、元の動き情報を生成し、
    前記生ビデオ・コンテンツのインター・フレーム・ピクチャーをエンコードするための前記元の動き情報を用いて、前記生ビデオ・コンテンツから最上位品質の圧縮ビデオ・ビット・ストリームをエンコードし、
    後続の圧縮ビデオ・ビット・ストリームをより低いビット・レートでエンコードするためのビデオ解像度を決定し、
    前記後続の圧縮ビデオ・ビット・ストリームをエンコードするための前記ビデオ解像度が不変である場合、前記生ビデオ・コンテンツのインター・フレーム・ピクチャーをエンコードするための前記元の動き情報を用いて、前記生ビデオ・コンテンツから前記後続の圧縮ビデオ・ビット・ストリームをエンコードし、
    それ以外の場合、前記後続の圧縮ビデオ・ビット・ストリームをエンコードするための前記ビデオ解像度が、前記最上位品質の圧縮ビデオ・ビット・ストリームのそれから変更されている場合、前記後続の圧縮ビデオ・ビット・ストリームのイントラ・フレーム基準ピクチャーに対する動き推定によって、前記生ビデオ・コンテンツのイントラ・フレーム・ピクチャーをエンコードするために新たな動き情報を生成し、前記生ビデオ・コンテンツのインター・フレーム・ピクチャーをエンコードするための前記新たな動き情報を用いて、前記生ビデオ・コンテンツから前記後続の圧縮ビデオ・ビット・ストリームをエンコードする、
    ことを含む、ビデオ処理システム。
  7. 請求項6記載のビデオ処理システムにおいて、前記コンピューター処理手段が、多数の処理コアを有するマルチ・コア・コンピューター・プロセッサーであり、前記元の動き情報を生成する際に、前記生ビデオ・コンテンツのイントラ・フレーム・ピクチャーをエンコードするのに先立つ事前計算として、前記生ビデオ・コンテンツのインター・フレーム・ピクチャー群におけるインター・フレーム・ピクチャー毎に、前記処理コアの内別個の1つにおいて動き推定を実行する、ビデオ処理システム。
  8. 請求項7記載のビデオ処理システムにおいて、前記生ビデオ・コンテンツのインター・フレーム・ピクチャー群に対して動き推定を実行する際に、
    前記群の各インター・フレーム・ピクチャーを、前記マルチ・コア・コンピューター・プロセッサーの別個の処理コアに割り当て、
    それぞれのインター・フレーム・ピクチャー毎に、その割り当てられた別個の処理コアにおいて動き推定を実行する、
    ことを含む、ビデオ処理システム。
JP2011548015A 2009-01-29 2010-01-12 事前計算動き情報を用いたビデオ・エンコード Expired - Fee Related JP5410549B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/362,427 2009-01-29
US12/362,427 US8311115B2 (en) 2009-01-29 2009-01-29 Video encoding using previously calculated motion information
PCT/US2010/020789 WO2010088031A2 (en) 2009-01-29 2010-01-12 Video encoding using previously calculated motion information

Publications (3)

Publication Number Publication Date
JP2012516645A JP2012516645A (ja) 2012-07-19
JP2012516645A5 JP2012516645A5 (ja) 2013-03-21
JP5410549B2 true JP5410549B2 (ja) 2014-02-05

Family

ID=42354144

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011548015A Expired - Fee Related JP5410549B2 (ja) 2009-01-29 2010-01-12 事前計算動き情報を用いたビデオ・エンコード

Country Status (10)

Country Link
US (1) US8311115B2 (ja)
EP (1) EP2382785A4 (ja)
JP (1) JP5410549B2 (ja)
KR (1) KR101644208B1 (ja)
CN (1) CN102301717A (ja)
BR (1) BRPI1006846A8 (ja)
CA (1) CA2748374C (ja)
IL (1) IL213567A (ja)
MX (1) MX2011007374A (ja)
WO (1) WO2010088031A2 (ja)

Families Citing this family (80)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7519274B2 (en) 2003-12-08 2009-04-14 Divx, Inc. File format for multiple track digital data
US8472792B2 (en) 2003-12-08 2013-06-25 Divx, Llc Multimedia distribution system
US7515710B2 (en) 2006-03-14 2009-04-07 Divx, Inc. Federated digital rights management scheme including trusted systems
US8233768B2 (en) 2007-11-16 2012-07-31 Divx, Llc Hierarchical and reduced index structures for multimedia files
US8997161B2 (en) 2008-01-02 2015-03-31 Sonic Ip, Inc. Application enhancement tracks
US20100010893A1 (en) * 2008-07-09 2010-01-14 Google Inc. Video overlay advertisement creator
US8311111B2 (en) 2008-09-11 2012-11-13 Google Inc. System and method for decoding using parallel processing
MX2011007344A (es) 2009-01-07 2012-02-28 Divx Inc Creacion singular, colectiva y automatizada de una guia de medios de contenido en linea.
WO2010082904A1 (en) * 2009-01-15 2010-07-22 Agency For Science, Technology And Research Image encoding methods, image decoding methods, image encoding apparatuses, and image decoding apparatuses
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
US20100220786A1 (en) * 2009-02-27 2010-09-02 Hong Kong Applied Science and Technology Research Institute Company Limited Method and apparatus for multiple reference picture motion estimation
EP2507995A4 (en) 2009-12-04 2014-07-09 Sonic Ip Inc SYSTEMS AND METHODS FOR TRANSPORTING ELEMENTARY BIT TRAIN CRYPTOGRAPHIC MATERIAL
FR2954035B1 (fr) * 2009-12-11 2012-01-20 Thales Sa Procede d'estimation de la qualite video a une resolution quelconque
US20110153984A1 (en) * 2009-12-21 2011-06-23 Andrew Wolfe Dynamic voltage change for multi-core processing
US20110299604A1 (en) * 2010-06-04 2011-12-08 Apple Inc. Method and apparatus for adaptive video sharpening
US8705616B2 (en) 2010-06-11 2014-04-22 Microsoft Corporation Parallel multiple bitrate video encoding to reduce latency and dependences between groups of pictures
WO2012016354A1 (en) * 2010-08-04 2012-02-09 Nxp B.V. Video player
EP2609744A4 (en) * 2010-08-26 2017-07-19 NXP USA, Inc. Video processing system and method for parallel processing of video data
US8914534B2 (en) 2011-01-05 2014-12-16 Sonic Ip, Inc. Systems and methods for adaptive bitrate streaming of media stored in matroska container files using hypertext transfer protocol
US9215466B2 (en) 2011-01-31 2015-12-15 Apple Inc. Joint frame rate and resolution adaptation
US20130021488A1 (en) * 2011-07-20 2013-01-24 Broadcom Corporation Adjusting Image Capture Device Settings
US8818171B2 (en) 2011-08-30 2014-08-26 Kourosh Soroushian Systems and methods for encoding alternative streams of video for playback on playback devices having predetermined display aspect ratios and network connection maximum data rates
US9467708B2 (en) 2011-08-30 2016-10-11 Sonic Ip, Inc. Selection of resolutions for seamless resolution switching of multimedia content
WO2013033458A2 (en) 2011-08-30 2013-03-07 Divx, Llc Systems and methods for encoding and streaming video encoded using a plurality of maximum bitrate levels
US8964977B2 (en) 2011-09-01 2015-02-24 Sonic Ip, Inc. Systems and methods for saving encoded media streamed using adaptive bitrate streaming
US8909922B2 (en) 2011-09-01 2014-12-09 Sonic Ip, Inc. Systems and methods for playing back alternative streams of protected content protected using common cryptographic information
US9591318B2 (en) 2011-09-16 2017-03-07 Microsoft Technology Licensing, Llc Multi-layer encoding and decoding
US9659437B2 (en) 2012-09-28 2017-05-23 Bally Gaming, Inc. System and method for cross platform persistent gaming sessions using a mobile device
US9672688B2 (en) 2011-10-14 2017-06-06 Bally Gaming, Inc. System and method for cross platform persistent gaming sessions using a mobile device
US9767642B2 (en) 2011-10-14 2017-09-19 Bally Gaming, Inc. System and method for cross platform persistent gaming sessions using a mobile device
US20130097220A1 (en) * 2011-10-14 2013-04-18 Bally Gaming, Inc. Streaming bitrate control and management
US9100657B1 (en) 2011-12-07 2015-08-04 Google Inc. Encoding time management in parallel real-time video encoding
US20130179199A1 (en) 2012-01-06 2013-07-11 Rovi Corp. Systems and methods for granting access to digital content using electronic tickets and ticket tokens
US11089343B2 (en) 2012-01-11 2021-08-10 Microsoft Technology Licensing, Llc Capability advertisement, configuration and control for video coding and decoding
WO2013173721A1 (en) 2012-05-18 2013-11-21 Home Box Office, Inc. Audio-visual content delivery
US9532080B2 (en) 2012-05-31 2016-12-27 Sonic Ip, Inc. Systems and methods for the reuse of encoding information in encoding alternative streams of video data
US9571827B2 (en) * 2012-06-08 2017-02-14 Apple Inc. Techniques for adaptive video streaming
US9197685B2 (en) 2012-06-28 2015-11-24 Sonic Ip, Inc. Systems and methods for fast video startup using trick play streams
US9143812B2 (en) 2012-06-29 2015-09-22 Sonic Ip, Inc. Adaptive streaming of multimedia
US10452715B2 (en) 2012-06-30 2019-10-22 Divx, Llc Systems and methods for compressing geotagged video
EP2875417B1 (en) 2012-07-18 2020-01-01 Verimatrix, Inc. Systems and methods for rapid content switching to provide a linear tv experience using streaming content distribution
US8997254B2 (en) 2012-09-28 2015-03-31 Sonic Ip, Inc. Systems and methods for fast startup streaming of encrypted multimedia content
US8914836B2 (en) 2012-09-28 2014-12-16 Sonic Ip, Inc. Systems, methods, and computer program products for load adaptive streaming
US9191457B2 (en) 2012-12-31 2015-11-17 Sonic Ip, Inc. Systems, methods, and media for controlling delivery of content
US9313510B2 (en) 2012-12-31 2016-04-12 Sonic Ip, Inc. Use of objective quality measures of streamed content to reduce streaming bandwidth
US9264475B2 (en) 2012-12-31 2016-02-16 Sonic Ip, Inc. Use of objective quality measures of streamed content to reduce streaming bandwidth
US20140205012A1 (en) * 2013-01-21 2014-07-24 Mediatek Inc. Method and apparatus using software engine and hardware engine collaborated with each other to achieve hybrid video encoding
EP2949123A2 (en) 2013-02-27 2015-12-02 Apple Inc. Adaptive streaming techniques
US9350990B2 (en) 2013-02-28 2016-05-24 Sonic Ip, Inc. Systems and methods of encoding multiple video streams with adaptive quantization for adaptive bitrate streaming
US9357210B2 (en) 2013-02-28 2016-05-31 Sonic Ip, Inc. Systems and methods of encoding multiple video streams for adaptive bitrate streaming
US9906785B2 (en) 2013-03-15 2018-02-27 Sonic Ip, Inc. Systems, methods, and media for transcoding video data according to encoding parameters indicated by received metadata
US10397292B2 (en) 2013-03-15 2019-08-27 Divx, Llc Systems, methods, and media for delivery of content
US9344517B2 (en) 2013-03-28 2016-05-17 Sonic Ip, Inc. Downloading and adaptive streaming of multimedia content to a device with cache assist
WO2014190468A1 (en) 2013-05-27 2014-12-04 Microsoft Corporation Video encoder for images
US9247317B2 (en) 2013-05-30 2016-01-26 Sonic Ip, Inc. Content streaming with client device trick play index
US9094737B2 (en) 2013-05-30 2015-07-28 Sonic Ip, Inc. Network video streaming with trick play based on separate trick play files
US9967305B2 (en) 2013-06-28 2018-05-08 Divx, Llc Systems, methods, and media for streaming media content
US9343112B2 (en) 2013-10-31 2016-05-17 Sonic Ip, Inc. Systems and methods for supplementing content from a server
US10057590B2 (en) 2014-01-13 2018-08-21 Mediatek Inc. Method and apparatus using software engine and hardware engine collaborated with each other to achieve hybrid video encoding
JP2015173404A (ja) 2014-03-12 2015-10-01 富士通株式会社 動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム
EP3120556B1 (en) 2014-03-17 2021-01-13 Microsoft Technology Licensing, LLC Encoder-side decisions for screen content encoding
US9866878B2 (en) 2014-04-05 2018-01-09 Sonic Ip, Inc. Systems and methods for encoding and playing back video at different frame rates using enhancement layers
US10924743B2 (en) 2015-02-06 2021-02-16 Microsoft Technology Licensing, Llc Skipping evaluation stages during media encoding
KR102263696B1 (ko) * 2015-03-20 2021-06-10 삼성전자주식회사 무선통신 시스템에서 데이터 송수신 방법 및 장치
US20160316220A1 (en) * 2015-04-21 2016-10-27 Microsoft Technology Licensing, Llc Video encoder management strategies
US10136132B2 (en) 2015-07-21 2018-11-20 Microsoft Technology Licensing, Llc Adaptive skip or zero block detection combined with transform size decision
US10015499B1 (en) * 2015-07-30 2018-07-03 Teradici Corporation Method and apparatus for layered wavelet image compression
US9794574B2 (en) 2016-01-11 2017-10-17 Google Inc. Adaptive tile data size coding for video and image compression
US10542258B2 (en) 2016-01-25 2020-01-21 Google Llc Tile copying for video compression
US10075292B2 (en) 2016-03-30 2018-09-11 Divx, Llc Systems and methods for quick start-up of playback
US9639935B1 (en) 2016-05-25 2017-05-02 Gopro, Inc. Apparatus and methods for camera alignment model calibration
WO2017205597A1 (en) * 2016-05-25 2017-11-30 Gopro, Inc. Image signal processing-based encoding hints for motion estimation
EP3466051A1 (en) 2016-05-25 2019-04-10 GoPro, Inc. Three-dimensional noise reduction
US10148989B2 (en) 2016-06-15 2018-12-04 Divx, Llc Systems and methods for encoding video content
BR112018072407A2 (pt) 2016-06-17 2019-02-19 Hewlett-Packard Development Company, L.P. estrutura de dados comum em máquina de aprendizagem.
US10498795B2 (en) 2017-02-17 2019-12-03 Divx, Llc Systems and methods for adaptive switching between multiple content delivery networks during adaptive bitrate streaming
US10477064B2 (en) 2017-08-21 2019-11-12 Gopro, Inc. Image stitching with electronic rolling shutter correction
KR102347598B1 (ko) * 2017-10-16 2022-01-05 삼성전자주식회사 영상 부호화 장치 및 인코더
KR102476204B1 (ko) * 2017-10-19 2022-12-08 삼성전자주식회사 멀티 코덱 인코더 및 이를 포함하는 멀티 코덱 인코딩 시스템
US10440367B1 (en) * 2018-06-04 2019-10-08 Fubotv Inc. Systems and methods for adaptively encoding video stream

Family Cites Families (141)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2389277A1 (fr) 1977-04-29 1978-11-24 Ibm France Procede de quantification a allocation dynamique du taux de bits disponible, et dispositif de mise en oeuvre dudit procede
FR2412987A1 (fr) 1977-12-23 1979-07-20 Ibm France Procede de compression de donnees relatives au signal vocal et dispositif mettant en oeuvre ledit procede
DE3171990D1 (en) 1981-04-30 1985-10-03 Ibm Speech coding methods and apparatus for carrying out the method
JPH0556275A (ja) 1990-08-30 1993-03-05 Sharp Corp 画像符号化装置及び画像復号装置
EP0631444B1 (en) 1992-03-03 1998-12-23 Kabushiki Kaisha Toshiba Time-varying image encoder
JP3032088B2 (ja) 1992-03-03 2000-04-10 株式会社東芝 動画像符号化装置
US5436665A (en) 1992-03-03 1995-07-25 Kabushiki Kaisha Toshiba Motion picture coding apparatus
DE4211945C1 (ja) 1992-04-09 1993-05-19 Institut Fuer Rundfunktechnik Gmbh, 8000 Muenchen, De
JP3508146B2 (ja) 1992-09-11 2004-03-22 ソニー株式会社 ディジタル信号符号化復号化装置、ディジタル信号符号化装置及びディジタル信号復号化装置
JP3185413B2 (ja) 1992-11-25 2001-07-09 ソニー株式会社 直交変換演算並びに逆直交変換演算方法及びその装置、ディジタル信号符号化及び/又は復号化装置
US5463424A (en) 1993-08-03 1995-10-31 Dolby Laboratories Licensing Corporation Multi-channel transmitter/receiver system providing matrix-decoding compatible signals
NL9301358A (nl) 1993-08-04 1995-03-01 Nederland Ptt Transcodeerinrichting.
US5537440A (en) 1994-01-07 1996-07-16 Motorola, Inc. Efficient transcoding device and method
US5515107A (en) 1994-03-30 1996-05-07 Sigma Designs, Incorporated Method of encoding a stream of motion picture data
US5541852A (en) 1994-04-14 1996-07-30 Motorola, Inc. Device, method and system for variable bit-rate packet video communications
US5617142A (en) 1994-11-08 1997-04-01 General Instrument Corporation Of Delaware Method and apparatus for changing the compression level of a compressed digital signal
US5623424A (en) 1995-05-08 1997-04-22 Kabushiki Kaisha Toshiba Rate-controlled digital video editing method and system which controls bit allocation of a video encoder by varying quantization levels
US6026182A (en) 1995-10-05 2000-02-15 Microsoft Corporation Feature segmentation
US5835495A (en) 1995-10-11 1998-11-10 Microsoft Corporation System and method for scaleable streamed audio transmission over a network
US6957350B1 (en) 1996-01-30 2005-10-18 Dolby Laboratories Licensing Corporation Encrypted and watermarked temporal and resolution layering in advanced television
US5996022A (en) 1996-06-03 1999-11-30 Webtv Networks, Inc. Transcoding data in a proxy computer prior to transmitting the audio data to a client
SE515535C2 (sv) 1996-10-25 2001-08-27 Ericsson Telefon Ab L M En transkoder
JPH10229420A (ja) 1997-02-17 1998-08-25 Matsushita Electric Ind Co Ltd 通信システム
EP0923243B1 (en) 1997-07-25 2010-09-15 Sony Corporation Editing device, editing method, splicing device, splicing method, encoding device, and encoding method
US6192075B1 (en) 1997-08-21 2001-02-20 Stream Machine Company Single-pass variable bit-rate control for digital video coding
EP0909094A1 (en) 1997-10-07 1999-04-14 CANAL+ Société Anonyme Multithread data processor
JPH11275592A (ja) 1998-01-22 1999-10-08 Victor Co Of Japan Ltd 動画像符号列変換装置及びその方法
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
EP1074148B1 (en) 1998-03-20 2003-05-28 STMicroelectronics Asia Pacific Pte Ltd. Moving pictures encoding with constant overall bit rate
US6466623B1 (en) 1998-03-27 2002-10-15 Industrial Technology Research Institute Method and apparatus for motion estimation for high performance transcoding
JP4123567B2 (ja) 1998-04-30 2008-07-23 ソニー株式会社 画像信号処理装置及び方法
US6859496B1 (en) * 1998-05-29 2005-02-22 International Business Machines Corporation Adaptively encoding multiple streams of video data in parallel for multiplexing onto a constant bit rate channel
US6249288B1 (en) 1998-12-14 2001-06-19 Ati International Srl Multi thread display controller
US6434197B1 (en) 1999-01-07 2002-08-13 General Instrument Corporation Multi-functional transcoder for compressed bit streams
US6259741B1 (en) 1999-02-18 2001-07-10 General Instrument Corporation Method of architecture for converting MPEG-2 4:2:2-profile bitstreams into main-profile bitstreams
US6463414B1 (en) 1999-04-12 2002-10-08 Conexant Systems, Inc. Conference bridge processing of speech in a packet network environment
US7885340B2 (en) * 1999-04-27 2011-02-08 Realnetworks, Inc. System and method for generating multiple synchronized encoded representations of media data
US6370502B1 (en) 1999-05-27 2002-04-09 America Online, Inc. Method and system for reduction of quantization-induced block-discontinuities and general purpose audio codec
US6426977B1 (en) 1999-06-04 2002-07-30 Atlantic Aerospace Electronics Corporation System and method for applying and removing Gaussian covering functions
DE19930879C1 (de) * 1999-07-05 2001-02-08 Siemens Ag Verfahren und Vorrichtung zur Unterdrückung von Stimulationen bei einem Magnetresonanztomographiegerät
US7315815B1 (en) 1999-09-22 2008-01-01 Microsoft Corporation LPC-harmonic vocoder with superframe structure
US6300973B1 (en) 2000-01-13 2001-10-09 Meir Feder Method and system for multimedia communication control
US6574279B1 (en) 2000-02-02 2003-06-03 Mitsubishi Electric Research Laboratories, Inc. Video transcoding using syntactic and semantic clues
US6522693B1 (en) 2000-02-23 2003-02-18 International Business Machines Corporation System and method for reencoding segments of buffer constrained video streams
US6404814B1 (en) 2000-04-28 2002-06-11 Hewlett-Packard Company Transcoding method and transcoder for transcoding a predictively-coded object-based picture signal to a predictively-coded block-based picture signal
US7206016B2 (en) 2000-05-01 2007-04-17 Polycom, Inc. Filtering artifacts from multi-threaded video
US6650705B1 (en) 2000-05-26 2003-11-18 Mitsubishi Electric Research Laboratories Inc. Method for encoding and transcoding multiple video objects with variable temporal resolution
US6647061B1 (en) 2000-06-09 2003-11-11 General Instrument Corporation Video size conversion and transcoding from MPEG-2 to MPEG-4
KR100341063B1 (ko) 2000-06-28 2002-06-20 송문섭 실시간 영상 통신을 위한 율제어 장치 및 그 방법
US20040125877A1 (en) 2000-07-17 2004-07-01 Shin-Fu Chang Method and system for indexing and content-based adaptive streaming of digital video content
US6963347B1 (en) 2000-08-04 2005-11-08 Ati International, Srl Vertex data processing with multiple threads of execution
GB2366464A (en) 2000-08-14 2002-03-06 Nokia Mobile Phones Ltd Video coding using intra and inter coding on the same data
US6934334B2 (en) 2000-10-02 2005-08-23 Kabushiki Kaisha Toshiba Method of transcoding encoded video data and apparatus which transcodes encoded video data
US7039116B1 (en) 2000-11-07 2006-05-02 Cisco Technology, Inc. Methods and apparatus for embedding and format conversion of compressed video data
US6741648B2 (en) 2000-11-10 2004-05-25 Nokia Corporation Apparatus, and associated method, for selecting an encoding rate by which to encode video frames of a video sequence
JP2002152752A (ja) 2000-11-13 2002-05-24 Sony Corp 画像情報変換装置及び方法
US7058127B2 (en) 2000-12-27 2006-06-06 International Business Machines Corporation Method and system for video transcoding
WO2002054774A2 (de) * 2001-01-08 2002-07-11 Siemens Aktiengesellschaft Optimale snr-skalierbare videocodierung
US20020136298A1 (en) 2001-01-18 2002-09-26 Chandrashekhara Anantharamu System and method for adaptive streaming of predictive coded video data
JP4203707B2 (ja) 2001-01-31 2009-01-07 日本電気株式会社 事前解析を用いた動画像符号化装置、動画像符号化方法、及びそのプログラム。
US20040117427A1 (en) 2001-03-16 2004-06-17 Anystream, Inc. System and method for distributing streaming media
US20030028386A1 (en) 2001-04-02 2003-02-06 Zinser Richard L. Compressed domain universal transcoder
US6925501B2 (en) 2001-04-17 2005-08-02 General Instrument Corporation Multi-rate transcoder for digital streams
JP4038996B2 (ja) 2001-04-27 2008-01-30 松下電器産業株式会社 信号処理装置および信号処理方法
US6757648B2 (en) 2001-06-28 2004-06-29 Microsoft Corporation Techniques for quantization of spectral data in transcoding
JP4574090B2 (ja) 2001-09-21 2010-11-04 三菱電機株式会社 動画データ変換装置および動画データ変換プログラム
US6504494B1 (en) 2001-11-06 2003-01-07 Motorola, Inc. Software, method and apparatus for rate controlled image compression
US7027982B2 (en) 2001-12-14 2006-04-11 Microsoft Corporation Quality and rate control strategy for digital audio
US7319720B2 (en) 2002-01-28 2008-01-15 Microsoft Corporation Stereoscopic video
US7034897B2 (en) 2002-04-01 2006-04-25 Broadcom Corporation Method of operating a video decoding system
JP4193406B2 (ja) 2002-04-16 2008-12-10 三菱電機株式会社 映像データ変換装置および映像データ変換方法
US20030206597A1 (en) 2002-04-19 2003-11-06 Droplet Technology, Inc. System, method and computer program product for image and video transcoding
JP4275358B2 (ja) 2002-06-11 2009-06-10 株式会社日立製作所 画像情報変換装置およびビットストリーム変換機ならびに画像情報変換送信方法
KR100484148B1 (ko) 2002-07-27 2005-04-18 삼성전자주식회사 개선된 비트율 제어 방법과 그 장치
US6944224B2 (en) 2002-08-14 2005-09-13 Intervideo, Inc. Systems and methods for selecting a macroblock mode in a video encoder
US7292634B2 (en) 2002-09-24 2007-11-06 Matsushita Electric Industrial Co., Ltd. Image coding method and apparatus
US7336720B2 (en) 2002-09-27 2008-02-26 Vanguard Software Solutions, Inc. Real-time video coding/decoding
AU2003290536A1 (en) 2002-10-23 2004-05-13 Divxnetworks, Inc. Method and system for supercompression of compressed digital video
US6961377B2 (en) 2002-10-28 2005-11-01 Scopus Network Technologies Ltd. Transcoder system for compressed digital video bitstreams
US7318027B2 (en) 2003-02-06 2008-01-08 Dolby Laboratories Licensing Corporation Conversion of synthesized spectral components for encoding and low-complexity transcoding
US7142601B2 (en) 2003-04-14 2006-11-28 Mitsubishi Electric Research Laboratories, Inc. Transcoding compressed videos to reducing resolution videos
JP4196726B2 (ja) 2003-05-14 2008-12-17 ソニー株式会社 画像処理装置および画像処理方法、記録媒体、並びに、プログラム
US7391717B2 (en) 2003-06-30 2008-06-24 Microsoft Corporation Streaming of variable bit rate multimedia content
US7343291B2 (en) 2003-07-18 2008-03-11 Microsoft Corporation Multi-pass variable bitrate media encoding
US7627039B2 (en) 2003-09-05 2009-12-01 Realnetworks, Inc. Parallel video decoding
US7295612B2 (en) 2003-09-09 2007-11-13 Apple Inc. Determining the number of unidirectional and bidirectional motion compensated frames to be encoded for a video sequence and detecting scene cuts in the video sequence
US7535959B2 (en) 2003-10-16 2009-05-19 Nvidia Corporation Apparatus, system, and method for video encoder rate control
US7460990B2 (en) 2004-01-23 2008-12-02 Microsoft Corporation Efficient coding of digital media spectral data using wide-sense perceptual similarity
US7352808B2 (en) 2004-01-29 2008-04-01 International Business Machines Corporation System and method for the dynamic resolution change for video encoding
US7869503B2 (en) 2004-02-06 2011-01-11 Apple Inc. Rate and quality controller for H.264/AVC video coder and scene analyzer therefor
JP4095559B2 (ja) 2004-02-13 2008-06-04 株式会社東芝 H.264コーデックic、dvd再生装置、h.264コーデック方法
JP4072859B2 (ja) 2004-03-03 2008-04-09 Kddi株式会社 ビデオ情報再符号化装置
KR100586883B1 (ko) * 2004-03-04 2006-06-08 삼성전자주식회사 비디오 스트리밍 서비스를 위한 비디오 코딩방법, 프리디코딩방법, 비디오 디코딩방법, 및 이를 위한 장치와, 이미지 필터링방법
EP1730649A2 (en) 2004-03-05 2006-12-13 Vanu, Inc. Controlling jitter effects
EP1578131A1 (en) * 2004-03-18 2005-09-21 STMicroelectronics S.r.l. Encoding/decoding methods and systems, computer program products therefor
US20050232497A1 (en) 2004-04-15 2005-10-20 Microsoft Corporation High-fidelity transcoding
JP4729563B2 (ja) 2004-05-12 2011-07-20 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ ブロードキャスト用のスケーラブルビデオコーディング
US20060002479A1 (en) 2004-06-22 2006-01-05 Fernandes Felix C A Decoder for H.264/AVC video
US20060114995A1 (en) 2004-12-01 2006-06-01 Joshua Robey Method and system for high speed video encoding using parallel encoders
US7440626B2 (en) 2004-12-02 2008-10-21 Mitsubishi Electric Research Laboratories, Inc. Image transcoding
US20060126726A1 (en) 2004-12-10 2006-06-15 Lin Teng C Digital signal processing structure for decoding multiple video standards
US20060126744A1 (en) 2004-12-10 2006-06-15 Liang Peng Two pass architecture for H.264 CABAC decoding process
JP4501676B2 (ja) * 2004-12-22 2010-07-14 日本電気株式会社 動画像圧縮符号化方法と動画像圧縮符号化装置並びにプログラム
JP2008527945A (ja) * 2005-01-19 2008-07-24 トムソン ライセンシング リアルタイム並列符号化の方法及び装置
US7694075B1 (en) 2005-03-09 2010-04-06 Globalfoundries Inc. System for enabling and disabling cache and a method thereof
CL2006000541A1 (es) 2005-03-10 2008-01-04 Qualcomm Inc Metodo para el procesamiento de datos multimedia que comprende: a) determinar la complejidad de datos multimedia; b) clasificar los datos multimedia en base a la complejidad determinada; y aparato asociado.
US20060215754A1 (en) 2005-03-24 2006-09-28 Intel Corporation Method and apparatus for performing video decoding in a multi-thread environment
US7920633B2 (en) 2005-04-22 2011-04-05 Broadcom Corporation Method and system for parallel processing video data
US8902989B2 (en) 2005-04-27 2014-12-02 Broadcom Corporation Decoder system for decoding multi-standard encoded video
US20060245491A1 (en) 2005-04-28 2006-11-02 Mehrban Jam Method and circuit for transcoding transform data
US7974341B2 (en) 2005-05-03 2011-07-05 Qualcomm, Incorporated Rate control for multi-layer video design
US8687710B2 (en) * 2005-05-17 2014-04-01 Broadcom Corporation Input filtering in a video encoder
JP2007036666A (ja) 2005-07-27 2007-02-08 Onkyo Corp コンテンツ配信システム、クライアント及びクライアントプログラム
US8447121B2 (en) 2005-09-14 2013-05-21 Microsoft Corporation Efficient integrated digital video transcoding
US8446954B2 (en) 2005-09-27 2013-05-21 Qualcomm Incorporated Mode selection techniques for multimedia coding
US8654848B2 (en) 2005-10-17 2014-02-18 Qualcomm Incorporated Method and apparatus for shot detection in video streaming
US7885341B2 (en) * 2005-10-21 2011-02-08 Cisco Technology, Inc. Spatial filtering for improving compression efficiency of motion compensated interframe coding
US7843995B2 (en) 2005-12-19 2010-11-30 Seiko Epson Corporation Temporal and spatial analysis of a video macroblock
US8130841B2 (en) 2005-12-29 2012-03-06 Harris Corporation Method and apparatus for compression of a video signal
US7643422B1 (en) 2006-03-24 2010-01-05 Hewlett-Packard Development Company, L.P. Dynamic trans-framing and trans-rating for interactive playback control
US9131164B2 (en) 2006-04-04 2015-09-08 Qualcomm Incorporated Preprocessor method and apparatus
US8130828B2 (en) 2006-04-07 2012-03-06 Microsoft Corporation Adjusting quantization to preserve non-zero AC coefficients
JP4182442B2 (ja) * 2006-04-27 2008-11-19 ソニー株式会社 画像データの処理装置、画像データの処理方法、画像データの処理方法のプログラム及び画像データの処理方法のプログラムを記録した記録媒体
US7773672B2 (en) 2006-05-30 2010-08-10 Freescale Semiconductor, Inc. Scalable rate control system for a video encoder
US8311102B2 (en) 2006-07-26 2012-11-13 Microsoft Corporation Bitstream switching in multiple bit-rate video streaming environments
US8265157B2 (en) 2007-02-07 2012-09-11 Lsi Corporation Motion vector refinement for MPEG-2 to H.264 video transcoding
US8571027B2 (en) 2007-04-18 2013-10-29 At&T Intellectual Property I, L.P. System and method for multi-rate video delivery using multicast stream
US20090003452A1 (en) 2007-06-29 2009-01-01 The Hong Kong University Of Science And Technology Wyner-ziv successive refinement video compression
US7756817B2 (en) 2007-07-05 2010-07-13 Yahoo! Inc. System and method for enabling parallel access to serially compressed files
US20090110060A1 (en) 2007-10-30 2009-04-30 Mauricio Cortes Method and apparatus for performing lower complexity multiple bit rate video encoding using metadata
US8121187B2 (en) 2007-12-05 2012-02-21 Alcatel Lucent Method and apparatus for performing multiple bit rate video encoding and video stream switching
US8417187B2 (en) 2008-01-07 2013-04-09 Apple Inc. Methods and apparatus for wireless device coexistence
US8165204B2 (en) 2008-02-29 2012-04-24 Michael Bronstein Resource allocation for frame-based controller
CN101534436B (zh) 2008-03-11 2011-02-02 深圳市融创天下科技发展有限公司 一种视频图像宏块级自适应码率分配方法
US20090244633A1 (en) 2008-03-31 2009-10-01 Konica Minolta Systems Laboratory, Inc. Systems and Methods for Color Data Compression
US8325800B2 (en) 2008-05-07 2012-12-04 Microsoft Corporation Encoding streaming media as a high bit rate layer, a low bit rate layer, and one or more intermediate bit rate layers
US8379851B2 (en) 2008-05-12 2013-02-19 Microsoft Corporation Optimized client side rate control and indexed file layout for streaming media
US20100086048A1 (en) * 2008-10-03 2010-04-08 Faisal Ishtiaq System and Method for Video Image Processing
US20100091888A1 (en) * 2008-10-13 2010-04-15 General Instrument Corporation Multi-Rate Encoder with GOP Alignment
EP2425624A2 (en) 2009-05-01 2012-03-07 Thomson Licensing 3d video coding formats
US9762898B2 (en) 2010-02-01 2017-09-12 Kelly Y Kishore Method and system for parallelizing video compression

Also Published As

Publication number Publication date
US8311115B2 (en) 2012-11-13
EP2382785A4 (en) 2012-12-26
WO2010088031A3 (en) 2010-10-21
US20100189179A1 (en) 2010-07-29
KR20110106423A (ko) 2011-09-28
JP2012516645A (ja) 2012-07-19
EP2382785A2 (en) 2011-11-02
BRPI1006846A2 (pt) 2017-10-03
MX2011007374A (es) 2011-08-08
CA2748374C (en) 2016-07-05
BRPI1006846A8 (pt) 2017-12-12
IL213567A (en) 2015-02-26
CN102301717A (zh) 2011-12-28
CA2748374A1 (en) 2010-08-05
KR101644208B1 (ko) 2016-07-29
IL213567A0 (en) 2011-07-31
WO2010088031A2 (en) 2010-08-05

Similar Documents

Publication Publication Date Title
JP5410549B2 (ja) 事前計算動き情報を用いたビデオ・エンコード
KR101643790B1 (ko) 적응적 비디오 스트리밍용의 가변 비트 레이트 및 동적 해상도를 이용한 다중 비트 레이트 비디오 인코딩
US9071841B2 (en) Video transcoding with dynamically modifiable spatial resolution
JP5643300B2 (ja) モーションベースの動的解像度マルチビットレートの動画符号化
JP5384694B2 (ja) 多層ビデオ設計のためのレート制御
US9584832B2 (en) High quality seamless playback for video decoder clients
KR20040007818A (ko) 동영상 부호화를 위한 dct연산량 조절 방법 및 그 장치
RU2587412C2 (ru) Управление скоростью передачи видео на основе гистограммы коэффициентов преобразования
JP7371984B2 (ja) ビデオ符号化の方法、装置およびコンピュータプログラム
CN114788182B (zh) 用于实现时间滤波的方法、***和计算机可读介质
KR20120095814A (ko) 복수 참조 영상을 이용한 영상 부복호화 방법 및 이러한 방법을 사용하는 장치
Sakomizu et al. A hierarchical motion smoothing for distributed scalable video coding
JP2023505652A (ja) 時間フィルタリングを簡素化する方法、並びにそのシステム、及びコンピュータプログラム
KR20050070984A (ko) 비디오 처리 장치의 파이프 라인 동작 방법과 그에 따른비트율 제어 방법
KR101307469B1 (ko) 비디오 인코더, 비디오 디코더, 비디오 인코딩 방법 및 비디오 디코딩 방법
KR20110074260A (ko) 고속 모션 추정 방법 및 장치, 이를 이용한 비디오 인코딩 장치
WO2012115434A2 (ko) 복수 참조 영상을 이용한 영상 부복호화 방법 및 이러한 방법을 사용하는 장치
JPWO2021247169A5 (ja)
KR20110058677A (ko) 예측을 위한 컬러 플레인간의 상관 파라미터 추출 장치와 방법, 및 그것을 이용한 영상 부호화/복호화 장치 및 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121228

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130131

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20130131

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20130222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130426

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: 20131008

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131106

R150 Certificate of patent or registration of utility model

Ref document number: 5410549

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees