JP6942807B2 - ビデオコンテンツを符号化する反復技法 - Google Patents

ビデオコンテンツを符号化する反復技法 Download PDF

Info

Publication number
JP6942807B2
JP6942807B2 JP2019543968A JP2019543968A JP6942807B2 JP 6942807 B2 JP6942807 B2 JP 6942807B2 JP 2019543968 A JP2019543968 A JP 2019543968A JP 2019543968 A JP2019543968 A JP 2019543968A JP 6942807 B2 JP6942807 B2 JP 6942807B2
Authority
JP
Japan
Prior art keywords
shot
coding
sequence
coded
point
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
JP2019543968A
Other languages
English (en)
Other versions
JP2020508605A (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.)
Netflix Inc
Original Assignee
Netflix Inc
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 Netflix Inc filed Critical Netflix Inc
Publication of JP2020508605A publication Critical patent/JP2020508605A/ja
Application granted granted Critical
Publication of JP6942807B2 publication Critical patent/JP6942807B2/ja
Active 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/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
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00007Time or data compression or expansion
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/19Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier
    • G11B27/28Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording
    • G11B27/30Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording on the same track as the main recording
    • G11B27/3081Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording on the same track as the main recording used signal is a video-frame or a video-field (P.I.P)
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/34Indicating arrangements 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/762Media network packet handling at the source 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/764Media network packet handling at the destination 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • 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/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/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/179Methods 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 scene or a shot
    • 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/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
    • H04N19/198Methods 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 including smoothing of a sequence of encoding parameters, e.g. by averaging, by choice of the maximum, minimum or median value
    • 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
    • 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/23418Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics
    • 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
    • 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/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/23805Controlling the feeding rate to the network, e.g. by controlling the video pump
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00007Time or data compression or expansion
    • G11B2020/00072Time or data compression or expansion the compressed signal including a video signal
    • 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
    • H04N19/126Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
    • 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
    • H04N19/15Data rate or code amount at the encoder output by monitoring actual compressed data size at the memory before deciding storage at the transmission buffer
    • 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/177Methods 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 group of pictures [GOP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8455Structuring of content, e.g. decomposing content into time segments involving pointers to the content, e.g. pointers to the I-frames of the video stream

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Description

関連出願の相互参照
本願は、2017年2月23日付けで出願された米国仮特許出願第62/462,873号(代理人整理番号NETF/0144USL)、2017年7月18日付けで出願された米国仮特許出願第62/534,170号(代理人整理番号NETF/0176USL)、2017年8月25日付けで出願された米国仮特許出願第62/550,517号(代理人整理番号NETF/0176USL02)、及び2018年2月22日付けで出願された米国特許出願第15/902,976号(代理人整理番号NETF0144US4)に対する優先権を主張する。これらの関連出願の趣旨は、参照により本明細書に援用される。
本発明の実施形態は、一般にはビデオ技術に関し、より詳細には、ビデオコンテンツを符号化する反復技法に関する。
典型的なビデオストリーミングサービスは、様々な異なるエンドポイントデバイスで閲覧可能なメディアタイトルのライブラリへのアクセスを提供する。各エンドポイントデバイスは、異なる接続条件下でビデオストリーミングサービスに接続し得る。幾つかの顕著な接続条件には、限定ではなく、帯域幅及び待ち時間がある。加えて、異なる各エンドポイントデバイスは、メディアタイトルをエンドユーザに出力する異なるハードウェアを含み得る。例えば、所与のエンドポイントデバイスは、特定の画面サイズ及び特定の画面解像度を有する表示画面を含み得る。
多くの実施態様では、ビデオストリーミングサービスに接続するエンドポイントデバイスは、所与のメディアタイトルについて、エンドポイントデバイスの接続条件及び属性に基づいて、エンドポイントデバイスにストリーミングするメディアタイトルの適切な符号化バージョンを決定するエンドポイントアプリケーションを実行する。より具体的には、エンドポイントアプリケーションは、バッファリング又は再バッファリングに起因した再生中断を回避しながら、エンドポイントデバイスでのメディアタイトルの再生中、最良の視覚品質を提供するメディアタイトルの特定の符号化バージョンを選択しようとする。
幾つかの実施態様では、符号化アプリケーションは、ビットレートラダーに基づいてメディアタイトルの特定の符号化バージョンを選択する。ビットレートラダーは、利用可能なビットレートに基づいてメディアタイトルの再生中、標的視覚品質を達成するように設計される。ビットレートラダー内の各段は、メディアタイトルの予め生成された異なる符号化バージョンに対応する異なるビットレート−解像度対を指定する。所与のビットレート−解像度対に対応するメディアタイトルの符号化バージョンを生成するために、ビデオサービスプロバイダは、サンプリングビデオコンテンツを生成する解像度でメディアタイトルに関連付けられたビデオコンテンツをサンプリングする。つぎに、ビデオサービスプロバイダは、ビットレートに関連付けられた符号化パラメータに基づいて、サンプリングビデオコンテンツを符号化する。
上記符号化技法の一欠点は、所与のメディアタイトルに関連付けられたビデオコンテンツの複雑性が多くの場合、メディアタイトルにわたり変化するが、解像度及びビデオコンテンツの符号化に使用される符号化パラメータは変化しないことである。その結果、メディアタイトルの比較的単純な部分の符号化は、標的視覚品質を満たすために必要な量よりも多くの計算リソース及び記憶リソースを消費し得る。例えば、メディアタイトルの比較的単純な部分は、ビデオコンテンツのその部分が毎秒8メガビットのビットレートを使用して符号化されるか、それとも毎秒20メガビットのビットレートを使用して符号化されるかに関係なく、同じ視覚品質を有することができる。そのような符号化非効率性は、不必要に計算リソース及び記憶リソースを無駄にするのみならず、これらのタイプの非効率性は又、メディアタイトルの符号化バージョンをエンドポイントデバイスにストリーミングするのに必要な帯域幅を不必要に増大させもする。
上記が示すように、当技術分野で必要とされるのは、ストリーミングのためにビデオコンテンツを符号化するより効率的な技法である。
本発明の一実施形態は、ソースビデオシーケンスを符号化するコンピュータ実施の方法を記載する。本方法は、第1の組の符号化点及びメディアタイトルに関連付けられたソースビデオシーケンスに含まれる第1のショットシーケンスに基づいて第1の組のショット符号化点を生成するステップであって、各ショット符号化点には異なる符号化ショットシーケンスが関連付けられる、生成するステップと、第1の組のショット符号化点にわたり1つ以上の凸包演算を実行するステップであって、それにより、第1のショットシーケンスに関連付けられた第1の凸包を生成する、実行するステップと、第1の凸包及びソースビデオシーケンスに含まれる第2のショットシーケンスに関連付けられた第2の凸包に基づいて符号化ビデオシーケンスを生成するステップと、符号化ビデオシーケンス及び第1のビデオメトリックの標的値に基づいて、第1の組の符号化点に含まれない第1の符号化点を計算するステップと、第1の符号化点に基づいて、最適化された符号化ビデオシーケンスを生成するステップであって、最適化された符号化ビデオシーケンスの少なくとも一部は続けて、メディアタイトルの再生中、エンドポイントデバイスにストリーミングされる、生成するステップを含む。
従来技術に対する開示される技法の少なくとも1つの技術的改善は、最適化された組の個々に符号化されたショットシーケンスへの反復収束が、従来の符号化技法に従来関連する符号化非効率性を低減することである。特に、各ショットシーケンスは、ショットシーケンスに最適化された解像度及び符号化パラメータに基づいて符号化されるため、符号化ビデオシーケンスは、標的ビットレートに向けて増大した視覚品質で、エンドポイントのデバイスにストリーミングすることができる。逆に、符号化ビデオシーケンスは、標的視覚品質に向けて低減したビットレートでエンドポイントデバイスにストリーミングすることができる。
したがって、様々な実施形態の上述した特徴を詳細に理解することができる様式、先のように手短にまとめられた本発明の概念のより具体的な説明は、幾つかが添付図面に示される様々な実施形態を参照して行うことができる。しかしながら、添付図面が本発明の概念の典型的な実施形態のみを示し、したがって、範囲の限定として決して見なされるべきではなく、他の等しく有効な実施形態が存在することに留意されたい。
本発明の1つ以上の態様を実施するように構成されたシステムの概念図である。 本発明の様々な実施形態による図1の反復コントローラのより詳細な図である。 本発明の様々な実施形態による図1の動的オプティマイザのより詳細な図である。 本発明の様々な実施形態による図3の凸包生成器により生成される凸包を示す。 本発明の様々な実施形態による、図3のトレリス反復器が符号化ショットシーケンスを符号化ビデオシーケンスにいかに組み立てるかを更に詳細に示す。 本発明の様々な実施形態による、図3のトレリス反復器が符号化ショットシーケンスを符号化ビデオシーケンスにいかに組み立てるかを更に詳細に示す。 本発明の様々な実施形態による、図3のトレリス反復器が符号化ショットシーケンスを符号化ビデオシーケンスにいかに組み立てるかを更に詳細に示す。 本発明の様々な実施形態による、図3のトレリス反復器が符号化ショットシーケンスを符号化ビデオシーケンスにいかに組み立てるかを更に詳細に示す。 本発明の様々な実施形態による、図5A〜図5Dに示される異なるビデオ符号化点に基づいて図1の動的オプティマイザにより生成されるグローバル凸包を示す。 本発明の様々な実施形態による、図1の反復コントローラがショットシーケンスの追加の符号化点をいかに生成するかを示す。 本発明の様々な実施形態による図1の最適化された符号化ビデオシーケンスのより詳細な図である。 本発明の様々な実施形態による、ソースビデオシーケンスを符号化する方法ステップの流れ図を記載する。 本発明の様々な実施形態による、ソースビデオシーケンスを符号化する方法ステップの流れ図を記載する。
以下の説明では、様々な実施形態のより完全な理解を提供するために、多くの具体的な詳細が記載される。しかしながら、これらの具体的な詳細の1つ以上なしで本発明の概念が実施可能であることが当業者には理解されよう。
開示される技法は、標的メトリック値(例えば、ビットレート及び品質スコア)に基づいて、最適化された符号化ビデオシーケンスを生成する。ソースビデオシーケンスに含まれる各ショットシーケンスで、反復コントローラは、比較的疎に分布した符号化点を含むように符号化リストを初期化する。各符号化点は、解像度及び量子化パラメータ(QP)を指定する。次に、反復コントローラは、符号化リストに基づいてグローバル凸包を生成するように動的オプティマイザを構成する。
動的オプティマイザは、符号化リストに含まれる新しい符号化点に基づいて、新しいショット符号化点を生成する。「新しい」符号化点とは、動的オプティマイザが、関連付けられた符号化ショットシーケンスを前に生成したことがない符号化点である。所与のショット符号化点を生成する一環として、動的オプティマイザは、関連付けられた符号化ショットシーケンスを生成し分析する。続けて、各ショットシーケンスで、動的オプティマイザは、ショットシーケンスに関連付けられたショット符号化点のサブセットを含む凸包を生成する。一般に、所与のショットシーケンスで、関連付けられた凸包に含まれるショット符号化点は、異なる歪みレベルのビットレートを最小化する。
次に、動的オプティマイザは、全てのショットシーケンスにわたる凸包を評価して、複数のショット符号化シーケンスを識別し、各ショット符号化シーケンスは、一連のショット符号化点を指定する。各ショット符号化シーケンスで、動的オプティマイザは、ショット符号化点に関連付けられた異なる符号化ショットシーケンスを統合して、符号化ビデオシーケンスを生成する。動的オプティマイザは、ショット符号化シーケンスに基づいてグローバル凸包を生成する。一般に、グローバル凸包に含まれる各点には、異なる全体歪みレベルの全体ビットレートを最小化する異なるショット符号化シーケンスが関連付けられる。
反復コントローラは、グローバル凸包及び標的メトリック値(例えば、ビットレート又は品質スコア)に基づいて、最適化されたショット符号化シーケンスを選択する。各ショットシーケンスで、最適化されたショット符号化シーケンスは最適化されたショット符号化点を指定する。各ショットシーケンスで、反復コントローラは、関連付けられた凸包に沿った最適化されたショット符号化点のロケーションを評価して、1つ以上の近傍ショット符号化を識別する。最適化されたショット符号化点の解像度及びQP値並びに近傍ショット符号化点に基づいて、反復コントローラは、ショットシーケンスの任意の数の新しい符号化点を生成し得る。反復コントローラは、任意の新しい符号化点を識別する場合、拡張された組の符号化点に基づいて新しいグローバル凸包を生成するように動的オプティマイザを構成する。
しかしながら、反復コントローラは、いかなる新しい符号化点も識別しない場合、最適化された符号化ビデオシーケンスとして、最適化されたビデオ符号化点に含まれる符号化ビデオシーケンスを選択する。最後に、反復コントローラは、最適化された符号化ビデオシーケンスをコンテンツ配信ネットワークに送信して、エンドポイントデバイスに配信する。
開示される技法の一利点及び技術進歩は、特定の符号化点が標的ビットレート又は標的品質スコアを満たす必要があるソースビデオシーケンスの部分が、それらの符号化点で符号化されることである。さらに、ソースビデオシーケンスの他の部分は、他の適宜選択された符号化点で符号化される。各ショットシーケンスに最適化された符号化点でショットシーケンスを符号化することは、通常、従来の符号化技法に関連する符号化非効率性を低減する。
システム概説
図1は、本発明の1つ以上の態様を実施するように構成されたシステム100の概念図である。示されるように、システム100は、限定ではなく、任意の数の計算インスタンス110及びクラウド160を含む。一般にクラウド160は、カプセル化された共有リソース、ソフトウェア、データ等を含む。説明のために、同様の物体の複数のインスタンスは、その物体を識別する参照番号及び必要な場合にはインスタンスを識別する補足番号で示される。
任意の数の計算インスタンス110がクラウド160外部に存在し得、一方、他の計算インスタンス110はクラウド160の内部に存在し得る。様々な実施形態では、システム100の任意の数の構成要素は、複数の地理的ロケーションにわたり分散し得る。さらに、システム100の任意の数の構成要素は、1つ以上のスタンドアロンデバイス、分散計算環境、又はクラウド160に任意の組合せで包含又は分散し得る。
示されるように、各計算インスタンス110は、限定ではなく、プロセッサ112及びメモリ116を含む。プロセッサ112は、命令を実行可能な任意の命令実行システム、装置、又はデバイスであり得る。例えば、プロセッサ112は、中央演算処理装置(CPU)、グラフィックス処理ユニット(GPU)、コントローラ、マイクロコントローラ、状態機械、又はそれらの任意の組合せを含むことができる。メモリ116は、計算インスタンス110のプロセッサ112による使用のために、ソフトウェアアプリケーション及びデータ等のコンテンツを記憶する。
メモリ116は、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、フロッピーディスク、ハードディスク、又はローカル若しくはリモートの任意の他の形態のデジタル記憶装置等の容易に入手可能なメモリの1つ以上であり得る。幾つかの実施形態では、記憶装置(図示せず)はメモリ116を補足又は置換し得る。記憶装置は、プロセッサ112がアクセス可能な任意の数及び任意のタイプの外部メモリを含み得る。例えば、限定ではなく、記憶装置は、セキュアデジタルカード、外部フラッシュメモリ、ポータブルコンパクトディスク読み取り専用メモリ(CD−ROM)、光学記憶装置、磁気記憶装置、又は上記の任意の適した組合せを含み得る。
一般に、計算インスタンス110は、1つ以上のアプリケーションを実施するように構成される。説明のみを目的として、各アプリケーションは、1つの計算インスタンス110のメモリ116に常駐し、1つの計算インスタンス110のプロセッサ112で実行されるものとして示されている。しかしながら、当業者は認識するように、各アプリケーションの機能は、任意の組合せで、任意の数の計算インスタンス110のメモリ116に常駐し、任意の数の計算インスタンス110のプロセッサ112で実行される任意の数の他のアプリケーションにわたり分散し得る。さらに、任意の数のアプリケーションの機能は、1つのアプリケーション又はサブシステムに統合し得る。
特に、計算インスタンス110は、ソースビデオシーケンス122に最適化された符号化ビデオシーケンス180を生成するように構成される。ソースビデオシーケンス122は、限定ではなく、メディアタイトルに関連付けられた任意の量及び任意のタイプのビデオコンテンツを含む。ビデオコンテンツの例には、少数を挙げれば、限定ではなく、長編映画の任意の部分(全てを含む)、テレビ番組のエピソード、及び音楽ビデオがある。最適化された符号化ビデオシーケンス180は、限定ではなく、ソースビデオシーケンス122に含まれるビデオコンテンツから導出される符号化ビデオコンテンツを含む。
示されていないが、ビデオストリーミングサービスは、様々な異なるエンドポイントデバイスで閲覧することができるメディアタイトルのライブラリへのアクセスを提供する。メディアタイトルのライブラリは、限定ではなく、ソースビデオシーケンス122に関連付けられたメディアタイトルを含む。各エンドポイントデバイスは、異なる接続条件下でビデオストリーミングサービスに接続し得る。幾つかの顕著な接続条件は、限定ではなく、帯域幅及び待ち時間を含む。加えて、異なる各エンドポイントデバイスは、メディアタイトルをエンドユーザに出力する異なるハードウェアを含み得る。例えば、所与のエンドポイントデバイスは、特定の画面サイズ及び特定の画面解像度を有する表示画面を含むことができる。
多くの実施態様では、ビデオストリーミングサービスに接続するエンドポイントデバイスは、所与のメディアタイトルで、接続条件及びエンドポイントデバイスの属性に基づいてエンドポイントデバイスにストリーミングするのに適切なメディアタイトルの符号化バージョンを決定するエンドポイントアプリケーションを実行する。より具体的には、エンドポイントアプリケーションは、バッファリング又は再バッファリングに起因した再生中断を回避しながら、エンドポイントデバイスでのメディアタイトル再生中、最良の視覚品質を提供するメディアタイトルの特定の符号化バージョンを選択しようとする。
幾つかの従来の実施態様では、エンドポイントアプリケーションは、ビットレートラダーに基づいてメディアタイトルの特定の符号化バージョンを選択する。ビットレートラダーは、利用可能なビットレートに基づいて、メディアタイトルの再生中、標的視覚品質を達成するように構成される。ビットレートラダー内の各段は、メディアタイトルの予め生成された異なる符号化バージョンに対応する異なるビットレート−解像度対を指定する。所与のビットレート−解像度対に対応するメディアタイトルの符号化バージョンを生成するために、ビデオサービスプロバイダは、解像度でのメディアタイトルに関連付けられたビデオコンテンツをサンプリングして、サンプリングビデオコンテンツを生成する。次に、ビデオサービスプロバイダは、ビットレートに関連付けられた符号化パラメータに基づいてサンプリングビデオコンテンツを符号化する。
先の従来の符号化技法の一欠点は、所与のメディアタイトルに関連付けられたビデオコンテンツの複雑性が多くの場合、メディアタイトルにわたり変化するが、ビデオコンテンツの符号化に使用される解像度及び符号化パラメータが変わらないことである。その結果、メディアタイトルの比較的単純な部分の符号化は、標的視覚品質を満たすために必要な量よりも多くの計算リソース及び記憶リソースを消費し得る。例えば、メディアタイトルの比較的単純な部分は、ビデオコンテンツのその部分が毎秒8メガビットのビットレートを使用して符号化されるか、それとも毎秒20メガビットのビットレートを使用して符号化されるかに関係なく、同じ視覚品質を有することができる。そのような符号化非効率性は、不必要に計算リソース及び記憶リソースを無駄にするのみならず、これらのタイプの非効率性は又、メディアタイトルの符号化バージョンをエンドポイントデバイスにストリーミングするのに必要な帯域幅を不必要に増大させもする。
個々のショットシーケンスに最適化された符号化動作
上記問題に対処するために、システム100は、限定ではなく、ソースビデオシーケンス122に含まれる各ショットシーケンス132に向けて解像度及び符号化パラメータを最適化する反復符号化アプリケーション120を含む。ソースビデオシーケンス122は、限定ではなく、任意の数の連続及び非重複ショットシーケンス132を含む。各ショットシーケンス132は、通常、同様の空間時間属性を有し、中断されない時間期間にわたる1組のフレームを含む。反復符号化アプリケーション120は、メモリ116の1つに常駐し、プロセッサ112の1つで実行される。
示されるように、反復符号化アプリケーション120は、限定ではなく、ショット分析器130、反復コントローラ140、及び動的オプティマイザ150を含む。ソースビデオシーケンス122を受信すると、ショット分析器130は、ソースビデオシーケンス122に含まれる1つ以上のショット変更172を特定する。各ショット変更172は、ショットシーケンス132の異なる対間の境界を指定する。ショット分析器130は、任意の技術的に実現可能な様式で1つ以上のショット変更172を決定し得る。
例えば、幾つかの実施形態では、ショット分析器130は、クラウド160に常駐するショット検出器170にソースビデオシーケンス122を送信する。ショット変更172を特定するために、ショット検出器170は、ソースビデオシーケンス122に基づいて任意の数のショット検出アルゴリズムを実行する。ショット検出アルゴリズムの幾つかの例には、限定ではなく、マルチスケール差分絶対値和アルゴリズム、動き補償残差エネルギーアルゴリズム、差分ヒストグラムアルゴリズム、ヒストグラム差分アルゴリズム等がある。次に、ショット検出器170は、ショット変更172をショット分析器130に送信する。代替の実施形態では、ショット分析器130は、任意の数のショット検出動作をソースビデオシーケンス122に対して実行して、ショット変更172を特定し得る。
ショット分析器130は、ショット変更172に基づいて分割動作をソースビデオシーケンス122に対して実行して、ショットシーケンス132を特定する。幾つかの実施形態では、ショット分析器130は又、ソースビデオシーケンス122から無関係ピクセルを除去し得る。例えば、ショット分析器130は、ソースビデオシーケンス122の境界セクションに沿った黒色バーに含まれるピクセルを除去することができる。
様々な実施形態では、反復符号化アプリケーション120は、符号化動作中、各ショットシーケンス132の初期フレームがキーフレームとして符号化されることを保証する。一般問題として、符号化ビデオシーケンスに含まれる同じショットシーケンス132からの「キーフレーム」及び全ての後続フレームは、符号化ビデオシーケンスに含まれる任意の処理フレームから独立して復号化される。
反復符号化アプリケーション120は、異なるショットシーケンス132の異なる初期フレームが任意の技術的に実現可能な様式でキーフレームとして符号化されることを保証する。例えば、幾つかの実施形態では、動的オプティマイザ150は、ビデオコンテンツを符号化する際、キーフレームロケーションリスト(図1に図示せず)に基づいてキーフレームとしてフレームを符号化するように符号化アプリケーション160を構成する。他の実施形態では、動的オプティマイザ150は、ビデオコンテンツを符号化する際、任意の数の符号化動作を実行して、キーフレームとして異なるショットシーケンス132の異なる初期フレームを符号化し得る。
当業者は認識するように、再生中、ソースビデオシーケンス122に関連付けられたメディアタイトルは、位置合わせされたキーフレームで異なる符号化ビデオシーケンス180の復号化バージョン間で切り替え可能であり、それにより、任意の数の関連する基準に基づいて閲覧経験を最適化する。関連する基準の例には、現在の接続帯域幅、現在の接続待ち時間、来るショットシーケンス132のコンテンツ等がある。
ショットシーケンス132を受信すると、反復コントローラ140は、標的メトリック値170に基づいて最適化された符号化ビデオシーケンス180を生成する。ショットシーケンス132のそれぞれで、最適化された符号化ビデオシーケンス180は、限定ではなく、ショットシーケンス132に関連付けられた符号化ショットシーケンス(図1に図示せず)を含む。各符号化ショットシーケンスは、関連付けられたショットシーケンス132に含まれるビデオコンテンツから導出された符号化ビデオコンテンツを含む。
標的メトリック値170は、符号化ビデオコンテンツの1つ以上の属性に対応するメトリックの値である。幾つかの実施形態では、標的メトリック値170はビットレートである。他の実施形態では、標的メトリック値170は視覚品質メトリックの品質スコアである。視覚品質メトリックの例には、少数を挙げれば、限定ではなく、ピーク信号対雑音比(PSNR)、線形ビデオ多方法評価融合(VMAF)メトリック、及び調和VMAF(VMAFh)メトリックがある。
動作において、反復コントローラ140は、最適化された符号化ビデオシーケンス180に含まれる符号化ショットシーケンスのそれぞれを個々に最適化する反復プロセスで最適化された符号化ビデオシーケンス180を生成する。図2と併せて更に詳細に説明するように、各ショットシーケンス132について、反復コントローラ140は、比較的疎に分布した符号化点を含むように差分符号化リスト(図1に図示せず)を初期化する。一般に、各符号化リストは、任意の数の符号化点を指定し得、符号化リスト内の符号化点の数は、他の符号化リスト内の符号化点の数と異なり得る。各符号化点は、解像度及び1つ以上の符号化パラメータを指定する。
続けて、図3〜図6と併せて更に詳細に説明するように、反復コントローラ140は、符号化リストに基づいてグローバル凸包を生成するように動的オプティマイザ150を構成する。まず、動的オプティマイザ150は、符号化リストを評価して、新しい符号化点を識別する。各符号化リストについて、「新しい」符号化点は、動的オプティマイザ150がまだ、関連付けられたショットシーケンス132に基づいて符号化ショットシーケンスを生成していない符号化点である。新しい各符号化点で、動的オプティマイザ150は符号化ショットシーケンスを生成する。
動的オプティマイザ150は、任意の技術的に実現可能な様式で符号化ショットシーケンスを生成し得る。さらに、一般問題として、動的オプティマイザ150は、任意の技術的に実現可能な様式で、所与の解像度及び所与の符号化パラメータに基づいてビデオコンテンツから導出された符号化ビデオコンテンツを生成し得る。例えば、幾つかの実施形態では、動的オプティマイザ150は、解像度に基づいてビデオコンテンツに対してサンプリング動作を実行して、サンプリングビデオコンテンツを生成する。続けて、動的オプティマイザ150は、符号化パラメータに基づいてサンプリングされたビデオコンテンツに対して符号化動作を実行して、符号化ショットシーケンスを生成するように符号化アプリケーション162を構成する。
示されるように、符号化アプリケーション162は、クラウド160に常駐し、1つ以上の並列エンコーダ164を介して符号化動作を効率的に実行するように構成される。各並列エンコーダ164は、任意の数の計算インスタンス110を含み得る。代替の実施形態では、動的オプティマイザ150は符号化動作を実行し得、システム100は符号化アプリケーション162を省き得る。同じ又は他の実施形態では、システム100はサンプリングアプリケーションを含み得、動的オプティマイザ150は、サンプリング動作を実行するようにサンプリングアプリケーションを構成し得る。
動的オプティマイザ150は、サンプリング動作及び符号化動作を任意の粒度レベル(例えば、フレーム毎、ショットシーケンス毎、ビデオシーケンス毎等)、任意の組合せ、及び任意の技術的に実現可能な様式で実行し得る。例えば、幾つかの実施形態では、動的オプティマイザ150は、所与の解像度に基づいてソースビデオシーケンス122に対してサンプリング動作を実行して、サンプリングビデオシーケンスを生成し得る。続けて、解像度に関連付けられた各符号化点で、動的オプティマイザ150は、関連付けられた符号化パラメータに基づいて、関連付けられたショットシーケンス132に対応するサンプリングビデオコンテンツを符号化するように符号化アプリケーション162を構成し得る。
新しい符号化ショットシーケンスを生成した後、動的オプティマイザ150は、符号化ショットシーケンスに基づいてビットレート、品質スコア、及び歪みレベルを計算する。動的オプティマイザ150は、任意の技術的に実現可能な様式でビットレート、品質スコア、及び歪みレベルを計算し得る。新しい各符号化ショットシーケンスで、動的オプティマイザ150は、符号化ショットシーケンス、解像度、符号化パラメータ、ビットレート、品質スコア、及び歪みレベルを含むショット符号化点(図1に図示せず)を生成する。各ショットシーケンス132で、動的オプティマイザ150は異なる凸包を生成する。所与のショットシーケンス132に関連付けられた凸包は、ショットシーケンス132に関連付けられた任意の数のショット符号化点を含む。一般に、所与のショットシーケンス132で、関連付けられた凸包に含まれるショット符号化点は、異なる歪みレベルでビットレートを最小化する。
動的オプティマイザ150は次に、全てのショットシーケンス132にわたり凸包を評価して、ショット符号化シーケンス(図1に図示せず)を決定する。各ショット符号化シーケンスは、異なるショットシーケンス132のショット符号化点を指定する。各ショット符号化シーケンスで、動的オプティマイザ150は、ショット符号化点に含まれる異なる符号化ショットシーケンスを統合して、符号化ビデオシーケンスを生成する。各ショット符号化シーケンスで、動的オプティマイザ150は次に、ショット符号化シーケンス、関連付けられた符号化ビデオシーケンス、符号化ショットシーケンスの全体ビットレート、及び符号化ショットシーケンスの全体歪みレベルを含むビデオ符号化点を生成する。続けて、動的オプティマイザ150は、ビデオ符号化点に基づいてグローバル凸包を生成する。一般にソースビデオシーケンス122で、グローバル凸包に含まれる各ビデオ符号化点は、異なる全体歪みレベルの全体ビットレートを最小化する。
次に、反復コントローラ140は、標的メトリック値170に基づいてグローバル凸包に含める最適化されたビデオ符号化点を選択する。各ショットシーケンス132で、反復コントローラ140は、最適化されたビデオ符号化点に基づいて最適化されたショット符号化点を識別する。続けて、各ショットシーケンス132で、反復コントローラ140は、関連付けられた最適化されたショット符号化点及びショットシーケンス132(x)に関連付けられた凸包に基づいて、任意の数(ゼロを含む)の新しい符号化点を識別する。
より具体的には、所与のショットシーケンス132で、反復コントローラ140は、ショットシーケンス132に関連付けられた最適化されたショット符号化点に基づいて、ショットシーケンス132に関連付けられた凸包に対して任意の数及び任意のタイプの検索動作を実行する。反復コントローラ140が任意の新しい符号化点を識別する場合、反復コントローラ140は、符号化点を適切な符号化リストに追加する。次に、反復コントローラ140は、拡張符号化リストに基づいて新しいグローバル凸包を生成するように動的オプティマイザ150を構成する。
しかしながら、反復コントローラ140が新しいいかなる符号化点も識別しない場合、反復コントローラ140は、反復コントローラ140が標的メトリック値170に首尾良く収束したと判断する。反復コントローラ140は、最適化された符号化ビデオシーケンス180として最適化されたビデオ符号化点に含まれる符号化ビデオシーケンスを選択する。最後に、反復コントローラ140は、エンドポイントデバイスに配信するために、最適化された符号化ビデオシーケンス180をコンテンツ配信ネットワーク(CDN)190に送信する。
なお、本明細書に記載される技法は、限定ではなく例示であり、本発明のより広い趣旨及び範囲から逸脱せずに変更可能である。反復符号化アプリケーション120、ショット分析器130、反復コントローラ140、動的オプティマイザ150、ショット検出器170、符号化アプリケーション162、及びコンテンツ配信ネットワーク190により提供される機能への多くの変更及び変形が、記載される実施形態の範囲及び趣旨から逸脱せずに当業者に明らかになろう。例えば、様々な実施形態では、反復符号化アプリケーション120、ショット分析器130、反復コントローラ140、動的オプティマイザ150、及び符号化アプリケーション162の1つ以上は、ショットシーケンス132の代わりに一貫性メトリックが指定された範囲内にあるフレームセットを識別し、それらに対して動作するように構成し得る。
当業者は認識するように、本明細書に記載される技法は、ビデオ符号化の代わりにオーディオ符号化を最適化するように変更し得る。例えば、幾つかの実施形態では、オーディオトラックを「オーディオシーン」に分割し得る。オーディオシーンは、オーディオレンダリングハードウェアを介してサンプリングし得る。サンプリングされたオーディオシーンは、量子化パラメータ及び/又はビットレート設定を介して構成されるオーディオコーデックを介して符号化し得る。符号化されたオーディオシーンの品質スコアは、オーディオ品質知覚評価(PEAQ:Perceptual Evaluation of Audio Quality)アルゴリズムを介して計算し得る。特に、解像度及び/又は任意の数の符号化パラメータは、任意の組合せで本明細書に記載される任意の技法に基づいて各オーディオシーンに向けて最適化し得る。
本明細書に示されるシステム100が例示であり、変形及び変更が可能なことが理解されよう。例えば、本明細書に記載される反復符号化アプリケーション120、ショット分析器130、反復コントローラ140、動的オプティマイザ150、ショット検出器170、符号化アプリケーション162、及びコンテンツ配信ネットワーク190により提供される機能は、任意の数のソフトウェアアプリケーション(1つを含む)、ハードウェアデバイス(例えば、ハードウェアベースのエンコーダ)、及びシステム100の任意の数の構成要素に統合又は分散し得る。さらに、図1における様々なユニット間の接続トポロジは、所望に応じて変更し得る。
図2は、本発明の様々な実施形態による図1の反復コントローラ140のより詳細な図である。示されるように、反復コントローラ140は、限定ではなく、S+1個の符号化リスト210を含み、ここで、S+1はショットシーケンス132の総数である。さらに、各符号化リスト210は任意の数の符号化点120を含む。各符号化点120は、限定ではなく、ビットレート332及び量子化パラメータ(QP)値324を含む。
量子化パラメータは、ビデオコンテンツを符号化する際、ビットレート及び歪みに関して単調性能を可能にする。QP値が高いほど、その結果生成されるビットレートは、品質を犠牲にして低くなる。しかしながら、代替の実施形態では、各符号化点120は、QP値324の代替又は追加として、任意の数及び任意のタイプの符号化パラメータを含み得る。
まず、各ショットシーケンス132(x)で、反復コントローラ140は、符号化点220の比較的疎な選択を含む符号化リスト210(x)を生成する。反復コントローラ140は、任意の技術的に実現可能な様式で初期符号化リスト210を生成し得る。例えば、幾つかの実施形態では、反復コントローラ140は、固定された組の解像度及び反復符号化アプリケーション120により実施されるコーデックに基づいて符号化リスト210を初期化する。
より具体的には、各符号化リスト210で、反復コントローラ210は、ビデオコーデックにより可能な最小解像度及び最大QP値を指定する符号化点220(0)を生成する。次に、反復コントローラ210は、ビデオコーデックにより可能な最小解像度及び中間QP値を指定する符号化点220(1)を生成する。最大解像度と最小解像度との間にある追加の各解像度で、反復コントローラ210は、解像度及び中間QP値を指定する符号化点220を生成する。次に、反復コントローラ210は、最大解像度及び中間QP値を指定する符号化点220を生成する。最後に、反復コントローラ210は、ビデオコーデックにより可能な最大解像度及び最小QP値を指定する符号化点220を生成する。
説明のみを目的として、各符号化リスト210に含まれる最初の5つの点の解像度及び値の例を斜体で示す。示されるように、符号化点220(0)は、640×260の解像度322並びに1920×1080のQP値324及び0のQP値324を指定し、符号化点220(1)は、640×260の解像度322及び26のQP値324を指定し、符号化点220(2)は960×520の解像度322及び26のQP値324を指定し、符号化点220(3)は、1280×720の解像度322及び26のQP値324を指定し、符号化点220(4)は1920×1080の解像度322及び26のQP値324を指定し、符号化点220(5)は1920×1080の解像度322及び0のQP値324を指定する。
図7と併せて更に詳細に説明するように、動的オプティマイザ150が新しいグローバル凸包を生成した後、反復コントローラ140は、任意の数の符号化リスト120を更新し得る。特に、反復コントローラ140は各ショットシーケンス132(x)を独立して評価して、符号化リスト210(x)に追加する任意の数の新しい符号化点220を決定する。その結果、任意の所与の時間において、符号化リスト210(x)に含まれる符号化点220の数は、任意の他の符号化リスト210に含まれる符号化点220の数から変わり得る。一般に、反復コントローラ140は反復的に、標的メトリック値170に最良に一致する最適化された符号化ビデオシーケンス180に効率的に収束するために、符号化点220の範囲を改善する。
異なる符号化ビデオシーケンスの生成
図3は、本発明の様々な実施形態による図1の動的オプティマイザ150のより詳細な図である。示されるように、動的オプティマイザ150は、限定ではなく、ショット符号化セット310、凸包生成器340、凸包350、トレリス反復器360、シーケンストレリス370、任意の数のビデオ符号化点380、及びグローバル凸包390を含む。ショット符号化セット310の総数は、ショットシーケンス132の数に等しい。同様に、凸包340の総数はショットシーケンス132の数に等しい。一般に、ショットシーケンス132(x)にはショット符号化セット310(x)及び凸包340(x)の両方が関連付けられる。
各ショット符号化セット310は、限定ではなく、任意の数のショット符号化点320を含む。ショット符号化セット310(x)に含まれるショット符号化点320の数は、任意の他のショット符号化セット310に含まれるショット符号化点320の数と異なり得る。各ショット符号化点320は、限定ではなく、解像度322、QP値324、符号化ショットシーケンス326、ビットレート332、任意の数の品質スコア334、及び歪みレベル336を含む。代替の実施形態では、ショット符号化点320は、QP値324の代替又は追加として、任意の数及び任意のタイプの符号化パラメータを含み得る。
動的オプティマイザ150は、まず、符号化リスト210(0)〜210(S)を反復コントローラ140から受信すると、ショット符号化セット310(0)〜310(S)を生成する。各符号化リスト210(x)に含まれる各符号化点220(y)で、動的オプティマイザ150は、対応するショット符号化点320(y)を生成し、ショット符号化点320(y)をショット符号化セット310(x)に追加する。より具体的には、動的オプティマイザ150は、ショットシーケンス132(x)、符号化点220(y)において指定される解像度322、及びQP値324に基づいて新しい符号化ショットシーケンス326を生成する。
次に、動的オプティマイザ150は、符号化ショットシーケンス326に関連付けられたビットレート332、品質スコア334、及び歪みレベル336を計算する。次に、動的オプティマイザ150は、限定ではなく、符号化ショットシーケンス326並びに符号化ショットシーケンス326に関連付けられた解像度322、QP値324、ビットレート332、品質スコア334、及び歪みレベル336を含むショット符号化点320(y)を生成する。最後に、動的オプティマイザ150は、ショット符号化セット310(x)に新しいショット符号化点320(y)を含む。
続けて、1つ以上の更新された符号化リスト210を受信すると、動的オプティマイザ150は任意の「新しい」符号化点220を識別する。動作において、符号化リスト210(x)について、動的オプティマイザ150は、符号化点220のいずれがショット符号化セット310(x)によって表されないかを判断する。符号化リスト210(x)に含まれる新しい各符号化点220(y)で、動的オプティマイザ150は、対応するショット符号化点320(y)を生成し、新しいショット符号化点320(y)をショット符号化セット310(x)に追加する。
一般に、動的オプティマイザ150は、符号化ショットシーケンス326を生成し、任意の技術的に実現可能な様式で、関連付けられた品質スコア334、関連付けられたビットレート332、及び関連付けられた歪みレベル336を決定し得る。符号化ショットシーケンス326を生成するために、幾つかの実施形態では、動的オプティマイザ150は、解像度322に基づいてビデオコンテンツにサンプリング動作を実行して、サンプリングビデオコンテンツを生成する。続けて、動的オプティマイザ150は、QP324に基づいてサンプリングビデオコンテンツに符号化動作を実行して、符号化ショットシーケンス326を生成するように符号化アプリケーション162を構成する。動的オプティマイザ150は、任意の技術的に実現可能な様式で任意の技術的に実現可能な符号化アルゴリズムに基づいて符号化ショットシーケンス326を生成し得る。符号化アルゴリズムの例には、少数を挙げれば、高度ビデオ符号化(AVC)及び高効率ビデオ符号化(HEVC)がある。
幾つかの実施形態では、符号化ショットシーケンス326に関連付けられた品質スコア334を特定するために、動的オプティマイザ150は符号化ショットシーケンス326を復号化して、復号化ショットシーケンスを生成する。動的オプティマイザ150は次に、復号化ショットシーケンスを標的解像度に再サンプリング(すなわち、アップサンプリング又はダウンサンプリング)して、エンドポイントデバイスのクラスの表示特性に関連する再構築ショットシーケンスを生成する。
代替の実施形態では、動的オプティマイザ150は、任意の数又は解像度の任意の数の品質スコア334を計算し得る。例えば、特定のビデオは3840×2160解像度で配信し得、それでもなお、1920×1080解像度の多数のディスプレイにより消費されることが意図される。別のクラスのエンドポイントデバイス、例えば、ラップトップコンピュータは、同じビデオを1280×720解像度で表示すると予期される。更に別のクラスのエンドポイントデバイス、例えば、タブレット又はスマートフォンデバイスは、960×540解像度で同じビデオを表示すると予期される。動的オプティマイザ150は、復号化ショットシーケンスをこれらの全ての標的解像度にアップサンプリングして、これらの異なるクラスのエンドポイントデバイスの1つを考慮する場合、それに対応して品質を評価することができる。
次に、動的オプティマイザ150は、再構築ショットシーケンスを分析して、客観的品質メトリック(QM)の品質スコア334を生成する。例えば、幾つかの実施形態では、動的オプティマイザ150は、VMAF(又は調和VMAF)アルゴリズムを実施して、関連付けられた再構築ショットシーケンスに基づいて各符号化ショットシーケンス326のVMAFスコアを生成する。VMAFスコア等の多くのビデオ品質メトリックを異なる標的解像度で計算することができるが、異なる解像度332に関連付けられた符号化ショットシーケンス385間で品質を比較する際、アプリケーションが、復号化後、再サンプリングに同じ標的解像度を使用する必要があることが明かであるはずである。例えば、幾つかの実施形態では、動的オプティマイザ150は、復号化ショットシーケンスを1920×1080に再サンプリングして、各符号化ショットシーケンス326の再構築ショットシーケンスを生成する。続けて、動的オプティマイザは、関連付けられた再構築ショットシーケンスに基づいて、符号化ショットシーケンス326の品質スコア334を計算する。
動的オプティマイザ150は、任意の技術的に実現可能な様式で解像度334に基づいてビットレート332を生成し得る。例えば、幾つかの実施形態では、動的オプティマイザ150は、解像度334に必要なビット総数を関連付けられたショットシーケンス132の長さで除算し得る。同じ又は他の実施形態において、動的オプティマイザ150は、品質スコア334及び品質を歪みに変換する任意の技術的に実現可能な技法に基づいて、歪みレベル336を計算し得る。例えば、動的オプティマイザ150は、品質スコア334を反転させて、歪みレベル336を特定することができる。別の例では、動的オプティマイザ150は、一定値から品質スコア334を減算して、歪みレベル336を特定することができる。
各ショットシーケンス132(x)で、凸包生成器340は、ショット符号化セット310(x)に基づいて凸包350(x)を生成する。各凸包350(x)は、限定ではなく、所与の歪みレベルでのビットレートを最大化するショット符号化セット310(x)に含まれるショット符号化点320を含む。凸包生成器340がショット符号化セット310(0)に基づいて凸包350(0)をいかに生成するかの詳細な一例を図4と併せて説明する。
示されるように、及び図5と併せて詳細に説明するように、トレリス反復器360は、凸包350を受信し、次に、シーケンストレリス370を反復更新して、任意の数のビデオ符号化点380を生成する。トレリス反復器360はソフトウェアモジュールであり、シーケンストレリス370は、図5A〜図5Dと併せて以下に更に詳細に説明するデータ構造である。
各ビデオ符号化点380は、限定ではなく、ショット符号化シーケンス382、符号化ビデオシーケンス386、ビットレート332、及び歪みレベル334を含む。ショット符号化シーケンス382は、限定ではなく、S+1ショット符号化点320を含む−各ショットシーケンス132の異なるショット符号化点320。符号化ビデオシーケンス386は、限定ではなく、ショット符号化シーケンス382に含まれるS+1ショット符号化点320に含まれるS+1符号化ショットシーケンス326を含む。ビットレート332及び歪みレベル334はそれぞれ、符号化ビデオシーケンス386のグローバルビットレート及びグローバル歪みレベルを指定する。図5A〜図5Dと併せて更に詳細に説明するように、トレリス反復器360は、ビデオ符号化点を生成し、続けて、ビデオ符号化点360に基づいてグローバル凸包390を生成する。
図4は、本発明の様々な実施形態による図3の凸包生成器340により生成される凸包350(0)を示す。特に、凸包生成器340は、ショット符号化セット310(0)に基づいて凸包350(0)を生成する。示されるように、グラフ400は、限定ではなく、ビットレート軸410及び歪み軸420を含む。
動作において、凸包生成器340は、解像度322に基づいて、ショット符号化セット310(0)に含まれるショット符号化点320を異なるサブセットに分散させる。続けて、各解像度固有のサブセットで、凸包生成器340は、ビットレート332をビットレート軸410に沿って配置し、歪みレベル336を歪み軸420に沿って配置して、対応する歪み曲線450を生成することにより、ショット符号化点320のそれぞれをプロットする。このようにして、凸包生成器340は歪み曲線450(0)〜450(3)を生成し、各歪み曲線450は、異なる解像度322に対応し、1つ以上のショット符号化点320を含む。
歪み曲線450を生成した後、凸包生成器340は、歪み曲線450に沿ったショット符号化点320を評価して、凸包350(x)を特定する。より具体的には、凸包生成器340は、全てのショット符号化点320が境界の片側(この場合、境界の右側)に存在するとともに、直線を用いて任意の2つの識別された連続ショット符号化点320を接続することにより、残りの全てのショット符号化点320が同じ側に配置された状態になるようなものであるショット符号化点320を、境界を形成する全ての歪み曲線450にわたり識別する。凸包350(0)は、1組の識別されたショット符号化点320を含む。
凸包を生成する多くの技法が数学の分野で周知であり、凸包350を生成するためにそのような全ての技法を実施し得ることを当業者は理解しよう。一実施形態では、凸包生成器340は、機械学習技法を適用して、関連付けられたソースビデオシーケンス132の様々なパラメータに基づいて、凸包350に含まれるショット符号化点320を推定する。このようにして、これまで考察した計算の幾つかは、簡素化し、及び/又は全体的に回避し得る。
図5A〜図5Dは、本発明の様々な実施形態により、図3のトレリス反復器360が符号化ショットシーケンス336を符号化ビデオシーケンス386にいかに組み立てるかを更に詳細に示す。図5A〜図5Dに示されるように、シーケンストレリス370は、限定ではなく、ショット軸520及びビットレート軸410を含む。シーケンストレリス370は、限定ではなく、凸包350に含まれるショット符号化点320の列も含み、各列は特定のショットシーケンス132に対応する。例えば、シーケンストレリス370に含まれる0番目の列は、凸包350(0)に含まれるショット符号化点320に対応する。任意の列に含まれるショット符号化点320は、昇順ビットレート332に従って(及び構築により、降順歪みレベル336により)ランク付けされる。任意の列に含まれる「包」ショット符号化点320は又、ビットレート332の関数として低減する−大きさが−負の傾きを有することが保証される。
便宜上、包ショット符号化点320は個々に、以下の系統に従って索引付けられる。所与の包ショット符号化点320で、最初の数はショットシーケンス132のインデックスであり、2番目の数は、それらの包ショット符号化点320のビットレートランクへのインデックスである。例えば、包ショット符号化点320 00は、0番目のショットシーケンス132(0)及び0番目のランク付きビットレート332に対応する。同様に、包ショット符号化点320 43は、4番目のショットシーケンス332(4)及び3番目のランク付きビットレート332(この場合、最高ランクのビットレート332)に対応する。
図3と併せて上述したように、シーケンストレリス370に含まれる各包ショット符号化点320は、異なる符号化ショットシーケンス326を含む。トレリス反復器360は、これらの符号化ショットシーケンス326を結合することにより符号化ビデオシーケンス386を生成する。トレリス反復器360はシーケンストレリス370を実施して、この結合技法を繰り返し実行する。
図5A〜図5Dのそれぞれは、異なる反復でトレリス反復器360により生成される異なるバージョンのシーケンストレリス370を示す。図5Aは、初期状態のシーケンストレリス370(0)を示す。ここで、トレリス反復器360は、包ショット符号化点320 00、10、20、30、及び40を含むショット符号化シーケンス382(0)を生成する。これらの最初に選択された包ショット符号化点320は、最も低いビットレート332及び最も高い歪みレベル336を有し、したがって、各列の下部に存在する。
トレリス反復器360は、ショット符号化シーケンス382(0)に基づいて符号化ビデオシーケンス386(0)を生成する。より正確には、トレリス反復器360は、続けて包ショット符号化点00、10、20、30、及び40に含まれる符号化ショットシーケンス326を統合して、符号化ビデオシーケンス386(0)を生成する。続けて、トレリス反復器360は、符号化ビデオシーケンス386(0)のビットレート332及び歪みレベル336を計算する。トレリス反復器360は、任意の技術的に実現可能な様式で、符号化ビデオシーケンス386(0)のビットレート332及び歪みレベル336を計算し得る。次に、トレリス反復器360は、限定ではなく、ショット符号化シーケンス382(0)、符号化ビデオシーケンス386(0)、符号化ビデオシーケンス386(0)のビットレート332、及び符号化ビデオシーケンス386(0)の歪みレベル336を含むビデオ符号化点380(0)を生成する。
次に、トレリス反復器360は、ショット符号化シーケンス382(0)内の各包ショット符号化点320で、包ショット符号化点320と包ショット符号化点320の上の近傍包ショット符号化点320との間でのビットレート332に関する歪みの変化率を計算する。例えば、トレリス反復器360は、ノード00と01との間、10と11との間、20と21との間、30と31との間、及び40と41との間のビットレート332に関する歪みの変化率を計算することができる。特に、特定の符号化ショットシーケンス326を含む包ショット符号化点320の計算された変化率は、包ショット符号化点320でとられたショットシーケンス132に関連付けられた歪み曲線450の導関数を表す。
トレリス反復器360は、最大の大きさを有する導関数を選択し、次に、続くショット符号化シーケンス382に包含する、その導関数に関連付けられた上の近傍を選択する。例えば、図5Bでは、トレリス反復器360は、包ショット符号化点320 30に関連付けられた導関数が最大であると判断し、したがって、包ショット符号化点320 31(包ショット符号化点320 30の上の近傍)をショット符号化シーケンス382(1)に含める。特に、示されるように、トレリス反復器360は、包ショット符号化点320 00、10、20、31、及び40を含むショット符号化シーケンス382(1)を生成する。
次に、トレリス反復器360は、ショット符号化シーケンス382(1)に基づいて符号化ビデオシーケンス386(1)を生成する。より正確には、トレリス反復器360は、続けて包ショット符号化点00、10、20、31、及び40に含まれる符号化ショットシーケンス326を統合して、符号化ビデオシーケンス386(1)を生成する。続けて、トレリス反復器360は、符号化ビデオシーケンス386(1)のビットレート332及び歪みレベル336を計算する。次に、トレリス反復器360は、限定ではなく、ショット符号化シーケンス382(1)、符号化ビデオシーケンス386(1)、符号化ビデオシーケンス386(1)のビットレート332、及び符号化ビデオシーケンス386(1)の歪みレベル336を含むビデオ符号化点380(1)を生成する。
トレリス反復器360は、この技法を繰り返し実行し、それにより、図5C及び図5Dに示されるように、シーケンストレリス370を上昇させる。
図5Cでは、トレリス反復器360は、包ショット符号化点320 00に関連付けられた導関数が他の導関数と比較して最も大きいと判断し、したがって、ショット符号化シーケンス382(2)に包含するために包ショット符号化点320 01を選択する。示されるように、トレリス反復器360は、包ショット符号化点320 01、10、20、31、及び40を含むショット符号化シーケンス382(2)を生成する。
次に、トレリス反復器360は、ショット符号化シーケンス382(2)に基づいて符号化ビデオシーケンス386(2)を生成する。より正確には、トレリス反復器360は、続けて、包ショット符号化点01、10、20、31、及び40に含まれる符号化ショットシーケンス326を統合して、符号化ビデオシーケンス386(2)を生成する。続けて、トレリス反復器360は、符号化ビデオシーケンス386(2)のビットレート332及び歪みレベル336を計算する。次に、トレリス反復器360は、限定ではなく、ショット符号化シーケンス382(2)、符号化ビデオシーケンス386(2)、符号化ビデオシーケンス386(2)のビットレート332、及び符号化ビデオシーケンス386(2)の歪みレベル336を含むビデオ符号化点380(2)を生成する。
トレリス反復器360は、図5Dに示されるように、ビデオ符号化点380(T)を生成するまでこのプロセスを続ける。ビデオ符号化点380(T)は、限定ではなく、ショット符号化シーケンス382(T)、符号化ビデオシーケンス386(T)、符号化ビデオシーケンス386(T)のビットレート332、及び符号化ビデオシーケンス386(T)の歪みレベル336を含む。
このようにして、トレリス反復器360は、ビットレートが増大し、歪みが低減する1つの包ショット符号化点320を選択することによりショット符号化シーケンス382を増分的に改善し、それにより、ビットレートが増大し、歪みが低減する符号化ビデオシーケンス386の集まりを生成する。
一実施形態では、トレリス反復器360は、終了状況を作り出すために、シーケンストレリス370を上る前、包ショット符号化点320を追加する。そうするに当たり、トレリス反復器360は、最大のビットレート332を有する包ショット符号化点320を複製して、最後から2番目と最後の包ショット符号化点320との間の変化率をゼロにし得る。このゼロ変化率が、全てのショットシーケンス132で検出される場合、すなわち、変化率の最大の大きさが厳密にゼロである場合、トレリス反復器360は、終了状況を識別し、反復を停止する。
新しい符号化点の生成
図6は、本発明の様々な実施形態による、図5A〜図5Dに示される異なるビデオ符号化点380に基づいて図1の動的オプティマイザ150により生成されるグローバル凸包390を示す。示されるように、グラフ600はビットレート軸410及び歪み軸420を含む。
図5A〜図5Dと併せて詳細に説明するように、トレリス反復器360は、昇順でショット符号化シーケンス382を生成して、歪みレベル336を低減し、ビットレート332を増大する。その結果、関連付けられた符号化ビデオシーケンス386は、高歪みレベル336及び低ビットレート332から低歪みレベル336及び高ビットレート332までの範囲に及ぶ。特に、各ビデオ符号化点380(x)は、符号化ビデオシーケンス386(x)のビットレート332及び符号化ビデオシーケンス386(x)の歪みレベル336を含む。
示されるように、動的オプティマイザ150は、ビットレート軸410及び歪み軸420と突き合わせて異なるビデオ符号化点380をプロットして、グローバル凸包390を生成する。次に、動的オプティマイザ150は、グローバル凸包390に含まれる点(すなわち、ビデオ符号化点380)を結んで曲線630を生成する。したがって、曲線630は、全ての符号化ビデオシーケンス386にわたるビットレート332の関数としての歪みレベル336を表す。
一般に、曲線630に基づいて、反復コントローラ140は、所与のビットレート332で、歪みレベル336を最小化する符号化ビデオシーケンス386を含むビデオ符号化点380を選択することができる。逆に、反復コントローラ140は、所与の歪みレベル336で、所与の歪みレベル336でビットレート332を最小化する符号化ビデオシーケンスを含むビデオ符号化点380を選択することができる。
動作において、反復コントローラ140は、標的メトリック値170に基づいて「最適化された」ビデオ符号化点380を選択する。標的メトリック値170は、標的ビットレート332又は標的歪みレベル336のいずれかであり得る。図6に示される実施形態では、標的メトリック値170は標的ビットレート332である。したがって、反復コントローラ140は、標的メトリック値170の最も近くにあるビットレート332を有する符号化ビデオシーケンス386を含む最適化されたビデオ符号化点380を選択する。
示されるように、標的メトリック値170に基づいて、反復コントローラ140は、符号化ビデオシーケンス386(2)を含む最適化されたビデオ符号化点380(2)を選択する。特に、符号化ビデオシーケンス386(2)は、標的ビットレート332で歪みレベル336を最小化するビデオ符号化シーケンス386である。代替の実施形態では、反復コントローラ140は、標的メトリック値170の最も近くにある歪みレベル336を有する符号化ビデオシーケンス386を含む最適化されたビデオ符号化点380を選択する。特に、最適化されたビデオ符号化点380は、「最適化」されたショット符号化シーケンス382も含む。
図2及び図5A〜図5Dと併せて上述したように、ショット符号化シーケンス382(2)は、符号化ビデオシーケンス386(2)に含まれる符号化ショットシーケンス326を含むショット符号化点320を指定する。示されるように、符号化ビデオシーケンス386(2)は、ショットシーケンス122(0)の640×360バージョンから導出され、26のQP値において符号化された符号化ショットシーケンス326を含み、それに続き、ショットシーケンス122(1)の640×360バージョンから導出され、51のQP値において符号化された符号化ショットシーケンス326を含み、それに続き、ショットシーケンス122(2)の640×360バージョンから導出され、51のQP値において符号化される符号化ショットシーケンス326等を含む。
一般に、「最適化」されたショット符号化シーケンス382に含まれる「最適化」されたショット符号化点320のそれぞれには、異なるショットシーケンス132が関連付けられる。各ショットシーケンス132(x)で、反復コントローラ140は、関連付けられた凸包350(x)と共に関連付けられた最適化されたショット符号化点320のロケーションを評価して、凸包350(x)上の1つ以上の近傍ショット符号化点320を識別する。最適化されたショット符号化点320及び近傍ショット符号化点320の解像度322及びQP値324に基づいて、反復コントローラ140は、ショットシーケンス132(x)に任意の数の新しい符号化点220を生成し得る。反復コントローラ140は、これらの新しい符号化点220を符号化リスト210(x)に含める。このようにして、反復コントローラ140は、符号化点220の範囲を繰り返し改善して、標的メトリック値170に最良に一致する最適化された符号化ビデオシーケンス180に効率的に収束する。
図7は、本発明の様々な実施形態により、図1の反復コントローラ140がショットシーケンス132(0)の追加の符号化点220をいかに生成するかを示す。図6と併せて詳細に説明するように、反復コントローラ140は、ショットシーケンス132(0)の最適化されたショット符号化点320として、26のQP値324において符号化された640×360ショットシーケンス122(0)を含むショット符号化点320(1)を識別する。
続けて、反復コントローラ140は、4つの新しい符号化点220を生成し、ショットシーケンス132(0)の符号化点220を指定する符号化リスト210(0)に新しい符号化点220を追加する。反復コントローラ140は、以下のアルゴリズムを実施して、新しい符号化点220を選択する。まず、反復コントローラ140は、凸包350に沿って左に配置され、凸包350に沿って最適化されたショット符号化点320に隣接する「左」ショット符号化点320を識別する。左ショット符号化点320が、最適化されたショット符号化点320と同じ解像度322を有する場合、反復コントローラ140は、解像度322を有する新しい符号化点210を生成する。反復コントローラ140は、新しい符号化点のQP値324を最適化されたショット符号化点320及び左ショット符号化点320のQP値324の平均に等しく設定する。
しかしながら、左ショット符号化点320が、最適化されたショット符号化点320と同じ解像度322を有さない場合、反復コントローラ140は2つの新しい符号化点210を生成する。反復コントローラ140は、第1の新しい符号化点210の解像度322を最適化されたショット符号化点320の解像度322に等しく設定する。反復コントローラ140は、第1の新しい符号化点210のQP値324を最適化されたショット符号化点320のQP値324及びビデオコーデックにより可能な最大QP値の平均に設定する。反復コントローラ140は、第2の新しい符号化点210の解像度322を最適化されたショット符号化点320の解像度322の真下の解像度に等しく設定する。反復コントローラ142は、第2の新しい符号化点210のQP値324をビデオコーデックにより可能な最小QP値に設定する。
次に、反復コントローラ140は、凸包350に沿って右に配置され、凸包350に沿って最適化されたショット符号化点320に隣接する「右」ショット符号化点320を識別する。右ショット符号化点320が、最適化されたショット符号化点320と同じ解像度322を有する場合、反復コントローラ140は、解像度322を有する新しい符号化点210を生成する。反復コントローラ140は、新しい符号化点のQP値324を最適化されたショット符号化点320及び右ショット符号化点320のQP値324の平均に等しく設定する。
しかしながら、右ショット符号化点320が、最適化されたショット符号化点320と同じ解像度322を有さない場合、反復コントローラ140は2つの新しい符号化点210を生成する。反復コントローラ140は、第1の新しい符号化点210の解像度322を最適化されたショット符号化点320の解像度322に等しく設定する。反復コントローラ140は、第1の新しい符号化点210のQP値を最適化されたショット符号化点320のQP値324及びビデオコーデックにより可能な最小QP値の平均に設定する。反復コントローラ140は、第2の新しい符号化点210の解像度322を最適化されたショット符号化点320の解像度322の真上の解像度に等しく設定する。反復コントローラ140は、第2の新しい符号化点210のQP値324をビデオコーデックにより可能な最大QP値に設定する。
符号化点演算710は、反復コントローラ140により実行される例示的な演算を示す。示されるように、最適化されたショット符号化点320(1)は、640×360の解像度322(1)及び26のQP値324(1)を有する。左ショット符号化点320(0)は、640×360の解像度322(0)及び51のQP値324(0)を有する。したがって、反復コントローラ140は、新しい符号化点220(6)、220(7)、及び220(8)を符号化リスト210(0)(符号化リスト210(0)には6つのエントリが既に存在する)に追加する。符号化点220(6)は、640×360の解像度322(6)及び(51+26)/2=39のQP値324(6)を有する。符号化点220(7)は、640×360の解像度322(7)及び(26+1)/2=14のQP値324(7)を有する。符号化点220(8)は、960×540の解像度322(8)及び(26+51)/2=39のQP値324(8)を有する。
代替の実施形態では、反復コントローラ140は任意の数及び任意のタイプのアルゴリズムを実施して、新しい符号化点220を選択し得る。例えば、幾つかの実施形態では、反復コントローラ140は、凸包250に基づいて追加の符号化点220の検索を制限しない。その代わり、反復コントローラ140は、全ての利用可能な解像度の中で、最適化されたショット符号化点320の左に検索を拡張して、最適化されたショット符号化点320の解像度322に最も近いが、最適化されたショット符号化点320の解像度322よりも低い解像度322及び僅かに低いビットレート324を有するショット符号化点320を識別する。次に、反復コントローラ140は、識別されたショット符号化点320の解像度322と、選択されたショット符号化点320のQP値324及び同じ解像度322におけるQP値の平均であり、僅かに低いQP値324であるQP値324とを有する新しい符号化点220を生成する。
相補的に、反復コントローラ140は、全ての利用可能な解像度の中で、最適化されたショット符号化点320の右に検索を拡張して、最適化されたショット符号化点320の解像度322に最も近いが、最適化されたショット符号化点320の解像度322よりも高い解像度322及び最適化されたショット符号化点320のビットレート324よりも僅かに高いビットレート324を有するショット符号化点320を識別する。次に、反復コントローラ140は、識別されたショット符号化点320の解像度322と、選択されたショット符号化点320のQP値324及び同じ解像度322におけるQP値の平均であり、僅かに高いQP値324であるQP値とを有する新しい符号化点220を生成する。
各ショットシーケンス132(x)で、ショットシーケンス132(x)の任意の新しい符号化点220を識別した後、反復コントローラ140は、ショットシーケンス132(x)に関連付けられた符号化リスト210(x)に既に含まれているあらゆる新しい符号化点220を破棄する。次に、反復コントローラ140は、ショットシーケンス132(x)に関連付けられた任意の残りの新しい符号化点220(x)を符号化リスト210(x)に追加する。反復コントローラ140は、あらゆる新しい符号化点220を任意の符号化点210に追加する場合、更新された符号化リスト210に基づいて再実行するように動的オプティマイザ150を構成する。しかしながら、反復コントローラ140は、いかなる新しい符号化点220もいかなる符号化リスト210にも追完しない場合、反復コントローラ140が、標的メトリック値170に最良に一致する符号化ビデオシーケンス386を有する最適化されたビデオ符号化点380に収束したと判断する。したがって、反復コントローラ140は、最適化されたビデオ符号化点380に含まれる符号化ビデオシーケンス386に等しく最適化されたビデオシーケンス180を設定する。
代替の実施形態では、反復コントローラ140は、反復コントローラ140が、任意の技術的に実現可能な様式で標的メトリック値170に十分に一致する符号化ビデオシーケンス386を有する最適化されたビデオ符号化点380に収束したと判断し得る。例えば、幾つかの実施形態では、反復コントローラ140は、反復の総数が最大反復構成パラメータ(例えば、5回の反復)に等しい場合、反復(例えば、動的オプティマイザ150の再実行)を停止する。他の実施形態では、反復コントローラ140は、各反復で得られた改善を測定し、改善が改善更生パラメータ(例えば、1%)未満になった後、反復を停止し得る。更に他の実施形態では、反復コントローラ140は、反復符号化アプリケーション120により消費されるプロセッサリソース量を追跡し、プロセッサリソース量がプロセッサ限度構成パラメータを超えた後、反復を停止し得る。
最適化されたビデオシーケンス180を特定した後、反復コントローラ140は、任意の技術的に実現可能な様式で、最適化されたビデオシーケンス180をCDN190に送信する。代替の実施形態では、反復コントローラ140は、最適化されたビデオ符号化点380に含まれる符号化ビデオシーケンス386をCDN190に周期的に送信し得る。このようにして、反復コントローラ140は、反復コントローラ140が反復を続ける間、エンドポイントデバイスがメディアタイトルを表示できるようにする。
図8は、本発明の様々な実施形態による、図1の最適化された符号化ビデオシーケンス180のより詳細な図である。有利なことに、反復符号化アプリケーション120は、標的メトリック値170に基づいて最適化された符号化ビデオシーケンス180に含まれる符号化ショットシーケンス326のそれぞれを最適化する。
示されるように、最適化された符号化ビデオシーケンス180は、ショットシーケンス122(0)の960×540バージョンから導出され、40のQP値において符号化された符号化ショットシーケンス326を含み、それに続き、ショットシーケンス122(1)の640×360バージョンから導出され、11のQP値において符号化された符号化ショットシーケンス326を含み、それに続き、ショットシーケンス122(2)の1280×720バージョンから導出され、47のQP値において符号化された符号化ショットシーケンス326等を含む。
図9A及び図9Bは、本発明の様々な実施形態による、ソースビデオシーケンスを符号化する方法ステップの流れ図を記載する。方法ステップは図1〜図8のシステムを参照して説明されるが、方法ステップを任意の順序で実施するように構成された任意のシステムが本発明の範囲内に入ることを当業者は理解しよう。
示されるように、方法900はステップ902において開始され、ステップ902において、ショット分析器130は、ソースビデオシーケンス122をショットシーケンス132に分割する。ステップ904において、各ショットシーケンス132で、反復コントローラ140は符号化リスト210を生成する。符号化リスト210に含まれる各符号化点220は、解像度322及びQP値324を含む。代替の実施形態では、各符号化点220は、QP値324の代替又は追加として、任意の数及び任意のタイプの符号化パラメータを指定し得る。
ステップ906において、各符号化リスト210で、動的オプティマイザ150は、新しい符号化点220を識別し、対応する符号化ショットシーケンス326を生成する。ステップ908において、新しい符号化ショットシーケンス326のそれぞれで、動的オプティマイザ150は、ビットレート332、品質スコア334、及び歪みレベル336を計算する。続けて、動的オプティマイザ150は、限定ではなく、符号化ショットシーケンス326、解像度322、QP値324、ビットレート332、品質スコア334、歪みレベル336を含む新しいショット符号化点320を生成する。
ステップ910において、ショットシーケンス132及び解像度322の各組合せで、凸包生成器340は、対応するショット符号化点320に基づいて、関連付けられた歪み曲線450を生成する。ステップ912において、各ショットシーケンス132(x)で、凸包生成器340は、関連付けられた歪み曲線450に基づいて凸包350(x)を生成する。ステップ914において、トレリス反復器360は、凸包350に基づいてシーケンストレリス370を生成する。ステップ916において、トレリス反復器360は、シーケンストレリス370を繰り返し上り、符号化ビデオシーケンス386及び関連付けられたビデオ符号化点380を生成する。ステップ918において、トレリス反復器360は、ビデオ符号化点380に基づいてグローバル凸包290を生成する。
ステップ920において、反復コントローラ140は、グローバル凸包290及び標的メトリック値170に基づいて最適化されたビデオ符号化点380を選択する。ステップ922において、各ショットシーケンス132で、反復コントローラ140は、最適化ビデオ符号化点380に含まれるショット符号化シーケンス382に基づいて最適化されたショット符号化点320を選択する。ステップ924において、各ショットシーケンス232(x)で、反復コントローラ140は、凸包350(x)及びショットシーケンス232(x)に関連付けられた最適化されたショット符号化点320に基づいて新しい符号化点220を生成する。ステップ926において、反復コントローラ140は、任意の新しい符号化点220があるか否かを判断する。ステップ926において、反復コントローラ140が、新しい符号化点220があると判断する場合、方法900はステップ960に戻り、動的オプティマイザ150は、新しい符号化点220の新しい符号化ショットシーケンス326を生成する。
しかしながら、ステップ926において、反復コントローラ140が、新しい符号化点220がないと判断する場合、方法900はステップ928に進む。ステップ928において、反復コントローラ140は、最適化された符号化ビデオシーケンス180を最適化されたビデオ符号化点380に含まれる符号化ビデオシーケンス386に等しく設定する。ステップ930において、反復コントローラ140は、最適化された符号化ビデオシーケンス180をコンテンツ配信ネットワーク190に送信して、エンドポイントデバイスにストリーミングする。次に、方法900は終了する。
まとめると、開示される技法は、標的メトリック値に基づくソースビデオシーケンスの効率的で最適な符号化を可能にする。反復符号化アプリケーションは、限定ではなく、ショット分析器、反復コントローラ、及び動的オプティマイザを含む。まず、ショット分析器は、ソースビデオシーケンスを複数のショットシーケンスに分割する。続けて、各ショットシーケンスで、反復コントローラは、比較的疎に分布した符号化点を含むように符号化リストを初期化する。各符号化点は、解像度及び量子化パラメータ(QP)を指定する。次に、反復コントローラは、符号化リストに基づいてグローバル凸包を生成するように動的オプティマイザを構成する。
まず、動的オプティマイザは、符号化リストに含まれる新しい符号化点に基づいて、新しいショット符号化点を生成する。「新しい」符号化点とは、動的オプティマイザが、関連付けられた符号化ショットシーケンスを前に生成したことがない符号化点である。各ショット符号化点は、限定ではなく、符号化ショットシーケンス、解像度、QP値、品質スコア、歪みレベル、及びビットレートを含む。続けて、各ショットシーケンスで、動的オプティマイザは、ショットシーケンスに関連付けられたショット符号化点のサブセットを含む凸包を生成する。一般に、所与のショットシーケンスで、関連付けられた凸包に含まれるショット符号化点は、異なる歪みレベルのビットレートを最小化する。
次に、動的オプティマイザは、全てのショットシーケンスにわたる凸包を評価して、ショット符号化シーケンスを特定する。各ショット符号化シーケンスは、異なるショットシーケンスのショット符号化点を指定する。各ショット符号化シーケンスで、動的オプティマイザは、ショット符号化点に含まれる異なる符号化ショットシーケンスを統合して、符号化ビデオシーケンスを生成する。各ショット符号化シーケンスで、動的オプティマイザは次に、ショット符号化シーケンス、関連付けられた符号化ビデオシーケンス、符号化ショットシーケンスの全体ビットレート、及び符号化ショットシーケンスの全体歪みレベルを含むビデオ符号化点を生成する。続けて、動的オプティマイザは、ビデオ符号化点に基づいてグローバル凸包を生成する。一般に、ソースビデオシーケンスで、グローバル凸包に含まれる各ビデオ符号化点は、異なる全体歪みレベルの全体ビットレートを最小化する。
反復コントローラは、グローバル凸包及び標的メトリック値(例えば、ビットレート又は品質スコア)に基づいて、最適化されたショット符号化シーケンスを選択する。各ショットシーケンスで、最適化されたビデオ符号化シーケンスは最適化されたショット符号化点を指定する。各ショットシーケンスで、反復コントローラは、関連付けられた凸包に沿った最適化されたショット符号化点のロケーションを評価して、1つ以上の近傍ショット符号化を識別する。最適化されたショット符号化点の解像度及びQP値並びに近傍ショット符号化点に基づいて、反復コントローラは、ショットシーケンスの任意の数の新しい符号化点を生成し得る。反復コントローラは、任意の新しい符号化点を識別する場合、拡張された組の符号化点に基づいて新しいグローバル凸包を生成するように動的オプティマイザを構成する。
しかしながら、反復コントローラは、いかなる新しい符号化点も識別しない場合、最適化された符号化ビデオシーケンスとして、最適化されたビデオ符号化点に含まれる符号化ビデオシーケンスを選択する。最後に、反復コントローラは、最適化された符号化ビデオシーケンスをコンテンツ配信ネットワークに送信して、エンドポイントデバイスに配信する。
従来技術に対する開示される技法の少なくとも1つの技術改善は、個々の符号化ショットシーケンスを含む最適化された符号化ビデオシーケンスへの反復収束により、通常、従来の符号化技法に関連する符号化非効率性が低減することである。そのような符号化非効率性は、計算リソース及び記憶リソースを不必要に無駄にするのみならず、これらのタイプの非効率性は又、メディアタイトルの符号化バージョンをエンドポイントデバイスにストリーミングするのに必要な帯域幅も不必要に増大させる。
1.幾つかの実施形態では、コンピュータ実施の方法は、第1の組の符号化点及びメディアタイトルに関連付けられたソースビデオシーケンスに含まれる第1のショットシーケンスに基づいて第1の組のショット符号化点を生成するステップであって、各ショット符号化点には異なる符号化ショットシーケンスが関連付けられる、生成するステップと、第1の組のショット符号化点にわたり1つ以上の凸包演算を実行するステップであって、それにより、第1のショットシーケンスに関連付けられた第1の凸包を生成する、実行するステップと、第1の凸包及びソースビデオシーケンスに含まれる第2のショットシーケンスに関連付けられた第2の凸包に基づいて複数の符号化ビデオシーケンスを生成するステップと、複数の符号化ビデオシーケンス及び第1のビデオメトリックの標的値に基づいて、第1の組の符号化点に含まれない第1の符号化点を計算するステップと、第1の符号化点に基づいて、最適化された符号化ビデオシーケンスを生成するステップであって、最適化された符号化ビデオシーケンスの少なくとも一部は続けて、メディアタイトルの再生中、エンドポイントデバイスにストリーミングされる、生成するステップを含む。
2.最適化された符号化ビデオシーケンスを生成するステップは、第1のショットシーケンス及び第1の符号化点に基づいて第1の符号化ショットシーケンスを生成するステップと、第2のショットシーケンス及び第1の符号化点に等しくない第2の符号化点に基づいて第2の符号化ショットシーケンスを生成するステップと、第1の符号化ショットシーケンス及び第2の符号化ショットシーケンスを統合するステップとを含む、条項1に記載のコンピュータ実施の方法。
3.1つ以上の凸包演算を実行するステップは、第1の組のショット符号化点を含む領域を特定するステップと、領域の境界を識別するステップであって、第1の組のショット符号化点に含まれるショット符号化点は、境界の第1の側に存在しない、識別するステップと、境界に沿って配置されない第1の組のショット符号化点に含まれる任意のショット符号化点を破棄するステップであって、それにより、第1の凸包を生成する、破棄するステップとを含む、条項1又は2に記載のコンピュータ実施の方法。
4.複数の符号化ビデオシーケンスを生成するステップは、第1のショット符号化点と第2のショット符号化点との間の第1の傾き値を計算するステップであって、第1のショット符号化点及び第2のショット符号化点の両方は、第1の凸包に含まれる、計算するステップと、第1の傾き値に基づいて第2のショット符号化点に関連付けられた第1の符号化ショットシーケンスを選択するステップと、第1の符号化ショットシーケンスを第2の符号化ショットシーケンスと統合するステップであって、それにより、第1の符号化ビデオシーケンスを生成し、第2の符号化ショットシーケンスには、第2の凸包に含まれる第3のショット符号化点が関連付けられる、統合するステップを含む、条項1〜3のいずれか一項に記載のコンピュータ実施の方法。
5.第1の符号化点を計算するステップは、複数の符号化ビデオシーケンスに基づいてグローバル凸包を生成するステップであって、グローバル凸包は第1の組のビデオ符号化点を含む、生成するステップと、標的値に基づいて第1の組のビデオ符号化点に含まれる第1のビデオ符号化点を選択するステップと、第1のビデオ符号化点及び第1の凸包に基づいて第1の符号化点を特定するステップとを含む、条項1〜4のいずれか一項に記載のコンピュータ実施の方法。
6.第1の符号化点を計算するステップは、標的値に基づいて複数の符号化ビデオシーケンスに含まれる第1の符号化ビデオシーケンスを識別するステップと、第1の符号化ビデオシーケンスに関連付けられ、第1の凸包に含まれる第1のショット符号化点を識別するステップと、第1のショット符号化点と第2のショット符号化点との間の距離に基づいて、第1の凸包に含まれる第2のショット符号化点を識別するステップと、第1のショット符号化点及び第2のショット符号化点に基づいて少なくとも1つの算術演算を実行するステップとを含む、条項1〜5のいずれか一項に記載のコンピュータ実施の方法。
7.少なくとも1つの算術演算を実行するステップは、符号化パラメータの第1の値及び符号化パラメータの第2の値の平均を計算するステップを含み、符号化パラメータの第1の値には、第1のショット符号化点が関連付けられ、符号化パラメータの第2の値には第2のショット符号化点が関連付けられる、条項1〜6のいずれか一項に記載のコンピュータ実施の方法。
8.第1の符号化点を計算するステップは、標的値に基づいて複数の符号化ビデオシーケンスに含まれる第1の符号化ビデオシーケンスを識別するステップと、第1の符号化ビデオシーケンスが関連付けられ、第1の凸包に含まれる第1のショット符号化点を識別するステップと、第1のショット符号化点と第2のショット符号化点との間の距離に基づいて、第1の凸包に含まれる第2のショット符号化点を識別するステップと、第1のショット符号化点に関連付けられた第1の解像度が、第2のショット符号化点に関連付けられた第2の解像度に等しくないと判断するステップと、第1の解像度及び第2の解像度に基づいて、符号化パラメータの最大値又は符号化パラメータの最小値のいずれかに符号化パラメータの終点値を設定するステップと、第1のショット符号化点に関連付けられた符号化パラメータの第1の値と符号化パラメータの終点値との間で少なくとも1つの算術演算を実行するステップとを含む、条項1〜7のいずれか一項に記載のコンピュータ実施の方法。
9.第1のビデオメトリックは、ビットレート、ピーク信号対雑音比(PSNR)、線形ビデオ多方法評価融合(VMAF)メトリック、調和VMAF(VMAFh)メトリック、又は歪みメトリックを含む、条項1〜8のいずれか一項に記載のコンピュータ実施の方法。
10.幾つかの実施形態では、コンピュータ可読記憶媒体は命令を含み、命令は、プロセッサにより実行されると、プロセッサに、第1の組の符号化点及びメディアタイトルに関連付けられたソースビデオシーケンスに含まれる第1のショットシーケンスに基づいて第1の組のショット符号化点を生成するステップであって、各ショット符号化点には異なる符号化ショットシーケンスが関連付けられる、生成するステップと、第1の組のショット符号化点にわたり1つ以上の凸包演算を実行するステップであって、それにより、第1のショットシーケンスに関連付けられた第1の凸包を生成する、実行するステップと、第1の凸包及びソースビデオシーケンスに含まれる第2のショットシーケンスに関連付けられた第2の凸包に基づいてグローバル凸包を生成するステップと、第1のビデオメトリックの標的値、グローバル凸包、及び第1の凸包に基づいて、第1の組の符号化点に含まれない第1の符号化点を計算するステップと、第1の符号化点に基づいて、最適化された符号化ビデオシーケンスを生成するステップであって、最適化された符号化ビデオシーケンスの少なくとも一部は続けて、メディアタイトルの再生中、エンドポイントデバイスにストリーミングされる、生成するステップを実行させる。
11.最適化された符号化ビデオシーケンスを生成するステップは、第1のショットシーケンス及び第1の符号化点に基づいて第1の符号化ショットシーケンスを生成するステップと、第2のショットシーケンス及び第1の符号化点に等しくない第2の符号化点に基づいて第2の符号化ショットシーケンスを生成するステップと、第1の符号化ショットシーケンス及び第2の符号化ショットシーケンスを統合するステップとを含む、条項10に記載のコンピュータ可読記憶媒体。
12.1つ以上の凸包演算を実行するステップは、第1の組のショット符号化点を含む領域を特定するステップと、領域の境界を識別するステップであって、第1の組のショット符号化点に含まれるショット符号化点は、境界の第1の側に存在しない、識別するステップと、境界に沿って配置されない第1の組のショット符号化点に含まれる任意のショット符号化点を破棄するステップであって、それにより、第1の凸包を生成する、破棄するステップとを含む、条項10又は11に記載のコンピュータ可読記憶媒体。
13.第1の凸包に含まれる各ショット符号化点には、ビットレート及び歪みメトリック又は視覚品質メトリックのいずれかの値の両方が関連付けられる、条項10〜12のいずれか一項に記載のコンピュータ可読記憶媒体。
14.グローバル凸包を生成するステップは、第1のショット符号化点と第2のショット符号化点との間の第1の傾き値を計算するステップであって、第1のショット符号化点及び第2のショット符号化点の両方は、第1の凸包に含まれる、計算するステップと、第1の傾き値に基づいて第2のショット符号化点に関連付けられた第1の符号化ショットシーケンスを選択するステップと、第1の符号化ショットシーケンスを第2の符号化ショットシーケンスと統合するステップであって、それにより、第1の符号化ビデオシーケンスを生成し、第2の符号化ショットシーケンスには、第2の凸包に含まれる第3のショット符号化点が関連付けられる、統合するステップと、第1の符号化ビデオシーケンスに基づいて第1のビデオ符号化点を生成するステップと、第1のビデオ符号化点を部分グローバル凸包に追加するステップであって、それにより、グローバル凸包を生成する、追加するステップとを含む、条項10〜13のいずれか一項に記載のコンピュータ可読記憶媒体。
15.第1の符号化点を計算するステップは、標的値に基づいてグローバル凸包に含まれる第1のビデオ符号化点を選択するステップと、第1のビデオ符号化点に基づいて第1の凸包に含まれる第1のショット符号化点を選択するステップと、第1のショット符号化点と第2のショット符号化点との間の距離に基づいて、第1の凸包に含まれる第2のショット符号化点を識別するステップと、第1のショット符号化点及びに第2のショット符号化点に基づいて少なくとも1つの算術演算を実行するステップとを含む、条項10〜14のいずれか一項に記載のコンピュータ可読記憶媒体。
16.少なくとも1つの算術演算を実行するステップは、第1の符号化点に関連付けられた第1の解像度と第2の符号化点に関連付けられた第2の解像度との平均を計算するステップを含む、条項10〜15のいずれか一項に記載のコンピュータ可読記憶媒体。
17.第1の符号化点を計算するステップは、標的値に基づいてグローバル凸包に含まれる第1のビデオ符号化点を選択するステップと、第1のビデオ符号化点に基づいて第1の凸包に含まれる第1のショット符号化点を選択するステップと、第1のショット符号化点と第2のショット符号化点との間の距離に基づいて、第1の凸包に含まれる第2のショット符号化点を識別するステップと、第1のショット符号化点に関連付けられた第1の解像度が、第2のショット符号化点に関連付けられた第2の解像度に等しくないと判断するステップと、第1の解像度及び第2の解像度に基づいて、符号化パラメータの最大値又は符号化パラメータの最小値のいずれかに符号化パラメータの終点値を設定するステップと、第1のショット符号化点に関連付けられた符号化パラメータの第1の値と符号化パラメータの終点値との間で少なくとも1つの算術演算を実行するステップとを含む、条項10〜16のいずれか一項に記載のコンピュータ可読記憶媒体。
18.第1の符号化点は、解像度及び符号化パラメータの少なくとも一方を指定する、条項10〜17のいずれか一項に記載のコンピュータ可読記憶媒体。
19.幾つかの実施形態では、システムは、命令を記憶するメモリと、メモリに結合されるプロセッサとを含み、プロセッサは、命令を実行すると、メディアタイトルに関連付けられたビデオシーケンスを分割して、複数のフレームセットにするステップと、第1の組の符号化点及び複数のフレームセットに含まれる第1のフレームセットに基づいて、第1の組のショット符号化点を生成するステップであって、各ショット符号化点には異なる符号化フレームセットが関連付けられる、生成するステップと、第1の組のショット符号化点にわたり1つ以上の凸包演算を実行するステップであって、それにより、第1のフレームセットに関連付けられた第1の凸包を生成する、実行するステップと、第1の凸包及び複数のフレームセットに含まれる第2のフレームセットに関連付けられた第2の凸包に基づいて複数の符号化ビデオシーケンスを生成するステップと、複数の符号化ビデオシーケンス及び第1のビデオメトリックの標的値に基づいて、第1の組の符号化点に含まれない第1の符号化点を計算するステップと、第1の符号化点に基づいて、最適化された符号化ビデオシーケンスを生成するステップであって、最適化された符号化ビデオシーケンスの少なくとも一部は続けて、メディアタイトルの再生中、エンドポイントデバイスにストリーミングされる、生成するステップを行うように構成される。
20.プロセッサは、第1のフレームセット及び関第1の符号化点に基づいて第1の符号化フレームセットを生成するステップと、第2のフレームセット及び第1の符号化点に等しくない第2の符号化点に基づいて第2の符号化フレームセットを生成するステップと、第1の符号化フレームセット及び第2の符号化フレームセットを統合するステップとを行うことにより、最適化された符号化ビデオシーケンスの生成を決定するように構成される、条項19に記載のシステム。
任意の請求項に記載される任意のクレーム要素及び/又は本願に記載される任意の要素の任意の様式でのありとあらゆる組合せは、本発明の意図される範囲及び保護内にある。
様々な実施形態の説明は、例示を目的として提示されたが、網羅的であること又は開示される実施形態への限定を意図しない。記載される実施形態の範囲及び趣旨から逸脱せずに、多くの変更及び変形が当業者には明らかになろう。
本実施形態の態様は、システム、方法、又はコンピュータプログラム製品として実施し得る。したがって、本開示の態様は、全体的にハードウェアの実施形態、全体的にソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコード等を含む)、又はソフトウェア態様及びハードウェア態様を組み合わせた実施形態の形態をとり得、これらは全て本明細書では「モジュール」又は「システム」と呼ばれ得る。さらに、本開示の態様は、コンピュータ可読プログラムコードが内部で実施された1つ以上のコンピュータ可読媒体で実施されるコンピュータプログラム製品の形態をとり得る。
1つ以上のコンピュータ可読媒体の任意の組合せが利用可能である。コンピュータ可読媒体は、コンピュータ可読信号媒体又はコンピュータ可読記憶媒体であり得る。コンピュータ可読記憶媒体は、例えば、限定ではなく、電子、磁気、光学、電磁、赤外線、又は半導体のシステム、装置、デバイス、又は上記の任意の適した組合せであり得る。コンピュータ可読記憶媒体のより具体的な例(非網羅的なリスト)には以下がある:1つ以上のワイヤを有する電気接続、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROM又はフラッシュメモリ)、光ファイバ、ポータブルコンパクトディスク読み取り専用メモリ(CD−ROM)、光学記憶装置、磁気記憶装置、又は上記の任意の適した組合せ。本文書では、コンピュータ可読記憶媒体は、命令実行システム、装置、若しくはデバイスにより使用され、又は命令実行システム、装置、若しくはデバイスと併せて使用されるプログラムを包含又は記憶することができる任意の有形媒体であり得る。
本開示の態様は、本開示の実施形態による方法、装置(システム)、及びコンピュータプログラム製品のフローチャート図及び/又はブロック図を参照して上述された。フローチャート図及び/又はブロック図の各ブロック及びフローチャート図及び/又はブロック図内のブロックの組合せが、コンピュータプログラム命令によって実施することができることが理解されよう。これらのコンピュータプログラム命令は、汎用コンピュータ、専用コンピュータ、又は他のプログラマブルデータ処理装置のプロセッサに提供されて、機械を生成し得る。命令は、コンピュータ又は他のプログラマブルデータ処理装置のプロセッサを介して実行されると、フローチャート及び/又はブロック図の1つ以上のブロックにおいて指定される機能を実施できるようにする。そのようなプロセッサは、限定ではなく、汎用プロセッサ、専用プロセッサ、特定用途向けプロセッサ又はフィールドプログラマブルゲートアレイであり得る。
図中のフローチャート及びブロック図は、本開示の様々な実施形態によるシステム、方法、及びコンピュータプログラム製品の可能な実施のアーキテクチャ、機能、及び動作を示す。これに関して、フローチャート又はブロック図内の各ブロックは、指定された論理関数を実施する1つ以上の実行可能命令を含むモジュール、セグメント、又はコードの部分を表し得る。幾つかの代替の実施態様では、ブロックで示される機能が、図に示される順序外で行われ得ることにも留意されたい。例えば、連続して示される2つのブロックは実際には、関わる機能に応じて、略同時に実行することができ、又はブロックは時には、逆順で実行されることもある。ブロック図及び/又はフローチャート図の各ブロック及びブロック図及び/又はフローチャート図内のブロックの組合せが、指定された機能若しくは動作を実行する専用ハードウェアベースのシステム又は専用ハードウェア及びコンピュータ命令の組合せにより実施可能なことにも留意する。
上記は本開示の実施形態に関するが、本開示の基本範囲から逸脱せずに、本開示の他の実施形態及び更なる実施形態を考案し得、本開示の範囲は以下の特許請求の範囲によって決定される。

