CN106973298B - 以gpu加速的软件视频转码器 - Google Patents

以gpu加速的软件视频转码器 Download PDF

Info

Publication number
CN106973298B
CN106973298B CN201610917719.0A CN201610917719A CN106973298B CN 106973298 B CN106973298 B CN 106973298B CN 201610917719 A CN201610917719 A CN 201610917719A CN 106973298 B CN106973298 B CN 106973298B
Authority
CN
China
Prior art keywords
gpu
video
video stream
cpu
decoder
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
CN201610917719.0A
Other languages
English (en)
Other versions
CN106973298A (zh
Inventor
M·L·施密特
R·梅亚坎罗特尔
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.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices 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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of CN106973298A publication Critical patent/CN106973298A/zh
Application granted granted Critical
Publication of CN106973298B publication Critical patent/CN106973298B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • 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
    • 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
    • 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

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)
  • Television Signal Processing For Recording (AREA)

Abstract

本申请涉及一种以GPU加速的软件视频转码器,如本文所述的本发明具体实施例针对上述习知方法的问题提出解决方案。在以下的说明中,给出各种范例用来图解说明,而非旨在限制。具体实施例均针对一种利用多个中央处理单元(CPU)核心及/或一个或多个图形处理单元(GPU)来分担视频转码的工作量的转码系统,这包含利用GPU内的两种组件:用于解码步骤的专属硬件码或可编程视频解码器,以及用于缩放及编码的计算着色器。该系统结合工业标准微软DXVA方法的用法以便用GPU以GPU编码方案及缩放视频的中间步骤来加速视频解码。

Description