Claims (11)

  1. コンピュータ実施の方法において、
    第1の組の符号化点及びメディアタイトルに関連付けられたソースビデオシーケンスに含まれる第1のショットシーケンスに基づいて第1の組のショット符号化点を生成するステップであって、各ショット符号化点には異なる符号化ショットシーケンスが関連付けられる、生成するステップと、
    前記第1の組のショット符号化点にわたり1つ以上の凸包演算を実行するステップであって、それにより、前記第1のショットシーケンスに関連付けられた第1の凸包を生成する、実行するステップと、
    前記第1の凸包及び前記ソースビデオシーケンスに含まれる第2のショットシーケンスに関連付けられた第2の凸包に基づいて複数の符号化ビデオシーケンスを生成するステップと、
    前記複数の符号化ビデオシーケンス及び第1のビデオメトリックの標的値に基づいて、前記第1の組の符号化点に含まれない第1の符号化点を計算するステップと、
    前記第1の符号化点に基づいて、最適化された符号化ビデオシーケンスを生成するステップであって、前記最適化された符号化ビデオシーケンスの少なくとも一部は続けて、前記メディアタイトルの再生中、エンドポイントデバイスにストリーミングされる、生成するステップと、
    を含むことを特徴とする方法。
  2. 前記最適化された符号化ビデオシーケンスを生成するステップは、
    前記第1のショットシーケンス及び前記第1の符号化点に基づいて第1の符号化ショットシーケンスを生成するステップと、
    前記第2のショットシーケンス及び前記第1の符号化点に等しくない第2の符号化点に基づいて第2の符号化ショットシーケンスを生成するステップと、
    前記第1の符号化ショットシーケンス及び前記第2の符号化ショットシーケンスを統合するステップと、
    を含むことを特徴とする請求項1に記載の方法。
  3. 前記1つ以上の凸包演算を実行するステップは、
    前記第1の組のショット符号化点を含む領域を特定するステップと、
    前記領域の境界を識別するステップであって、前記第1の組のショット符号化点に含まれるショット符号化点は、前記境界の第1の側に存在しない、識別するステップと、
    前記境界に沿って配置されない前記第1の組のショット符号化点に含まれる任意のショット符号化点を破棄するステップであって、それにより、前記第1の凸包を生成する、破棄するステップと、
    を含むことを特徴とする請求項1に記載の方法。
  4. 前記複数の符号化ビデオシーケンスを生成するステップは、
    第1のショット符号化点と第2のショット符号化点との間の第1の傾き値を計算するステップであって、前記第1のショット符号化点及び前記第2のショット符号化点の両方は、前記第1の凸包に含まれる、計算するステップと、
    前記第1の傾き値に基づいて前記第2のショット符号化点に関連付けられた第1の符号化ショットシーケンスを選択するステップと、
    前記第1の符号化ショットシーケンスを第2の符号化ショットシーケンスと統合するステップであって、それにより、第1の符号化ビデオシーケンスを生成し、前記第2の符号化ショットシーケンスには、前記第2の凸包に含まれる第3のショット符号化点が関連付けられる、統合するステップと、
    を含むことを特徴とする請求項1に記載の方法。
  5. 前記第1の符号化点を計算するステップは、
    前記複数の符号化ビデオシーケンスに基づいてグローバル凸包を生成するステップであって、前記グローバル凸包は第1の組のビデオ符号化点を含む、生成するステップと、
    前記標的値に基づいて前記第1の組のビデオ符号化点に含まれる第1のビデオ符号化点を選択するステップと、
    前記第1のビデオ符号化点及び前記第1の凸包に基づいて前記第1の符号化点を特定するステップと、
    を含むことを特徴とする請求項1に記載の方法。
  6. 前記第1の符号化点を計算するステップは、
    前記標的値に基づいて前記複数の符号化ビデオシーケンスに含まれる第1の符号化ビデオシーケンスを識別するステップと、
    前記第1の符号化ビデオシーケンスに関連付けられ、前記第1の凸包に含まれる第1のショット符号化点を識別するステップと、
    前記第1のショット符号化点と第2のショット符号化点との間の距離に基づいて、前記第1の凸包に含まれる前記第2のショット符号化点を識別するステップと、
    前記第1のショット符号化点及び前記第2のショット符号化点に基づいて少なくとも1つの算術演算を実行するステップと、
    を含むことを特徴とする請求項1に記載の方法。
  7. 前記少なくとも1つの算術演算を実行するステップは、符号化パラメータの第1の値及び前記符号化パラメータの第2の値の平均を計算するステップを含み、前記符号化パラメータの前記第1の値には、前記第1のショット符号化点が関連付けられ、前記符号化パラメータの前記第2の値には前記第2のショット符号化点が関連付けられることを特徴とする請求項6に記載の方法。
  8. 前記第1の符号化点を計算するステップは、
    前記標的値に基づいて前記複数の符号化ビデオシーケンスに含まれる第1の符号化ビデオシーケンスを識別するステップと、
    前記第1の符号化ビデオシーケンスが関連付けられ、前記第1の凸包に含まれる第1のショット符号化点を識別するステップと、
    前記第1のショット符号化点と第2のショット符号化点との間の距離に基づいて、前記第1の凸包に含まれる前記第2のショット符号化点を識別するステップと、
    前記第1のショット符号化点に関連付けられた第1の解像度が、前記第2のショット符号化点に関連付けられた第2の解像度に等しくないと判断するステップと、
    前記第1の解像度及び前記第2の解像度に基づいて、符号化パラメータの最大値又は前記符号化パラメータの最小値のいずれかに前記符号化パラメータの終点値を設定するステップと、
    前記第1のショット符号化点に関連付けられた前記符号化パラメータの第1の値と前記符号化パラメータの前記終点値との間で少なくとも1つの算術演算を実行するステップと、
    を含むことを特徴とする請求項1に記載の方法。
  9. 前記第1のビデオメトリックは、ビットレート、ピーク信号対雑音比(PSNR)、線形ビデオ多方法評価融合(VMAF)メトリック、調和VMAF(VMAFh)メトリック、又は歪みメトリックを含むことを特徴とする請求項1に記載の方法。
  10. 命令を含むコンピュータ可読記憶媒体において、前記命令は、プロセッサにより実行されると、前記プロセッサに、
    第1の組の符号化点及びメディアタイトルに関連付けられたソースビデオシーケンスに含まれる第1のショットシーケンスに基づいて第1の組のショット符号化点を生成するステップであって、各ショット符号化点には異なる符号化ショットシーケンスが関連付けられる、生成するステップと、
    前記第1の組のショット符号化点にわたり1つ以上の凸包演算を実行するステップであって、それにより、前記第1のショットシーケンスに関連付けられた第1の凸包を生成する、実行するステップと、
    前記第1の凸包及び前記ソースビデオシーケンスに含まれる第2のショットシーケンスに関連付けられた第2の凸包に基づいてグローバル凸包を生成するステップと、
    第1のビデオメトリックの標的値、前記グローバル凸包、及び前記第1の凸包に基づいて、前記第1の組の符号化点に含まれない第1の符号化点を計算するステップと、
    前記第1の符号化点に基づいて、最適化された符号化ビデオシーケンスを生成するステップであって、前記最適化された符号化ビデオシーケンスの少なくとも一部は続けて、前記メディアタイトルの再生中、エンドポイントデバイスにストリーミングされる、生成するステップと、
    を実行させることを特徴とするコンピュータ可読記憶媒体。
  11. システムにおいて、
    命令を記憶するメモリと、
    前記メモリに結合されるプロセッサであって、前記命令を実行すると、
    メディアタイトルに関連付けられたビデオシーケンスを分割して、複数のフレームセットにするステップと、
    第1の組の符号化点及び前記複数のフレームセットに含まれる第1のフレームセットに基づいて、第1の組のショット符号化点を生成するステップであって、各符号化点には異なる符号化フレームセットが関連付けられる、生成するステップと、
    前記第1の組のショット符号化点にわたり1つ以上の凸包演算を実行するステップであって、それにより、前記第1のフレームセットに関連付けられた第1の凸包を生成する、実行するステップと、
    前記第1の凸包及び前記複数のフレームセットに含まれる第2のフレームセットに関連付けられた第2の凸包に基づいて複数の符号化ビデオシーケンスを生成するステップと、
    前記複数の符号化ビデオシーケンス及び第1のビデオメトリックの標的値に基づいて、前記第1の組の符号化点に含まれない第1の符号化点を計算するステップと、
    前記第1の符号化点に基づいて、最適化された符号化ビデオシーケンスを生成するステップであって、前記最適化された符号化ビデオシーケンスの少なくとも一部は続けて、前記メディアタイトルの再生中、エンドポイントデバイスにストリーミングされる、生成するステップと、
    を行うように構成されるプロセッサと、
    を含むことを特徴とするシステム。
JP2019543968A 2017-02-23 2018-02-23 ビデオコンテンツを符号化する反復技法 Active JP6942807B2 (ja)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US201762462873P 2017-02-23 2017-02-23
US62/462,873 2017-02-23
US201762534170P 2017-07-18 2017-07-18
US62/534,170 2017-07-18
US201762550517P 2017-08-25 2017-08-25
US62/550,517 2017-08-25
US15/902,976 US10917644B2 (en) 2017-02-23 2018-02-22 Iterative techniques for encoding video content
US15/902,976 2018-02-22
PCT/US2018/019576 WO2018156997A1 (en) 2017-02-23 2018-02-23 Iterative techniques for encoding video content

Publications (2)

Publication Number Publication Date
JP2020508605A JP2020508605A (ja) 2020-03-19
JP6942807B2 true JP6942807B2 (ja) 2021-09-29

Family

ID=63166591

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019543968A Active JP6942807B2 (ja) 2017-02-23 2018-02-23 ビデオコンテンツを符号化する反復技法

Country Status (11)

Country Link
US (7) US10715814B2 (ja)
EP (1) EP3586517B1 (ja)
JP (1) JP6942807B2 (ja)
KR (1) KR102260841B1 (ja)
CN (1) CN110313183B (ja)
AU (2) AU2018223831B2 (ja)
BR (1) BR112019017608A2 (ja)
CA (1) CA3052657C (ja)
MX (1) MX2019010116A (ja)
SG (1) SG11201907409UA (ja)
WO (2) WO2018156997A1 (ja)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3345385A1 (en) * 2015-09-04 2018-07-11 Telefonaktiebolaget LM Ericsson (PUBL) Improved cloud dvr storage
US10148989B2 (en) 2016-06-15 2018-12-04 Divx, Llc Systems and methods for encoding video content
US10742708B2 (en) 2017-02-23 2020-08-11 Netflix, Inc. Iterative techniques for generating multiple encoded versions of a media title
US11166034B2 (en) 2017-02-23 2021-11-02 Netflix, Inc. Comparing video encoders/decoders using shot-based encoding and a perceptual visual quality metric
US11153585B2 (en) 2017-02-23 2021-10-19 Netflix, Inc. Optimizing encoding operations when generating encoded versions of a media title
US10715814B2 (en) 2017-02-23 2020-07-14 Netflix, Inc. Techniques for optimizing encoding parameters for different shot sequences
US10666992B2 (en) 2017-07-18 2020-05-26 Netflix, Inc. Encoding techniques for optimizing distortion and bitrate
US10616590B1 (en) * 2018-05-16 2020-04-07 Amazon Technologies, Inc. Optimizing streaming video encoding profiles
US10554975B1 (en) 2018-09-30 2020-02-04 Tencent America LLC Method and apparatus for video coding
US11128869B1 (en) 2018-10-22 2021-09-21 Bitmovin, Inc. Video encoding based on customized bitrate table
US10841356B2 (en) * 2018-11-28 2020-11-17 Netflix, Inc. Techniques for encoding a media title while constraining bitrate variations
US10880354B2 (en) 2018-11-28 2020-12-29 Netflix, Inc. Techniques for encoding a media title while constraining quality variations
US10911791B2 (en) * 2019-01-09 2021-02-02 Netflix, Inc. Optimizing encoding operations when generating a buffer-constrained version of a media title
US11019374B2 (en) * 2019-02-04 2021-05-25 Netflix, Inc. Techniques for efficiently performing subsequence-based encoding for a media title
EP4014489A1 (en) * 2019-08-16 2022-06-22 Netflix, Inc. Comparing video encoders/decoders using shot-based encoding and a perceptual visual quality metric
US10897654B1 (en) * 2019-09-30 2021-01-19 Amazon Technologies, Inc. Content delivery of live streams with event-adaptive encoding
KR20210067788A (ko) * 2019-11-29 2021-06-08 삼성전자주식회사 전자 장치, 시스템 및 그 제어 방법
US11115697B1 (en) * 2019-12-06 2021-09-07 Amazon Technologies, Inc. Resolution-based manifest generator for adaptive bitrate video streaming
CN111277892B (zh) * 2020-01-20 2022-03-22 北京百度网讯科技有限公司 用于选取视频片段的方法、装置、服务器和介质
US10958947B1 (en) * 2020-03-12 2021-03-23 Amazon Technologies, Inc. Content delivery of live streams with playback-conditions-adaptive encoding
WO2021211290A1 (en) * 2020-04-16 2021-10-21 Alibaba Group Holding Limited Bitrate control method for video coding
US11190826B1 (en) * 2020-06-25 2021-11-30 Disney Enterprises, Inc. Segment quality-guided adaptive stream creation
CA3189122A1 (en) 2020-09-22 2022-03-31 Qsc, Llc Transparent data encryption
JP2022060816A (ja) * 2020-10-05 2022-04-15 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム
US11451790B2 (en) * 2020-10-09 2022-09-20 Tencent America LLC Method and apparatus in video coding for machines
US11277620B1 (en) * 2020-10-30 2022-03-15 Hulu, LLC Adaptive transcoding of profile ladder for videos
US11902599B2 (en) * 2020-12-09 2024-02-13 Hulu, LLC Multiple protocol prediction and in-session adaptation in video streaming
US11729438B1 (en) * 2021-01-28 2023-08-15 Amazon Technologies, Inc. Optimizing streaming video encoding profiles
US11622116B2 (en) * 2021-03-31 2023-04-04 Hulu, LLC Cross-validation of video encoding
US11871061B1 (en) 2021-03-31 2024-01-09 Amazon Technologies, Inc. Automated adaptive bitrate encoding
US11616823B2 (en) * 2021-09-01 2023-03-28 At&T Intellectual Property I, L.P. Methods, systems, and devices for streaming video content according to available encoding quality information
US11700376B1 (en) 2021-09-28 2023-07-11 Amazon Technologies, Inc. Optimizing and assigning video encoding ladders
US11935300B2 (en) * 2021-11-05 2024-03-19 Netflix, Inc. Techniques for generating candidate match cuts
US20230188764A1 (en) * 2021-12-15 2023-06-15 At&T Intellectual Property I, L.P. Predictive per-title adaptive bitrate encoding
CN116233445B (zh) * 2023-05-10 2023-07-14 腾讯科技(深圳)有限公司 视频的编解码处理方法、装置、计算机设备和存储介质

Family Cites Families (76)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5612742A (en) 1994-10-19 1997-03-18 Imedia Corporation Method and apparatus for encoding and formatting data representing a video program to provide multiple overlapping presentations of the video program
US6625322B1 (en) 1999-06-08 2003-09-23 Matsushita Electric Industrial Co., Ltd. Image coding apparatus
EP1329109A2 (en) 2000-10-10 2003-07-23 Koninklijke Philips Electronics N.V. Video bitrate control method and device for digital video recording
US7103669B2 (en) * 2001-02-16 2006-09-05 Hewlett-Packard Development Company, L.P. Video communication method and system employing multiple state encoding and path diversity
US7400774B2 (en) * 2002-09-06 2008-07-15 The Regents Of The University Of California Encoding and decoding of digital data using cues derivable at a decoder
CN1778117A (zh) 2003-04-18 2006-05-24 皇家飞利浦电子股份有限公司 使用参变速率失真模型对视频编码进行数率失真优化数据划分的系统和方法
US7242809B2 (en) 2003-06-25 2007-07-10 Microsoft Corporation Digital video segmentation and dynamic segment labeling
KR20070033313A (ko) * 2003-09-23 2007-03-26 코닌클리케 필립스 일렉트로닉스 엔.브이. 콘벡스 훌 탐색을 이용한 레이트-왜곡 비디오 데이터 분할
US7394410B1 (en) 2004-02-13 2008-07-01 Samplify Systems, Inc. Enhanced data converters using compression and decompression
JP4037839B2 (ja) 2004-03-11 2008-01-23 株式会社東芝 画像符号化方法及び装置
KR100909541B1 (ko) 2004-06-27 2009-07-27 애플 인크. 멀티-패스 비디오 인코딩 방법
AU2006346226B8 (en) 2005-07-20 2010-03-25 Vidyo, Inc. System and method for a conference server architecture for low delay and distributed conferencing applications
DE102005042134B4 (de) * 2005-09-05 2007-08-02 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung, Verfahren und Computer-Programm zur Kodierparameterbestimmung für ein hybrides Kodierschema
US7876819B2 (en) 2005-09-22 2011-01-25 Qualcomm Incorporated Two pass rate control techniques for video coding using rate-distortion characteristics
US9113147B2 (en) * 2005-09-27 2015-08-18 Qualcomm Incorporated Scalability techniques based on content information
US9036712B1 (en) 2006-05-08 2015-05-19 Geo Semiconductor Inc. Methods and/or apparatus for controlling zero-residual coding in predictive image/video coding
US20080043832A1 (en) 2006-08-16 2008-02-21 Microsoft Corporation Techniques for variable resolution encoding and decoding of digital video
US8300904B2 (en) 2007-07-18 2012-10-30 Agency For Science, Technology And Research Method and device for determining a similarity value between minutiae templates
JP5369893B2 (ja) 2008-05-30 2013-12-18 株式会社Jvcケンウッド 動画像符号化装置、動画像符号化方法、動画像符号化プログラム、動画像復号装置、動画像復号方法、動画像復号プログラム、動画像再符号化装置、動画像再符号化方法、動画像再符号化プログラム
CN101365125B (zh) 2008-09-27 2012-03-21 腾讯科技(深圳)有限公司 多路视频通信方法与系统
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
US8451903B2 (en) 2009-05-14 2013-05-28 Massachusetts Institute Of Technology Selecting transforms for compressing visual data
US8509309B2 (en) 2009-05-14 2013-08-13 Massachusetts Institute Of Technology Selecting transforms for compressing visual data
US20120147985A1 (en) * 2009-08-18 2012-06-14 Pantech Co., Ltd. Feedbacking channel information in wireless communication system
US20110052087A1 (en) 2009-08-27 2011-03-03 Debargha Mukherjee Method and system for coding images
KR20110032610A (ko) 2009-09-23 2011-03-30 삼성전자주식회사 장면 분할 장치 및 방법
US8171154B2 (en) 2009-09-29 2012-05-01 Net Power And Light, Inc. Method and system for low-latency transfer protocol
US9584700B2 (en) 2009-10-26 2017-02-28 Hewlett-Packard Development Company, L.P. Color separation table optimized for a printing process according to a print attribute by selecting particular Neugebauer primaries and Neugebauer primary area coverages
FR2963189B1 (fr) 2010-07-20 2013-06-21 Freebox Procede d'encodage adaptatif d'un flux video numerique, notamment pour diffusion sur ligne xdsl.
US8837601B2 (en) 2010-12-10 2014-09-16 Netflix, Inc. Parallel video encoding based on complexity analysis
CA2825929A1 (en) 2011-01-28 2012-08-02 Eye IO, LLC Adaptive bit rate control based on scenes
US9621896B2 (en) * 2011-06-10 2017-04-11 Citrix Systems Inc. Macroblock-level adaptive quantization in quality-aware video optimization
US8982942B2 (en) 2011-06-17 2015-03-17 Microsoft Technology Licensing, Llc Adaptive codec selection
US9009009B2 (en) 2011-06-27 2015-04-14 The Research Foundation For The State University Of New York Method for predicting optimized crystal structures
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
US9451284B2 (en) 2011-10-10 2016-09-20 Qualcomm Incorporated Efficient signaling of reference picture sets
WO2013067674A1 (en) 2011-11-07 2013-05-16 Thomson Licensing Predictive position encoding
CN104185991B (zh) 2011-11-09 2018-07-06 弗劳恩霍夫应用研究促进协会 不同动态采样值范围的层之间的层间预测
JP6009578B2 (ja) 2011-12-09 2016-10-19 テレフオンアクチーボラゲット エルエム エリクソン(パブル) 映像ビットストリーム内の品質欠陥を検知するための方法及び装置
US10694258B2 (en) 2011-12-14 2020-06-23 Netflix, Inc. Startup times of streaming digital media playback
US9392304B2 (en) 2012-02-29 2016-07-12 Hulu, LLC Encoding optimization using quality level of encoded segments
US9571827B2 (en) 2012-06-08 2017-02-14 Apple Inc. Techniques for adaptive video streaming
US9125073B2 (en) 2012-08-03 2015-09-01 Intel Corporation Quality-aware adaptive streaming over hypertext transfer protocol using quality attributes in manifest file
CN105027567A (zh) 2013-01-07 2015-11-04 诺基亚技术有限公司 用于视频编码和解码的方法和装置
JP6270873B2 (ja) * 2013-01-15 2018-01-31 華為技術有限公司Huawei Technologies Co.,Ltd. メディアコンテンツの適応型ストリーミングのための品質情報の使用
CN104346613B (zh) 2013-08-08 2018-06-15 卡西欧计算机株式会社 图像处理装置以及图像处理方法
CN103501445B (zh) 2013-10-12 2017-02-22 青岛旲天下智能科技有限公司 一种手势交互的双向互动数字电视盒系统及实现方法
CN103501446B (zh) 2013-10-12 2016-05-18 青岛旲天下智能科技有限公司 基于手势人机交互技术的互联网电视系统及其实现方法
US10019985B2 (en) 2013-11-04 2018-07-10 Google Llc Asynchronous optimization for sequence training of neural networks
US10074382B2 (en) * 2013-12-02 2018-09-11 Dolby International Ab Method for bitrate signaling and bitstream format enabling such method
US9520155B2 (en) * 2013-12-24 2016-12-13 JBF Interlude 2009 LTD Methods and systems for seeking to non-key frames
US9131202B1 (en) 2014-05-30 2015-09-08 Paofit Holdings Pte. Ltd. Systems and methods for motion-vector-aided video interpolation using real-time smooth video playback speed variation
US9767101B2 (en) 2014-06-20 2017-09-19 Google Inc. Media store with a canonical layer for content
US20160073106A1 (en) 2014-09-08 2016-03-10 Apple Inc. Techniques for adaptive video streaming
CN104185024B (zh) 2014-09-16 2017-09-15 福州大学 一种基于总码率与信息熵模型的hevc量化参数优化方法
US20160094802A1 (en) * 2014-09-25 2016-03-31 Nagravision S.A. Receiver-side marking of content for unique identification
EP3041233A1 (en) 2014-12-31 2016-07-06 Thomson Licensing High frame rate-low frame rate transmission technique
US9749646B2 (en) 2015-01-16 2017-08-29 Microsoft Technology Licensing, Llc Encoding/decoding of high chroma resolution details
CA2975904C (en) * 2015-02-07 2023-02-14 Zhou Wang Method and system for smart adaptive video streaming driven by perceptual quality-of-experience estimations
CN104767999B (zh) 2015-04-22 2017-11-17 福州大学 一种基于失真测量的hevc码率控制模型参数更新算法
US10735773B2 (en) * 2015-06-04 2020-08-04 Apple Inc. Video coding techniques for high quality coding of low motion content
US9824278B2 (en) 2015-06-24 2017-11-21 Netflix, Inc. Determining native resolutions of video sequences
US10375156B2 (en) * 2015-09-11 2019-08-06 Facebook, Inc. Using worker nodes in a distributed video encoding system
US10602153B2 (en) 2015-09-11 2020-03-24 Facebook, Inc. Ultra-high video compression
US10255667B2 (en) 2015-12-23 2019-04-09 Vmware, Inc. Quantitative visual perception quality measurement for virtual desktops
WO2017130183A1 (en) 2016-01-26 2017-08-03 Beamr Imaging Ltd. Method and system of video encoding optimization
CN105868700A (zh) 2016-03-25 2016-08-17 哈尔滨工业大学深圳研究生院 一种基于监控视频的车型识别与跟踪方法及系统
US20180063549A1 (en) 2016-08-24 2018-03-01 Ati Technologies Ulc System and method for dynamically changing resolution based on content
CA3043522A1 (en) 2016-12-01 2018-06-07 Brightcove, Inc. Optimization of encoding profiles for media streaming
US10097339B1 (en) 2016-12-22 2018-10-09 Amazon Technologies, Inc. Time synchronization using timestamp exchanges
US11153585B2 (en) 2017-02-23 2021-10-19 Netflix, Inc. Optimizing encoding operations when generating encoded versions of a media title
US10715814B2 (en) 2017-02-23 2020-07-14 Netflix, Inc. Techniques for optimizing encoding parameters for different shot sequences
US10742708B2 (en) 2017-02-23 2020-08-11 Netflix, Inc. Iterative techniques for generating multiple encoded versions of a media title
US10666992B2 (en) 2017-07-18 2020-05-26 Netflix, Inc. Encoding techniques for optimizing distortion and bitrate
US20190028529A1 (en) 2017-07-18 2019-01-24 Netflix, Inc. Encoding techniques for optimizing distortion and bitrate
US11153581B1 (en) * 2020-05-19 2021-10-19 Twitch Interactive, Inc. Intra-segment video upswitching with dual decoding

Also Published As

Publication number Publication date
US11758146B2 (en) 2023-09-12
US10917644B2 (en) 2021-02-09
KR20190120780A (ko) 2019-10-24
US20180242002A1 (en) 2018-08-23
CA3052657A1 (en) 2018-08-30
AU2018223831B2 (en) 2020-12-24
SG11201907409UA (en) 2019-09-27
US11871002B2 (en) 2024-01-09
MX2019010116A (es) 2019-10-14
US20180241795A1 (en) 2018-08-23
JP2020508605A (ja) 2020-03-19
CA3052657C (en) 2022-01-18
US20210160510A1 (en) 2021-05-27
US20210144386A1 (en) 2021-05-13
US20180242015A1 (en) 2018-08-23
US10897618B2 (en) 2021-01-19
KR102260841B1 (ko) 2021-06-08
AU2018223831A1 (en) 2019-08-22
EP3586517B1 (en) 2024-05-01
WO2018156997A1 (en) 2018-08-30
US10715814B2 (en) 2020-07-14
US11184621B2 (en) 2021-11-23
CN110313183B (zh) 2021-11-12
EP3586517A1 (en) 2020-01-01
WO2018156996A1 (en) 2018-08-30
US20180240502A1 (en) 2018-08-23
AU2021201760A1 (en) 2021-04-15
BR112019017608A2 (pt) 2020-03-24
CN110313183A (zh) 2019-10-08
US20220086453A1 (en) 2022-03-17

Similar Documents

Publication Publication Date Title
JP6942807B2 (ja) ビデオコンテンツを符号化する反復技法
US11444999B2 (en) Iterative techniques for generating multiple encoded versions of a media title
JP6953613B2 (ja) 歪みおよびビットレートを最適化するための符号化技術
US11818375B2 (en) Optimizing encoding operations when generating encoded versions of a media title
JP2022516517A (ja) メディアタイトルのバッファ制約バージョンを生成する際の符号化演算の最適化
US11425432B2 (en) Techniques for efficiently performing subsequence-based encoding for a media title
US11722720B2 (en) Techniques for encoding a media title via multiple encoders
US20220094734A1 (en) Techniques for encoding a media title while constraining quality variations
US10841356B2 (en) Techniques for encoding a media title while constraining bitrate variations

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191017

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191017

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201216

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210303

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210908

R150 Certificate of patent or registration of utility model

Ref document number: 6942807

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150