以GPU加速的软件视频转码器
本申请是申请号为200980153781.5,申请日为2009年11月04日,发明名称为“以GPU加速的软件视频转码器”的中国专利申请的分案申请。
相关申请案的交互参照
本申请案为目前待审专利申请案第12/189,060号(其申请于2008年8月8日,标题为“以GPU加速的软件视频编码器”,为申请于2007年12月9日的美国专利申请案第11/960,640号的部分延续申请案)的部分延续申请案,而美国专利申请案第11/960,640号主张申请于2007年5月11日的美国临时专利申请案第60/928,799号的权益,以及与申请于2007年12月5日的美国专利申请案第11/951,222号有关,以上所有文献全部并入本文作为参考。
技术领域
所揭示的具体实施例大体有关于视频显示技术,且更特别的是有关于数字视频数据的转码(transcode)。
背景技术
转码是经数字编码的一格式至另一格式的直接数字至数字式的转换。转码在内容适配(content adaptation)的许多领域中可发现而且常用来把不兼容或过时的数据转换成更合适的格式。它也用来存档或分散内容于不同类型的数字媒体供使用于不同的重放器件,例如把CD格式的歌曲转换成MP3格式用以在计算机及MP3播放器上重放。转码也常用于移动电话内容适配的领域。就此情形而言,由于移动器件及其性能有多样性,转码是必要的。此种多样性要求内容适配的中间状态以便确保来源内容将适当地在目标器件上重放。
利用转码的一种受欢迎的领域为多媒体信息服务(MMS),其用于以媒体(影像、声音、文字及视频)收发信息于移动电话之间的技术。例如,当拍照手机用来取得数字相片时,常产生分辨率(resolution)至少有640x480的高质量影像。传送影像至另一手机可需要将此高分辨率影像转码成有较少色彩的分辨率较低影像以便更适合目标器件的屏幕大小及显示限制。家庭剧院软件也利用转码,例如以减少视频文件所使用的硬盘空间。本申请案中最常见的操作是MPEG-2文件至MPEG-4格式的转码。在有大量的在线多媒体内容及众多不同的可利用器件下,由任何输入格式实时转码至任何输出格式对于任何移动器件上的任何多媒体内容提供真正的搜寻性能正变成有必要。
现有转码方案通常只利用处理系统的CPU资源。因着视频数据的大小,这表示系统有实质的处理负担,尽管有额外的可用资源,然而例如GPU带宽在此类操作中常常没有加以充分利用。
因此,亟须一种转码程序(transcoding process)让GPU及CPU资源可用在执行在转码管线(transcode pipeline)的任务。
发明内容
揭示于本文的具体实施例包括用于把视频流从第一数字格式转码成第二数字格式的设备,包括:解码器,其接收经编码成该第一数字格式的该视频流以及产生经解码的视频流,其中,该解码器利用图形处理单元(GPU)电路以及通过该GPU电路与GPU硬件解码器、GPU可编程解码器及中央处理单元(CPU)软件解码器中的至少一个的组合来实现;缩放器,其改变该经解码的视频流的图片大小以产生经解码及缩放的视频流,其中,该缩放器通过CPU缩放器或GPU缩放器中的一个来实现;以及,编码器,其接收该经解码及缩放的视频流以及产生经编码成该第二数字格式的输出流。
在具体实施例中,该视频流由包括含有至少一个GPU及一个CPU的处理器平台的转码管线系统接收。
在具体实施例中,该GPU硬件解码器包括硬件/可编程视频处理器,其中,解码操作的第一部分由GPU硬件执行而该解码操作的第二部分由在该GPU内的可编程GPU着色器执行。
在具体实施例中,该GPU可编程解码器包含允许通过卸载由该CPU执行的某些操作给该GPU执行来硬件加速该解码器的应用程序接口(API)。
在具体实施例中,呈该第一数字格式的该视频流包括多个视频位流以及该解码器组件包括多个解码器组件,其中,该多个视频位流中的每一视频位流输入至各自的解码器组件。
具体实施例进一步包括视频混色组件,其根据确定混色效果将该多个视频位流组合成经混色的输出流。
在具体实施例中,该多个视频位流包括MPEG视频数据,该设备进一步包括多个框架池,该框架池将MPEG框架的解码顺序重新排序成显示顺序。
在具体实施例中,该输出流传送至显示器件。
具体实施例进一步包括,框架率逻辑组件,其使该经混色的输出流的框架率与该显示器件的刷新速率匹配。
在具体实施例中,该经解码及缩放的视频流传送至耦合至该CPU的存储器器件。
在具体实施例中,该经解码及缩放的视频流的第一副本可用于该CPU,以及该经解码及缩放的视频流的第二副本可用于该GPU。
在具体实施例中,该视频流包含一音频信道,该设备进一步包括:去复用器,其于产生该经解码的视频流之前由包含该视频流的视频框架分离出该音频信道;以及,复用器(multiplexer),其将该音频信道加回到经编码成该第二数字格式的该输出流以及在该编码器中编码。
在具体实施例中,该音频信道在加回到该输出流之前把它从第一音频格式转码成第二音频格式。
描述于本文的具体实施例进一步包含一种把视频流从第一数字格式转码成第二数字格式的方法,其包括下列步骤:由数据储存所接收经编码成该第一数字格式的该视频流;解码收到的该视频流以产生经解码的视频流,其中,该解码方法通过图形处理单元(GPU)资源与中央处理单元(CPU)资源的组合来实现,该解码方法利用与GPU硬件解码器、GPU可编程解码器及CPU软件解码器中的至少一个结合的该GPU资源;缩放该经解码的视频流的图片大小以产生经解码及缩放的视频流,其中,该缩放器通过CPU缩放器或GPU缩放器中的一个来实现;以及,编码该经解码及缩放的视频流以产生经编码成该第二数字格式的输出流。
具体实施例进一步包括下列步骤:使用该GPU硬件解码器、该GPU可编程解码器或该CPU软件解码器中的一个来选择适当的解码方法。
在具体实施例中,该选择步骤由使用者选择、自动程序、或由该第一数字格式决定中的一种来完成。
具体实施例进一步包括下列步骤:传送该经解码及缩放的视频流传送至与在处理平台上的CPU耦合的存储器器件,该处理平台包含该CPU与GPU,使得该经解码及缩放的视频流的第一副本可用于该CPU而该经解码及缩放之视频流的第二副本可用于该GPU。
在具体实施例中,该GPU硬件解码器包括硬件/可编程视频处理器,其中,解码操作的第一部分由GPU硬件执行而该解码操作的第二部分由在该GPU内的可编程GPU着色器执行,以及,其中,该GPU可编程解码器包含允许通过卸载由该CPU执行的某些操作给该GPU执行来硬件加速该解码器的应用程序接口(API)。
在具体实施例中,呈该第一数字格式的该视频流包括多个视频位流以及该解码器组件包括多个解码器组件,其中,该多个视频位流中的每一视频位流输入至各自的解码器组件,该方法进一步包括下列步骤:根据确定混色效果,将该多个视频位流混合成经混色的输出流。
在具体实施例中,该多个视频位流包括MPEG视频数据,该方法进一步包括下列步骤:汇集该多个框架于框架池以将MPEG框架的解码顺序重新排序成显示顺序;以及,传送该输出流至显示器件。
具体实施例进一步包括使该经混色的输出流的框架率与该显示器件的刷新速率匹配。
描述于本文的具体实施例进一步包含一种视频处理系统,包括:中央处理单元(CPU);耦合至该CPU的图形处理单元(GPU);以及,把视频流从第一数字格式转码成第二数字格式的视频转码器管线,该转码器管线包括:解码器,其接收经编码成该第一数字格式的该视频流以及产生经解码的视频流,其中,该解码器利用图形处理单元(GPU)电路以及通过该GPU电路与GPU硬件解码器、GPU可编程解码器及中央处理单元(CPU)软件解码器中的至少一个的组合来实现;缩放器,其改变该经解码的视频流的图片大小以产生经解码及缩放的视频流,其中,该缩放器通过CPU缩放器或GPU缩放器中的一个来实现;以及,编码器,其接收该经解码及缩放的视频流以及产生经编码成该第二数字格式的输出流。
在具体实施例中,该GPU硬件解码器包括硬件/可编程视频处理器,其中,解码操作的第一部分由GPU硬件执行而该解码操作的第二部分由在该GPU内的可编程GPU着色器执行。
在具体实施例中,该GPU可编程解码器包含允许通过卸载由该CPU执行的某些操作给该GPU执行来硬件加速该解码器的应用程序接口(API)。
在具体实施例中,使用该GPU硬件解码器、该GPU可编程解码器或该CPU硬件解码器中的一个的适当解码方法通过使用者选择、自动程序或由该第一数字格式决定中的一种来选择。
附图说明
具体实施例为举例说明而不限于附图,其中,类似的组件用相同的组件符号表示,其中:
图1为根据具体实施例图示实现视频转码方法的视频转码管线的方块图;
图2为根据具体实施例图示实现视频转码器管线的处理系统的方块图;
图3为根据具体实施例图示有其它处理组件的视频转码管线;
图4为根据具体实施例图示实现视频解码程序的视频编辑管线(video editpipeline);
图5为根据具体实施例图示含有供视频数据解码用的框架汇集(frame pooling)的视频编辑管线;
图6为根据具体实施例图示用于含有视频及音频内容的内容的完全转码管线(full transcoding pipeline);以及
图7为根据具体实施例图示利用多个解码程序来转码数字视频数据的整体方法的流程图。
具体实施方式
如本文所述的本发明具体实施例对于上述习知方法的问题提供解决方案。在以下的说明中,给出各种范例用来图解说明,而非旨在限制。具体实施例均针对一种利用多个中央处理单元(CPU)核心及/或一个或多个图形处理单元(GPU)来分担视频转码的工作量的转码系统,这包含利用GPU内的两种组件:用于解码步骤的专属硬件码(hardcode)或可编程视频解码器,以及用于缩放及编码的计算着色器(compute shader)。该系统结合工业标准微软DXVA方法的用法以便用GPU以GPU编码方案及缩放视频的中间步骤来加速视频解码。
转码一般指的是将视频数据由第一格式变换成第二格式的程序。转码包含用经编码的视频开始以及在解码程序后再度予以编码。例如,将经编码成一格式及以数字方式储存的来源视频解码,然后编码成另一格式,甚至重新编码成相同的格式。对于转码后的视频,也可执行中间操作,例如缩放,与其它视频混色(blend),同样这也在编码成第二视频格式之前。图1为根据具体实施例图示实现视频转码方法的视频转码管线的方块图。如图1所示,系统100包含经编码成第一数据格式的视频位流102。该位流在视频解码程序104解码。然后,用视频缩放器(video scaler)106缩放经解码的视频数据。然后,经缩放的视频数据在视频编码器108中编码以产生格式化成第二视频格式的位流110。
在一具体实施例中,图1的视频转码管线在处理系统中实现,其包括含有至少一个中央处理单元(CPU)及至少一个图形处理单元(GPU)的处理平台。图2为根据具体实施例图示实现视频转码器管线的处理系统的方块图。以图2的系统而言,视频数据以第一格式储存于数据储存所210以及根据第一视频格式211传送至处理器平台202。处理器平台202包含CPU 204、GPU 206、及存储器208。GPU 206可为与CPU分开的图形处理单元,但是装在处理器平台202的同一个母板(motherboard)或卡上。它也可装设成透过总线或类似互连来耦合至CPU的独立单元。替换地,GPU 206可为图形处理电路或紧密耦合于或装设成CPU 204内的机能的机能。转码程序的实现通过由CPU 204与GPU 206中的一个或多个提供的功能的组合以产生呈第二格式213的视频数据,它可转移至资料储存所214及/或通过显示器件212显示,或透过接口链路或网络(例如,互联网)传送至其它的器件。
图3为根据具体实施例更详细地图示图1的视频转码管线。以图3的具体实施例而言,视频位流的编码是用熵编码法(entropy coding)。熵编码法为特殊形式的无损数据压缩,其涉及用连续长度编码(RLE)算法把影像组件排列成“Z字状(zigzag)”顺序,该算法聚集类似的频率,插入长度编码零(length coding zeros),然后对于其余的部分使用霍夫曼编码法(Huffman coding)。霍夫曼编码法一般指的是用可变长度代码表来编码来源符号(例如,文件中的字母),在此已基于来源符号各个可能值的估计出现机率用特定的方式来导出该可变长度代码表。
在系统300中,经编码的位流302用熵解码器304解码。该解码程序涉及许多可变长度解码步骤,包含输出310的反转离散余弦转换(iDCT)306、反量化(dequantization)、再正规化(renormalization)等等。在一具体实施例中,对于由重建步骤310产生的参考框架(reference frame)312执行动态估计程序(motion estimation process)308。然后,以视频缩放器程序316缩放经解码的视频框架314。然后,通过如区块320至324所示的编码程序,将经缩放的视频框架318编码成第二格式。首先,预处理320该视频框架,然后输入至动态预测引擎(motion estimation engine)322。然后,MB编码程序(MB coding process)324产生第二格式的位流328,以及回馈给动态预测引擎322的参考框架326。在一具体实施例中,图3中以区块320至324图示的一个或多个编码程序用美国专利第12/189,060号所述的编码器程序实现,该文献全部并入本文作为参考。
如图3所示,转码管线中的第一步骤是解码已编码成特定数字格式的视频位流102。根据具体实施例,该解码程序利用由GPU 206与CPU 204提供的资源以优化处理产量以及其它步骤的执行,例如也可能使用CPU资源的缩放或混色。
根据具体实施例,用有CPU与GPU处理器两者的处理平台102,有三种不同的方法以解码视频位流102。取决于原始位流102的编码格式,及其它的相关转码程序,选择这三种解码方法中的一个用于特定的输入位流。
在第一方法中,单独使用CPU 204来执行与解码功能104有关的所有步骤。通常这只用软件实现,其中,GPU 206随后用来执行缩放106及编码功能。该CPU解码器方法也可被称为软件解码器。
在第二方法中,解码程序中有部分在CPU上执行,其余是在GPU上执行。这是软件加上图形芯片的解决方案,其包括GPU可编程解码器系统。在此方法中,在CPU上执行的解码包含到达熵解码步骤304的解码步骤。该熵解码步骤及视需要的缩放步骤316均在GPU上执行。
在第三方法中,用在GPU之中的专属硬件解码器电路(GPU硬件解码器)来解码。解码是用硬件/可编程视频处理器来执行以通过熵解码步骤304来解码位流。该GPU硬件解码器可实现于有具特定指令的专属硬件的可编程处理芯片,其经设计成实现一个或多个编解码器(codec)的某些技术规格。在一具体实施例中,该GPU硬件解码器经实现成为GPU硬件的UVD(通用视频解码器)部分,且经配置成支持H.264及VC-1视频编解码标准的硬件解码,或其它编解码器。一般而言,该UVD几乎全部在硬件中处理H.264/AVC及VC-1视频编解码器的解码。该UVD对于VC-1与H.264几乎卸下需要最少主机(CPU)注意的所有的视频-解码器程序。除了处理VLC/CAVLC/CABAC、频率变换、像素预测及环内去块滤波(inloop deblocking)的功能以外,该UVD也包含先进的视频处理后区块。来自UVD的各种处理后操作可包含去噪(denoising)、反交错(de-interlacing)、缩放/调整大小,及类似操作。通过用可编程GPU着色器执行逆熵(可变长度解码)以完成解码操作的其余部分的处理电路的任何适当组合,可实现该硬件/可编程视频处理器(例如,UVD)。
以本说明的目的而言,“H.264”指也被称作MPEG-4第10部(Part10)或MPEG-4AVC(先进视频编码)的视频压缩标准。H.264为由ITU-T视频编码专家组(VCEG)与ISO/IEC动画专家组(MPEG)一起开发的区块取向以动态估计为基础的编解码器中的一个。
在一具体实施例中,该UVD的解码阶段304-314经配置成允许由GPU 206拷贝经解码的位流以及进入CPU 204。这使得CPU在该CPU中执行编码步骤318至324。以此具体实施例而言,视频缩放器316的输出输出至CPU存储器208。这使得系统在GPU与CPU之间分担处理负荷,因为必须使数据的副本可被GPU与CPU取得。使用UVD硬件的编码程序使得可以高速做出副本供CPU使用。这允许GPU与CPU个别保持影像的副本。以此方式由GPU与CPU完成的任何分担式处理涉及共享某些信息,而不是在这两个单元之间传输完整的影像。这大幅减少CPU/GPU共享操作对于输入视频位流所要求的带宽负担。
图3的缩放器316实作成可取得输入影像及根据定义比例来调整大小的任何适当缩放器程序或电路。一般而言,影像缩放包括改变视频的图片大小(picture size),这也被称为转换大小(transsizing)。该缩放步骤为视需要,在输出分辨率与媒体分辨率不同时也可使用。该缩放器可用来调整影像以便在不同类型的器件之间重放。例如,高清晰度(HD)电视传输通常有1280x720像素至1920x1080像素的大小。不过,数字电影(电影院的投影)及数字中间片(digital intermediate,为好莱坞制作工作室内部所用的的格式)的清晰度可高达约3000x4000像素。可实现该缩放器程序成为CPU缩放器或GPU缩放器,它可为硬件缩放器或可编程像素着色器。
对于实现解码的第二方法的具体实施例,亦即,在CPU及GPU两者上执行解码的软件加图形芯片解决方案,通过使用由微软公司定义的DirectX视频加速(DXVA)接口可实现两种可能的变体。DXVA为API(应用程序接口)技术规格,其允许视频解码的硬件加速以及指定解码器如何存取在GPU上的部分。它允许解码器卸载一些(例如,最后两条或三条)解码管线阶级(decode pipeline stage)给GPU,然后资料在GPU上呈现以及备妥显示。该管线允许卸载某些CPU密集型操作(例如,iDCT、动态补偿、反交错及颜色修正)给GPU。
DXVA的工作结合系统的视频卡所用的视频渲染模型(video rendering model)。DXVA被软件视频解码器用来定义编解码器专用管线用于编解码器的硬件加速式解码及渲染。该管线在用来剖析媒体流及转换成DXVA兼容结构的CPU开始。DXVA指定可硬件加速的一组操作以及图形驱动器可实现加速操作的器件驱动器接口(DDI)。如果编解码器需要任一受支持操作,它可使用该接口来存取该操作的硬件加速式实作。经解码的视频交给硬件视频渲染器,在此于渲染给器件之前做进一步的后处理。DXVA指定动态补偿308DDI,其指定iDCT操作306、霍夫曼编码、颜色修正、动态补偿、半透明混色(alpha blending)、逆向量化颜色空间转换及框架率转换操作等等的接口。
一般而言,DXVA API用于与微软窗口兼容的处理平台。对于使用其它操作系统的处理平台,可使用类似DXVA的接口。该接口可为卸载某些解码管线阶级给GPU的任何API。对于与Linux兼容的处理平台,例如通过X-视频动态补偿(XvMC)API可实现该API。XvMC为X窗口系统的X视频扩展指令集(Xv)的延伸,以及允许视频程序卸载一部分的视频解码程序给GPU。
对于CPU执行熵解码程序304而GPU向前执行iDCT 306及动态补偿308步骤的具体实施例,该DXVA API指示由解码器304传送至iDCT306与动态补偿308程序中的每一个的信息。有各种不同版本的DXVA标准可用,例如DXVA 1.0及2.0。对于UVD向前执行熵解码程序304的步骤的具体实施例,可使用DXVA 2.0API的技术规格。
解码管线的具体实施例可应用于处理两条或更多条位流的视频转码及编辑应用系统。该解码程序有不同的选择可用,即只有CPU、CPU加GPU、UVD、或用DXVA 1.0或2.0API协助可使用多条位流(例如,每条可代表不同的场景)的视频编辑应用系统。
图4为根据具体实施例图示实现视频解码程序的视频编辑管线。以系统400而言,有两条位流402及408各自输入视频解码程序404及412。然后,经解码的串流各自在视频缩放器程序406及414中缩放。如果位流402及408为待混色的影像或场景,则经解码及缩放的数据输入到视频混色及效果程序(video blend and effects process)416。然后,将经混色的影像数据送到显示器422,或者用视频编码器程序418编码成不同的格式以在位流420产生第二格式的数据。视需要的显示器允许预览编码之前的输出位流420。两个输入位流402及408可为待一起混色的两种视频场景,例如背景及前景影像,或者它们可为一场景(位流#1)过渡至另一场景(位流#2)的重迭的实例。
在图2的视频编辑管线中,视频解码程序404及412各自实现上述视频解码方法中的一种。该视频解码程序可实现相同的解码方法(例如,但使用UVD)或者它们可实现不同的解码方法。例如,其中一个解码程序(例如,视频解码404)可使用基于UVD的解码程序,而另一个解码程序利用只用CPU的解码程序或利用基于CPU与GPU的解码程序。这可确保UVD或其它解码程序不会因一次有太多输入位流而过载。
虽然图4图示两条位流,应注意,取决于系统的要求及限制,任意多条位流是有可能的。一般而言,输入视频位流的格式会指示那一种编码程序404或416用于输入位流的解码程序。在整体的视频编辑应用系统中,视频编辑器可基于输入位流格式或格式来重新配置管线400,甚至在可将单一位流编码成不只一种格式的情形下。
混色程序416可使用可用于GPU的任何内建混色性能。例如,该GPU可包含允许使用常驻程序(resident process)来混合纹理的纹理处理性能。视频混色及效果程序416内所提供的视频效果可包含由习知视频编辑器提供的一些商用效果,例如由左至右、由上到下或其它过渡效果的混色。
视频解码方法的具体实施例可应用于标准预测MPEG方案(standard predictiveMPEG scheme)。在处理视频流时,MPEG编码器产生三种类型的码化框架。第一种框架称作“I”框架或框内码化框架(intra-coded frame)。这为最简单的框架且为静止影像的码化表示法。通常对于I框架不做处理;其目的是要提供解码器用以解码下一组框架的起点。第二种框架称作“P”框架或预测框架(predicted frame)。解码时,P框架由内含于前几个P框架或I框架的信息产生。最常见的第三种框架为“B”框架或双向框架(bi-directionalframe)。B框架向前及向后预测而且由由最后及下一个P或I框架构成。P框架与B框架为框架间码化框架(inter-coded frame)。编解码器的编码器可编码有以下序列的串流:IPBB…等。在数字视频传输中,常常不使用B框架。就此情形而言,该序列可只由I框架其次是一些P框架组成。对于此具体实施例,初始I框架的编码没有损失,以及将所有后续的P框架编码成有些片段是无损压缩而有些片段没有变化。
在MPEG及类似系统中,解码框架以解码顺序产生框架,这不同于它们的显示顺序。就此情形而言,图4的视频编辑器管线可包含一个或多个框架池(frame pool)以利在解码程序之后正确地排序框架,图5为根据一具体实施例图示包含供视频数据解码用的框架汇集的视频编辑管线。如系统500所示,视频缩放器502及506的输出是输入各自的框架池504及508。该框架池储备框架以及以正确的显示顺序产生输出流。因此,如图5所示,框架会以解码顺序输入框架池504及508,以及以正确的显示顺序输出给任何进一步的混色及效果处理510。替换地,这两个串流可以解码顺序混色,但是只有这两个串流有完全相同的解码顺序和正确的同步时,这往往并非如此。因此,在汇集框架后混色往往比较有利。
随后,通过框架率逻辑程序512可编码输出流或送到视需要的显示器514。框架率逻辑程序512使框架处理性能适应显示速率性能,亦即,显示器的刷新速率,以优化系统的处理及显示功能。
图6为根据具体实施例图示用于包含视频及音频内容的内容的完全转码管线。图6的具体实施例图示单一管线,然而取决于有多少位流及解码器程序可用,有可能为多条信道。在系统600中,输入音频/视频位流602输入至分开音频内容与视频内容的去复用器电路(demultiplexer circuit)604。视频内容送到视频解码程序606,然后在视频缩放器608中缩放。然后,用视频编码器610以第二格式编码经编码及缩放的视频数据。然后,复用(multiplex)612经编码的视频数据与音频数据以产生输出位流614。类似于视频数据,通过去复用器604由原始位流602分离出来的音频数据616本身可被转码,或可越过以便在没有任何改变下与转码后的视频数据重新组合。数字音频转码可用来减少数据的取样,改变编码方案(例如,杜比格式),使有效储存或传输的质量降级,及其它效果。对于转码视频数据的视频解码功能606,可使用上述解码方法中的任一个。
转码程序的具体实施例允许使用硬件及软件结构的许多组合来选择解码。图7为根据一具体实施例图示使用多个解码程序来转码数字视频数据的整体方法的流程图。图7的方法在区块702开始,转码器管线接收已用第一编码方案格式化的输入位流。单信道转码器管线系接收及转码单一位流,不过,可提供任何实际的信道数以转码多条位流。在区块704,根据可能解码方案中的一个解码输入位流。在区块706a,第一解码方案使用UVD GPU硬件系统;在区块706b,第二解码方案通过使用API(例如,DXVA,XvMC,或类似API)的GPU可编程解码器来使用GPU及CPU的资源;以及,在区块706c,第三解码方案只用一个或多个CPU核心而没有任何GPU支持。然后,在区块708,用视频缩放器缩放经解码的位流。然后,在区块710,将经解码及缩放的解码位流编码成第二格式。在区块712a,可用多个GPU核心,或在区块712b,可用多个CPU核心,来执行编码程序。
在一具体实施例中,解码方案706a至706c的选择可由使用者明确地选择,或自动由在处理系统中执行的程序选择。该自动程序可基于可利用的资源来选择解码程序。例如,如果UVD可利用,该自动程序可指示UVD单独用来解码。也可能有定义默认与一个或多个备用方法,例如在默认情形下用UVD来解码直到它没空,在这种情形下,只用CPU来解码,诸如此类。取决于解码方案,也可基于基于自动程序来选择缩放器程序。例如,如果UVD用来解码,它也应该用来缩放,以及如果CPU用来解码,它也应该用来缩放。
转码系统及方法的具体实施例结合GPU于编码的应用与GPU于解码及缩放的应用。对于MPEG-2,该系统使得GPU硬件的UVD部分可用来解码以H.2,64或VC-1编码的视频数据,以及致能基于硬件的iDCT与动态补偿功能。它也使得现有标准微软API(DXVA 1.0与2.0)可用来辅助解码操作。缩放视频(例如,由一分辨率调整大小至另一分辨率)的中间及视需要步骤也使用GPU的机能。转码管线也增加解码多条串流及执行混色或特效操作的性能,给例如视频编辑。该操作也可使用GPU资源。
具体实作转码管线的图2的处理平台实现于能够产生、重放或以其它方式处理数字视频数据的任何类型计算器件。此类计算器件可为计算机或移动计算或通讯器件,例如笔记计算机、个人数字助理(PDA)、移动电话、游戏机、或任何种类相似、有充分处理、通讯、及控制或AV(视听)重放性能的行动计算器件。该计算器件可直接或间接通过可包含互联网、广域网(WAN)、局域网(LAN)、或彼等之任何组合的一个或多个网络耦合至其它的计算器件、资源或数据储存所。
具体实施例均可应用于所有的转码,在此将输入格式解码成原始像素,然后以不同的分辨率或相同的分辨率及不同的位率(bitrate)或相同的位率或质量设定,在不同或相同的编解码器重新编码。该转码操作可为压缩域转码(compressed domaintranscoding),此为压缩DVD视频的程序(例如,DVD备用程序)所用的方法。
尽管描述于本文的具体实施例是针对转码应用,应注意,该等具体实施例也可应用于其它的应用,例如码率转换(transrating)。例如,较低位率码率转换为与转码类似的程序,其中,将文件码化成较低的位率而不改变视频格式;这可包含取样率转换,然而可使用相同的取样率但是较高的压缩。码率转换用来把给定的媒体装进较小的储存空间,例如安装DVD内容于视频CD上,或透过带宽较低的信道来传送内容。
尽管已参考包含GPU器件或视觉处理单元(VPU)(其处理系统的专属或整合图形渲染器件)的图形系统来说明具体实施例,应注意,该等具体实施例也可用于许多其它类型以并列方式运用的视频生产引擎。可以离散视频产生器的方式实现此类视频生产引擎,例如数字投影机,或可为以个别IC(集成电路)器件的形式提供的电子电路或是基于视频的计算机系统的附加卡。
在一具体实施例中,系统的GPU/CPU处理平台包含由下列各物组成的群选出的计算器件:个人计算机、工作站、手持计算器件、数字电视、媒体重放器件、智能通讯器件、及游戏机、或任何其它类似的处理器件。
揭示于本文的具体实施例包括用于把视频流从第一数字格式转码成第二数字格式的设备,包括:解码器,其接收经编码成该第一数字格式的该视频流以及产生经解码的视频流,其中,该解码器利用图形处理单元(GPU)电路以及通过该GPU电路与GPU硬件解码器、GPU可编程解码器及中央处理单元(CPU)软件解码器中的至少一个的组合来实现;缩放器,其改变该经解码的视频流的图片大小以产生经解码及缩放的视频流,其中,该缩放器通过CPU缩放器或GPU缩放器中的一个来实现;以及,编码器,其接收该经解码及缩放的视频流以及产生经编码成该第二数字格式的输出流。
在具体实施例中,该视频流由包括含有至少一个GPU及一个CPU的处理器平台的转码管线系统接收。
在具体实施例中,该GPU硬件解码器包括硬件/可编程视频处理器,其中,解码操作的第一部分由GPU硬件执行而该解码操作的第二部分由在该GPU内的可编程GPU着色器执行。
在具体实施例中,该GPU可编程解码器包含允许通过卸载由该CPU执行的某些操作给该GPU执行来硬件加速该解码器的应用程序接口(API)。
在具体实施例中,呈该第一数字格式的该视频流包括多个视频位流以及该解码器组件包括多个解码器组件,其中,该多个视频位流中的每一视频位流输入至各自的解码器组件。
具体实施例进一步包括视频混色组件,其根据确定混色效果将该多个视频位流组合成经混色的输出流。
在具体实施例中,该多个视频位流包括MPEG视频数据,该设备进一步包括多个框架池,该框架池将MPEG框架的解码顺序重新排序成显示顺序。
在具体实施例中,该输出流传送至显示器件。
具体实施例进一步包括,框架率逻辑组件,其使该经混色的输出流的框架率与该显示器件的刷新速率匹配。
在具体实施例中,该经解码及缩放的视频流传送至耦合至该CPU的存储器器件。
在具体实施例中,该经解码及缩放的视频流的第一副本可用于该CPU,以及该经解码及缩放的视频流的第二副本可用于该GPU。
在具体实施例中,该视频流包含一音频信道,该设备进一步包括:去复用器,其于产生该经解码的视频流之前由包含该视频流的视频框架分离出该音频信道;以及,复用器(multiplexer),其将该音频信道加回到经编码成该第二数字格式的该输出流以及在该编码器中编码。
在具体实施例中,该音频信道在加回到该输出流之前把它从第一音频格式转码成第二音频格式。
描述于本文的具体实施例进一步包含一种把视频流从第一数字格式转码成第二数字格式的方法,其包括下列步骤:由数据储存所接收经编码成该第一数字格式的该视频流;解码收到的该视频流以产生经解码的视频流,其中,该解码方法通过图形处理单元(GPU)资源与中央处理单元(CPU)资源的组合来实现,该解码方法利用与GPU硬件解码器、GPU可编程解码器及CPU软件解码器中的至少一个结合的该GPU资源;缩放该经解码的视频流的图片大小以产生经解码及缩放的视频流,其中,该缩放器通过CPU缩放器或GPU缩放器中的一个来实现;以及,编码该经解码及缩放的视频流以产生经编码成该第二数字格式的输出流。
具体实施例进一步包括下列步骤:使用该GPU硬件解码器、该GPU可编程解码器或该CPU软件解码器中的一个来选择适当的解码方法。
在具体实施例中,该选择步骤由使用者选择、自动程序、或由该第一数字格式决定中的一种来完成。
具体实施例进一步包括下列步骤:传送该经解码及缩放的视频流传送至与在处理平台上的CPU耦合的存储器器件,该处理平台包含该CPU与GPU,使得该经解码及缩放的视频流的第一副本可用于该CPU而该经解码及缩放之视频流的第二副本可用于该GPU。
在具体实施例中,该GPU硬件解码器包括硬件/可编程视频处理器,其中,解码操作的第一部分由GPU硬件执行而该解码操作的第二部分由在该GPU内的可编程GPU着色器执行,以及,其中,该GPU可编程解码器包含允许通过卸载由该CPU执行的某些操作给该GPU执行来硬件加速该解码器的应用程序接口(API)。
在具体实施例中,呈该第一数字格式的该视频流包括多个视频位流以及该解码器组件包括多个解码器组件,其中,该多个视频位流中的每一视频位流输入至各自的解码器组件,该方法进一步包括下列步骤:根据确定混色效果,将该多个视频位流混合成经混色的输出流。
在具体实施例中,该多个视频位流包括MPEG视频数据,该方法进一步包括下列步骤:汇集该多个框架于框架池以将MPEG框架的解码顺序重新排序成显示顺序;以及,传送该输出流至显示器件。
具体实施例进一步包括使该经混色的输出流的框架率与该显示器件的刷新速率匹配。
描述于本文的具体实施例进一步包含一种视频处理系统,包括:中央处理单元(CPU);耦合至该CPU的图形处理单元(GPU);以及,把视频流从第一数字格式转码成第二数字格式的视频转码器管线,该转码器管线包括:解码器,其接收经编码成该第一数字格式的该视频流以及产生经解码的视频流,其中,该解码器利用图形处理单元(GPU)电路以及通过该GPU电路与GPU硬件解码器、GPU可编程解码器及中央处理单元(CPU)软件解码器中的至少一个的组合来实现;缩放器,其改变该经解码的视频流的图片大小以产生经解码及缩放的视频流,其中,该缩放器通过CPU缩放器或GPU缩放器中的一个来实现;以及,编码器,其接收该经解码及缩放的视频流以及产生经编码成该第二数字格式的输出流。
在具体实施例中,该GPU硬件解码器包括硬件/可编程视频处理器,其中,解码操作的第一部分由GPU硬件执行而该解码操作的第二部分由在该GPU内的可编程GPU着色器执行。
在具体实施例中,该GPU可编程解码器包含允许通过卸载由该CPU执行的某些操作给该GPU执行来硬件加速该解码器的应用程序接口(API)。
在具体实施例中,使用该GPU硬件解码器、该GPU可编程解码器或该CPU硬件解码器中的一个的适当解码方法通过使用者选择、自动程序或由该第一数字格式决定中的一种来选择。
可将描述于本文的系统的方面实现为程序化成种种电路中的任一种的机能,包括可编程逻辑器件(“PLD”),例如场效可编程栅极阵列(“FPGA”)、可编程阵列逻辑(“PAL”)器件、电气可编程逻辑及存储器器件、标准单元型器件(standard cell-based device),以及特殊应用集成电路。其它可实现方面则包含:存储器器件、有存储器(例如,EEPROM)的微控制器,嵌入微处理器、固件、软件等等。此外,可实作视频转码系统的方面于有基于软件的电路仿真的微处理器、(时序与组合式)离散逻辑、客制器件、模糊(神经)逻辑、量子器件、及上述器件种类的任何混合物。有种种的组件类型可提供下层的器件技术,例如,诸如互补金属氧化物半导体(“CMOS”)之类的金属氧化物半导体场效应晶体管(“MOSFET”)技术,诸如射极耦合逻辑(“ECL”)之类的双极技术,聚合物技术(例如,硅共轭聚合物与金属共轭聚合物-金属结构),混合模拟及数字等等。
也应注意,可用以下各物的任意多种组合来描述揭示于本文的各种功能:硬件、固件及/或基于它们的行为、缓存器传送、逻辑组件及/或其它特性来实作于各种机器可读取或计算机可读取媒体的数据及/或指令。可实作格式化数据及/或指令于其中的计算机可读取媒体包含但不受限于:各种形式的非易失性储存媒体(例如,光学、磁性或半导体储存媒体),以及通过无线、光学或有线信令媒体或彼等的任何组合可用来传输格式化数据及/或指令的载波。由载波传送格式数据及/或指令的实施例包含但不受限于:透过互联网及/或其它计算机网络经由一个或多个数据传送协议(例如,HTTP、FTP、SMTP等等)的传送(上传、下载、电子邮件、等等)。
除非上下文另有要求,在所有的说明和权利要求方面,字词“包括”以及其类似者应理解为内含的意思,而不是唯一或穷尽的意思;亦即,“包含,但是不受限于”的意思。使用单数或复数的字词也各自包含多数或单数。另外,字词“此处”、“在下”、“在上面”、“在下面”及意思相似的字词意指本申请案的全部而不是本申请案的任何特定部分。当字词“或”用来参考两个或更多个项目的列表时,该字词涵盖以下所有字词的诠释:列表中的任何项目、列表中的所有项目以及列表中的任何项目组合。
以上视频转码系统的图示具体实施例的说明并非欲穷尽说明或局限具体实施例为所揭示的精确形式或指令。所属领域的技术人员明白,尽管为求图解说明而在此举例描述图形处理单元或ASIC的程序的特定具体实施例,然而在所揭示的方法及结构的范畴内仍可能有许多等价的修改。
可组合上述各种具体实施例的组件及动作以提供其它的具体实施例。鉴于以上详细说明,对于所揭示的系统可做出以上及其它的改变。
一般而言,以下权利要求所用的术语不应被解释成要限制所揭示的方法为揭示于本专利说明书及权利要求的特定具体实施例,而应被解释成要涵盖在该权利要求下操作的所有操作或程序。因此,所揭示的结构及方法不受限于本揭示内容,反而提及方法的范畴应该全部由该权利要求决定。
尽管下文以一些专利申请项的形式提出揭示具体实施例的一些方面,本发明人预期方法的各方面仍有任意多个的专利申请项形式。例如,尽管只叙述一个方面被实作成机器可读取媒体,然而其它的方面同样可实作成机器可读取媒体。因此,本发明人保留在提出本申请案后追加附加权利要求的权利,以追求其它方面的附加权利要求。

Claims (17)

1.一种用于把视频流从第一数字格式转码成第二数字格式的设备,包括:
解码器,其接收经编码成该第一数字格式的该视频流以及产生经解码的视频流,其中,该第一数字格式的该解码器包括多个视频位流,该解码器利用与GPU硬件解码器、GPU可编程解码器及CPU软件解码器中的至少一个结合的GPU资源,并且卸载解码管线阶级的至少一部分至GPU;
缩放器,其改变该经解码的视频流的图片大小以产生经解码及缩放的视频流,其中,该缩放器通过CPU缩放器或GPU缩放器中的一个来实现,其中该经解码及缩放的视频流经输出至该CPU及该GPU两者,其中该CPU及该GPU处理该视频流;
编码器,其接收该经解码及缩放的视频流以及产生经编码成该第二数字格式的输出流;
视频混色组件,其根据确定混色效果将该多个视频位流组合成经混色的输出流;以及
框架率逻辑组件,其使该经混色的输出流的框架率与显示器件的刷新速率匹配。
2.如权利要求1所述的设备,其中,该视频流由包括处理器平台的转码管线系统接收,且该处理器平台含有至少一个GPU及一个CPU。
3.如权利要求2所述的设备,其中,该GPU硬件解码器包括硬件/可编程视频处理器,其中,解码操作的第一部分由GPU硬件执行而该解码操作的第二部分由在该GPU内的可编程GPU着色器执行。
4.如权利要求2所述的设备,其中,该GPU可编程解码器包含允许通过卸载由该CPU执行的某些操作给该GPU执行来硬件加速该解码器的API。
5.如权利要求1所述的设备,其中,该解码器包括多个解码器组件,其中,该多个视频位流中的每一视频位流输入至各自的解码器组件以用于解码。
6.如权利要求5所述的设备,其中,该多个视频位流包括MPEG视频数据,该设备进一步包括多个框架池,该框架池将MPEG框架的解码顺序重新排序成显示顺序。
7.如权利要求6所述的设备,其中,该输出流传送至该显示器件。
8.如权利要求1所述的设备,其中,该经解码及缩放的视频流传送至耦合至该CPU的存储器器件。
9.如权利要求1所述的设备,其中,该经解码及缩放的视频流的第一副本可用于该CPU,以及该经解码及缩放的视频流的第二副本可用于该GPU。
10.如权利要求1所述的设备,其中,该视频流包含音频信道,该设备进一步包括:
去复用器,其在产生该经解码的视频流之前由包括该视频流的视频框架分离出该音频信道;以及
复用器,其将该音频信道加回到经编码成该第二数字格式的该输出流以及在该编码器中编码。
11.如权利要求10所述的设备,其中,该音频信道在加回到该输出流之前把它从第一音频格式转码成第二音频格式。
12.一种把视频流从第一数字格式转码成第二数字格式的方法,其包括下列步骤:
通过解码器,接收经编码成该第一数字格式的该视频流以及产生经解码的视频流,其中,该第一数字格式的该视频流包括多个视频位流,该解码器利用与GPU硬件解码器、GPU可编程解码器及CPU软件解码器中的至少一个结合的GPU资源,并且卸载解码管线阶级的至少一部分至GPU;
通过缩放器,改变该经解码的视频流的图片大小以产生经解码及缩放的视频流,其中,该缩放器通过CPU缩放器或GPU缩放器中的一个来实现,其中该经解码及缩放的视频流经输出至该CPU及该GPU两者,其中该CPU及该GPU处理该视频流;通过编码器,接收该经解码及缩放的视频流以及产生经编码成该第二数字格式的输出流;
通过视频混色组件,根据确定混色效果将该多个视频位流组合成经混色的输出流;以及
通过框架率逻辑组件,使该经混色的输出流的框架率与显示器件的刷新速率匹配。
13.如权利要求12所述的方法,其中,该视频流由包括处理器平台的转码管线系统接收,且该处理器平台含有至少一个GPU及一个CPU。
14.如权利要求12所述的方法,其中,该经解码及缩放的视频流传送至耦合至该CPU的存储器器件。
15.如权利要求12所述的方法,其中,该经解码及缩放的视频流的第一副本可用于该CPU,以及该经解码及缩放的视频流的第二副本可用于该GPU。
16.如权利要求12所述的方法,其中,该视频流包含音频信道,该方法进一步包括:
通过去复用器,其在产生该经解码的视频流之前由包括该视频流的视频框架分离出该音频信道;以及
通过复用器,其将该音频信道加回到经编码成该第二数字格式的该输出流以及在该编码器中编码。
17.如权利要求16所述的方法,其中,该音频信道在加回到该输出流之前把它从第一音频格式转码成第二音频格式。
CN201610917719.0A 2008-11-04 2009-11-04 以gpu加速的软件视频转码器 Active CN106973298B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/264,892 US8233527B2 (en) 2007-05-11 2008-11-04 Software video transcoder with GPU acceleration
US12/264,892 2008-11-04
CN200980153781.5A CN102273205B (zh) 2008-11-04 2009-11-04 以gpu加速的软件视频转码器

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN200980153781.5A Division CN102273205B (zh) 2008-11-04 2009-11-04 以gpu加速的软件视频转码器

Publications (2)

Publication Number Publication Date
CN106973298A CN106973298A (zh) 2017-07-21
CN106973298B true CN106973298B (zh) 2019-12-31

Family

ID=42153534

Family Applications (2)

Application Number Title Priority Date Filing Date
CN200980153781.5A Active CN102273205B (zh) 2008-11-04 2009-11-04 以gpu加速的软件视频转码器
CN201610917719.0A Active CN106973298B (zh) 2008-11-04 2009-11-04 以gpu加速的软件视频转码器

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN200980153781.5A Active CN102273205B (zh) 2008-11-04 2009-11-04 以gpu加速的软件视频转码器

Country Status (6)

Country Link
US (2) US8233527B2 (zh)
EP (1) EP2353295A2 (zh)
JP (1) JP2012508485A (zh)
KR (3) KR20160003342A (zh)
CN (2) CN102273205B (zh)
WO (1) WO2010054011A2 (zh)

Families Citing this family (80)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8488951B2 (en) * 2009-07-09 2013-07-16 Nvidia Corporation Multimedia framework to provide ultra-low power multimedia playback
US8503539B2 (en) * 2010-02-26 2013-08-06 Bao Tran High definition personal computer (PC) cam
KR101484101B1 (ko) * 2010-03-08 2015-01-16 (주)테크노니아 동영상 변환 장치
US8830300B2 (en) * 2010-03-11 2014-09-09 Dolby Laboratories Licensing Corporation Multiscalar stereo video format conversion
US8768078B2 (en) 2010-04-07 2014-07-01 Apple Inc. Intelligent media decoding
US20110280312A1 (en) * 2010-05-13 2011-11-17 Texas Instruments Incorporated Video processing device with memory optimization in image post-processing
TWI495330B (zh) * 2010-08-02 2015-08-01 Ncomputing Inc 有效地串流數位視訊的系統及方法
CN102377997A (zh) * 2010-08-05 2012-03-14 正文科技股份有限公司 可扩充编码转换能力的数字内容提供装置
US8724696B2 (en) * 2010-09-23 2014-05-13 Vmware, Inc. System and method for transmitting video and user interface elements
US8681162B2 (en) * 2010-10-15 2014-03-25 Via Technologies, Inc. Systems and methods for video processing
US8566647B2 (en) * 2010-12-20 2013-10-22 Microsoft Corporation Debugger presentation of parallel application threads
US20120216048A1 (en) * 2011-02-17 2012-08-23 Nikos Kaburlasos System, method and computer program product for application-agnostic audio acceleration
US20130106873A1 (en) * 2011-10-28 2013-05-02 Microsoft Corporation Pluggable media source and sink
US9391832B1 (en) * 2011-12-05 2016-07-12 Menlo Security, Inc. Secure surrogate cloud browsing
US9386267B1 (en) * 2012-02-14 2016-07-05 Arris Enterprises, Inc. Cooperative transcoding to multiple streams
CN103260021B (zh) * 2012-02-21 2016-08-03 腾讯科技(深圳)有限公司 一种视频解码方法和装置
US8996762B2 (en) 2012-02-28 2015-03-31 Qualcomm Incorporated Customized buffering at sink device in wireless display system based on application awareness
US9246741B2 (en) * 2012-04-11 2016-01-26 Google Inc. Scalable, live transcoding with support for adaptive streaming and failover
CN103379363B (zh) * 2012-04-19 2018-09-11 腾讯科技(深圳)有限公司 视频处理方法及装置、移动终端和系统
US9307258B2 (en) * 2012-10-30 2016-04-05 Broadcom Corporation Parallel transcoding
US10699361B2 (en) * 2012-11-21 2020-06-30 Ati Technologies Ulc Method and apparatus for enhanced processing of three dimensional (3D) graphics data
US20140153635A1 (en) * 2012-12-05 2014-06-05 Nvidia Corporation Method, computer program product, and system for multi-threaded video encoding
US20140192207A1 (en) * 2013-01-07 2014-07-10 Jinsong Ji Method and apparatus to measure video characteristics locally or remotely
CN103020320B (zh) * 2013-01-11 2016-01-13 西安交通大学 一种基于动态搜索的运行时gpu显存级数据复用优化方法
US9740886B2 (en) * 2013-03-15 2017-08-22 Sony Interactive Entertainment Inc. Enhanced security for hardware decoder accelerator
US9232177B2 (en) 2013-07-12 2016-01-05 Intel Corporation Video chat data processing
JP2015041790A (ja) * 2013-08-20 2015-03-02 日本電気株式会社 トランスコード装置およびトランスコード方法
CN103458248A (zh) * 2013-09-11 2013-12-18 昆山奥德鲁自动化技术有限公司 一种基于cuda的视频转码系统
CN103491379A (zh) * 2013-09-25 2014-01-01 浙江宇视科技有限公司 一种提升智能分析性能的方法和装置
US9336558B2 (en) * 2013-09-27 2016-05-10 Apple Inc. Wavefront encoding with parallel bit stream encoding
CN103702172A (zh) * 2013-12-13 2014-04-02 乐视网信息技术(北京)股份有限公司 对音视频进行杜比转码的方法和系统
CN104853193B (zh) * 2014-02-19 2019-06-07 腾讯科技(北京)有限公司 视频压缩方法、装置及电子设备
DE102014107378A1 (de) * 2014-05-26 2015-11-26 Petter.Letter Gmbh Vorrichtung und Verfahren zur Darstellung und Bearbeitung von Filmen mittels Mobiltelefonen
WO2016036285A1 (en) * 2014-09-02 2016-03-10 Telefonaktiebolaget L M Ericsson (Publ) Video stream encoding using a central processing unit and a graphical processing unit
CN104363402B (zh) * 2014-10-27 2017-11-24 同辉佳视(北京)信息技术股份有限公司 一种快速显示视频的方法及设备
CN104754366A (zh) * 2015-03-03 2015-07-01 腾讯科技(深圳)有限公司 音视频文件直播方法、装置和系统
CN104980752B (zh) * 2015-06-11 2018-10-02 武汉大千信息技术有限公司 利用cpu和gpu实现多路自适应并行转码的方法及系统
US9883194B2 (en) 2015-06-15 2018-01-30 Microsoft Technology Licensing, Llc Multiple bit rate video decoding
US9832476B2 (en) 2015-06-15 2017-11-28 Microsoft Technology Licensing, Llc Multiple bit rate video decoding
JP6632638B2 (ja) * 2015-06-23 2020-01-22 テレフオンアクチーボラゲット エルエム エリクソン(パブル) トランスコーディングのための方法および構成
US20170026648A1 (en) * 2015-07-24 2017-01-26 Mediatek Inc. Hybrid video decoder and associated hybrid video decoding method
US10445850B2 (en) * 2015-08-26 2019-10-15 Intel Corporation Technologies for offloading network packet processing to a GPU
US10205763B2 (en) * 2015-08-26 2019-02-12 Zhan Ma Method and apparatus for the single input multiple output (SIMO) media adaptation
CN105228000B (zh) * 2015-09-25 2018-10-30 网宿科技股份有限公司 一种基于gpu的完全硬件转码的方法和系统
US10447751B2 (en) 2015-09-28 2019-10-15 Sony Corporation Parallel transcoding directly from file identifier
TWI546779B (zh) 2015-11-06 2016-08-21 財團法人工業技術研究院 串流資料的編碼排程方法、裝置與電腦可讀取媒體
US9959661B2 (en) 2015-12-02 2018-05-01 Samsung Electronics Co., Ltd. Method and device for processing graphics data in graphics processing unit
CN105898315A (zh) * 2015-12-07 2016-08-24 乐视云计算有限公司 视频转码方法和装置系统
CN106888400B (zh) * 2015-12-15 2019-05-10 中国电信股份有限公司 一种用于实现转码任务调度的方法和系统
CN105744278A (zh) * 2016-02-16 2016-07-06 福建星网智慧科技股份有限公司 一种基于android系统H264编解码的方法
US10575007B2 (en) 2016-04-12 2020-02-25 Microsoft Technology Licensing, Llc Efficient decoding and rendering of blocks in a graphics pipeline
US10157480B2 (en) 2016-06-24 2018-12-18 Microsoft Technology Licensing, Llc Efficient decoding and rendering of inter-coded blocks in a graphics pipeline
CN106131563A (zh) * 2016-07-28 2016-11-16 武汉斗鱼网络科技有限公司 基于dxva进行硬件解码h264视频流的方法及系统
CN106331852A (zh) * 2016-09-13 2017-01-11 武汉斗鱼网络科技有限公司 一种用于wp手机进行h264硬件解码的方法及系统
US11197010B2 (en) 2016-10-07 2021-12-07 Microsoft Technology Licensing, Llc Browser-based video decoder using multiple CPU threads
CN109196865B (zh) * 2017-03-27 2021-03-30 华为技术有限公司 一种数据处理方法、终端以及存储介质
CN109213593B (zh) * 2017-07-04 2022-05-10 阿里巴巴集团控股有限公司 用于全景视频转码的资源分配方法、装置和设备
CN109005160A (zh) * 2018-07-10 2018-12-14 广州虎牙信息科技有限公司 视频解码方法、装置及计算机可读存储介质、终端
KR102011402B1 (ko) * 2018-08-21 2019-08-16 한밭대학교 산학협력단 쿠다를 사용하여 gpu 리소스를 분배하는 지능형 얼굴 인식과 트래킹 시스템
JP7378035B2 (ja) * 2018-09-12 2023-11-13 パナソニックIpマネジメント株式会社 変換装置、復号装置、変換方法および復号方法
CN111147926B (zh) * 2018-11-02 2022-05-06 杭州海康威视数字技术股份有限公司 一种数据转码方法及装置
GB2579018B (en) * 2018-11-12 2022-12-21 Bae Systems Plc Processing simulator data
US12051341B2 (en) 2018-11-12 2024-07-30 Bae Systems Plc Processing simulator data
EP3651140A1 (en) * 2018-11-12 2020-05-13 BAE SYSTEMS plc Processing simulator data
CN109379627B (zh) * 2018-11-27 2020-12-04 Oppo广东移动通信有限公司 视频处理方法、装置、电子设备以及存储介质
CN113544648B (zh) * 2018-12-14 2024-09-20 芯力能简易股份公司 适于与柔性逻辑单元一起使用的通信接口
CN110298896A (zh) * 2019-06-27 2019-10-01 北京奇艺世纪科技有限公司 图片转码方法、装置及电子设备
CN110418144A (zh) * 2019-08-28 2019-11-05 成都索贝数码科技股份有限公司 一种基于nvidia gpu实现一入多出转码多码率视频文件的方法
CN110766703A (zh) * 2019-10-21 2020-02-07 合肥成方信息技术有限公司 基于GPU的Compute Shader的智能图像识别方法
CN111050179B (zh) * 2019-12-30 2022-04-22 北京奇艺世纪科技有限公司 一种视频转码方法及装置
CN111314699A (zh) * 2020-02-28 2020-06-19 北京奇艺世纪科技有限公司 图像解码方法、装置、电子设备及存储介质
US11611482B1 (en) 2020-06-12 2023-03-21 Menlo Security, Inc. Bandwidth throttling
CN113055681B (zh) * 2021-03-02 2024-02-09 长沙景嘉微电子股份有限公司 视频解码显示方法,装置,电子设备及存储介质
CN113347432B (zh) * 2021-05-27 2023-03-28 深圳万兴软件有限公司 一种视频编解码方法、装置、计算机设备及存储介质
CN116055738B (zh) * 2022-05-30 2023-10-20 荣耀终端有限公司 视频压缩方法及电子设备
CN115546329B (zh) * 2022-12-01 2023-05-16 广东保伦电子股份有限公司 一种音视频硬件加速转码检测方法及系统
WO2024145056A1 (en) * 2022-12-31 2024-07-04 Meta Platforms, Inc. Integrated chiplet-based central processing units with accelerators for video processing
US20240231692A1 (en) * 2023-01-10 2024-07-11 Western Digital Technologies, Inc. Application Tunneling Using a Storage Interface Protocol
CN117475013B (zh) * 2023-12-21 2024-05-31 杭州海康威视数字技术股份有限公司 一种计算机设备和视频数据处理方法
US12062112B1 (en) * 2024-01-25 2024-08-13 Parry Labs, Llc Apparatus for heterogenous processing

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6011868A (en) * 1997-04-04 2000-01-04 Hewlett-Packard Company Bitstream quality analyzer
US6337710B1 (en) * 1997-06-12 2002-01-08 Lsi Logic Corporation Graphical video editing system for regeneration of bitstreams
CN1984298A (zh) * 2005-12-14 2007-06-20 辉达公司 芯片组安全卸载引擎
US7257641B1 (en) * 2000-03-30 2007-08-14 Microsoft Corporation Multipoint processing unit

Family Cites Families (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04219859A (ja) * 1990-03-12 1992-08-10 Hewlett Packard Co <Hp> 並列プロセッサに直列命令ストリームデータを分散するハードウェアディストリビュータ
US5329615A (en) * 1990-09-14 1994-07-12 Hughes Aircraft Company Concurrent general purpose and DMA processing in a graphics rendering processor
SE468736B (sv) * 1991-11-15 1993-03-08 Televerket Foerfarande och apparat foer bildkodning med oeverhoppning av bilder och/eller komponenter
US5712664A (en) * 1993-10-14 1998-01-27 Alliance Semiconductor Corporation Shared memory graphics accelerator system
EP0693737A3 (en) * 1994-07-21 1997-01-08 Ibm Method and apparatus for managing tasks in a multiprocessor system
US5546518A (en) * 1995-01-06 1996-08-13 Microsoft Corporation System and method for composing a display frame of multiple layered graphic sprites
US6266072B1 (en) * 1995-04-05 2001-07-24 Hitachi, Ltd Graphics system
US5844569A (en) * 1996-04-25 1998-12-01 Microsoft Corporation Display device interface including support for generalized flipping of surfaces
US6513057B1 (en) 1996-10-28 2003-01-28 Unisys Corporation Heterogeneous symmetric multi-processing system
US5953506A (en) * 1996-12-17 1999-09-14 Adaptive Media Technologies Method and apparatus that provides a scalable media delivery system
US6141020A (en) * 1997-11-12 2000-10-31 S3 Incorporated Opposing directional fill calculators in a graphics processor
US6366704B1 (en) * 1997-12-01 2002-04-02 Sharp Laboratories Of America, Inc. Method and apparatus for a delay-adaptive rate control scheme for the frame layer
US6141023A (en) * 1998-01-30 2000-10-31 Intel Corporation Efficient display flip
US6078339A (en) * 1998-02-10 2000-06-20 Intel Corporation Mutual exclusion of drawing engine execution on a graphics device
US6058143A (en) * 1998-02-20 2000-05-02 Thomson Licensing S.A. Motion vector extrapolation for transcoding video sequences
US6782132B1 (en) * 1998-08-12 2004-08-24 Pixonics, Inc. Video coding and reconstruction apparatus and methods
US6167084A (en) * 1998-08-27 2000-12-26 Motorola, Inc. Dynamic bit allocation for statistical multiplexing of compressed and uncompressed digital video signals
US6636222B1 (en) * 1999-11-09 2003-10-21 Broadcom Corporation Video and graphics system with an MPEG video decoder for concurrent multi-row decoding
WO2000028518A2 (en) * 1998-11-09 2000-05-18 Broadcom Corporation Graphics display system
US6434197B1 (en) * 1999-01-07 2002-08-13 General Instrument Corporation Multi-functional transcoder for compressed bit streams
JP2000222590A (ja) * 1999-01-27 2000-08-11 Nec Corp 画像処理方法及び装置
US6526583B1 (en) * 1999-03-05 2003-02-25 Teralogic, Inc. Interactive set-top box having a unified memory architecture
US6300973B1 (en) * 2000-01-13 2001-10-09 Meir Feder Method and system for multimedia communication control
JP2001251616A (ja) * 2000-03-02 2001-09-14 Media Glue Corp 多重化音響・動画圧縮符号化信号変換方法、装置および変換プログラムを記録した媒体
US6438168B2 (en) * 2000-06-27 2002-08-20 Bamboo Media Casting, Inc. Bandwidth scaling of a compressed video stream
US6842180B1 (en) * 2000-09-20 2005-01-11 Intel Corporation Opportunistic sharing of graphics resources to enhance CPU performance in an integrated microprocessor
US6765966B2 (en) * 2000-12-19 2004-07-20 General Instrument Corporation Methods and apparatus for re-encoding a high definition television signal to create a standard definition television signal
US6933943B2 (en) * 2002-02-27 2005-08-23 Hewlett-Packard Development Company, L.P. Distributed resource architecture and system
US6909432B2 (en) * 2002-02-27 2005-06-21 Hewlett-Packard Development Company, L.P. Centralized scalable resource architecture and system
JP4275358B2 (ja) * 2002-06-11 2009-06-10 株式会社日立製作所 画像情報変換装置およびビットストリーム変換機ならびに画像情報変換送信方法
US7673304B2 (en) * 2003-02-18 2010-03-02 Microsoft Corporation Multithreaded kernel for graphics processing unit
US20130107938A9 (en) * 2003-05-28 2013-05-02 Chad Fogg Method And Apparatus For Scalable Video Decoder Using An Enhancement Stream
US20040266529A1 (en) * 2003-06-30 2004-12-30 Sony Computer Entertainment America Inc. Methods and systems for remote execution of game content and presentation on a wireless portable device
US7139002B2 (en) * 2003-08-01 2006-11-21 Microsoft Corporation Bandwidth-efficient processing of video images
US7015915B1 (en) * 2003-08-12 2006-03-21 Nvidia Corporation Programming multiple chips from a command buffer
JP4403737B2 (ja) * 2003-08-12 2010-01-27 株式会社日立製作所 信号処理装置及びこれを用いた撮像装置
US7511714B1 (en) * 2003-11-10 2009-03-31 Nvidia Corporation Video format conversion using 3D graphics pipeline of a GPU
FI115587B (fi) * 2003-12-03 2005-05-31 Nokia Corp Menetelmä ja laitteisto digitaalisen matriisikuvan alaspäin skaalaamiseksi
US7558428B2 (en) * 2004-09-13 2009-07-07 Microsoft Corporation Accelerated video encoding using a graphics processing unit
US7692683B2 (en) * 2004-10-15 2010-04-06 Lifesize Communications, Inc. Video conferencing system transcoder
US7522167B1 (en) * 2004-12-16 2009-04-21 Nvidia Corporation Coherence of displayed images for split-frame rendering in multi-processor graphics system
TWI267036B (en) * 2005-02-24 2006-11-21 Asustek Comp Inc Method and apparatus for capturing full-screen frames
US7293170B2 (en) * 2005-06-06 2007-11-06 Tranxition Corporation Changing the personality of a device by intercepting requests for personality information
US20070025441A1 (en) * 2005-07-28 2007-02-01 Nokia Corporation Method, module, device and system for rate control provision for video encoders capable of variable bit rate encoding
US20070058713A1 (en) * 2005-09-14 2007-03-15 Microsoft Corporation Arbitrary resolution change downsizing decoder
US7593543B1 (en) * 2005-12-15 2009-09-22 Nvidia Corporation Apparatus, system, and method for tracing distribution of video content with video watermarks
US7929599B2 (en) * 2006-02-24 2011-04-19 Microsoft Corporation Accelerated video encoding
WO2007148355A1 (en) * 2006-06-22 2007-12-27 Stmicroelectronics S.R.L. A method and system for video decoding by means of a graphic pipeline, computer program product therefor
JP2008252445A (ja) * 2007-03-30 2008-10-16 Toshiba Corp 情報処理装置
US8286196B2 (en) 2007-05-03 2012-10-09 Apple Inc. Parallel runtime execution on multiple processors
JP2008299610A (ja) * 2007-05-31 2008-12-11 Toshiba Corp マルチプロセッサ
US9024966B2 (en) * 2007-09-07 2015-05-05 Qualcomm Incorporated Video blending using time-averaged color keys

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6011868A (en) * 1997-04-04 2000-01-04 Hewlett-Packard Company Bitstream quality analyzer
US6337710B1 (en) * 1997-06-12 2002-01-08 Lsi Logic Corporation Graphical video editing system for regeneration of bitstreams
US7257641B1 (en) * 2000-03-30 2007-08-14 Microsoft Corporation Multipoint processing unit
CN1984298A (zh) * 2005-12-14 2007-06-20 辉达公司 芯片组安全卸载引擎

Also Published As

Publication number Publication date
EP2353295A2 (en) 2011-08-10
US20090060032A1 (en) 2009-03-05
KR20170120696A (ko) 2017-10-31
CN106973298A (zh) 2017-07-21
KR20160003342A (ko) 2016-01-08
WO2010054011A2 (en) 2010-05-14
KR20110086843A (ko) 2011-08-01
CN102273205A (zh) 2011-12-07
US8233527B2 (en) 2012-07-31
CN102273205B (zh) 2016-11-16
JP2012508485A (ja) 2012-04-05
US20120243601A1 (en) 2012-09-27
WO2010054011A3 (en) 2011-03-03
US8731046B2 (en) 2014-05-20

Similar Documents

Publication Publication Date Title
CN106973298B (zh) 以gpu加速的软件视频转码器
US8687702B2 (en) Remote transmission and display of video data using standard H.264-based video codecs
US10313695B2 (en) Parallel decode of a progressive JPEG bitstream
CN112073737B (zh) 在直播视频流应用中重新编码预测的图像帧
JP2022520378A (ja) 参照画像リサンプリングのためのシグナリング
CN116614645B (zh) 视频流的编码方法和设备
JP2007166625A (ja) ビデオデータ符号化装置、ビデオデータ符号化方法、ビデオデータ復号化装置およびビデオデータ復号化方法
JP2005532768A (ja) ビデオ・データのイントラ符号化方法及び装置
US7421129B2 (en) Image compression and synthesis for video effects
US9723308B2 (en) Image processing apparatus and image processing method
CN115988171A (zh) 一种视频会议系统及其沉浸式布局方法和装置
US6829303B1 (en) Methods and apparatus for decoding images using dedicated hardware circuitry and a programmable processor
WO2015041652A1 (en) A progressive jpeg bitstream transcoder and decoder
US20110249719A1 (en) Video compression
RU2773642C1 (ru) Сигнализация для передискретизации опорного изображения
RU2782245C1 (ru) Способ поддержки блоков уровня сетевой абстракции (nal) смешанных типов в кодированном изображении
US20240022743A1 (en) Decoding a video stream on a client device
Singh et al. Review of compression techniques
KR100612669B1 (ko) 이동 통신 단말에서 고해상도 jpeg 화상을디스플레이하기 위한 방법과 이를 위한 이동 통신 단말
Dueñas et al. Implementation of enhanced HEVC/H. 265 encoders: Supporting new requirements and functionalities
CN116762343A (zh) 用于注释dash中vvc子画面的方法
Jeon et al. Design of H. 264/AVC-based software decoder for mobile phone
JP2009027536A (ja) 画像処理装置およびそれを用いた撮像装置

Legal Events

Date Code Title Description
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant