CN108833349A - 机会主义的帧高速缓存 - Google Patents

机会主义的帧高速缓存 Download PDF

Info

Publication number
CN108833349A
CN108833349A CN201810444542.6A CN201810444542A CN108833349A CN 108833349 A CN108833349 A CN 108833349A CN 201810444542 A CN201810444542 A CN 201810444542A CN 108833349 A CN108833349 A CN 108833349A
Authority
CN
China
Prior art keywords
frame
preview
code conversion
source
segment
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.)
Granted
Application number
CN201810444542.6A
Other languages
English (en)
Other versions
CN108833349B (zh
Inventor
G·齐齐斯
T-J·王
V·E·圣多明戈
W·D·斯普劳勒
M·W·莫里森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN108833349A publication Critical patent/CN108833349A/zh
Application granted granted Critical
Publication of CN108833349B publication Critical patent/CN108833349B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/02Editing, e.g. varying the order of information signals recorded on, or reproduced from, record carriers
    • G11B27/031Electronic editing of digitised analogue information signals, e.g. audio or video signals
    • G11B27/034Electronic editing of digitised analogue information signals, e.g. audio or video signals on discs
    • 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/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/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Television Signal Processing For Recording (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

本发明涉及机会主义的帧高速缓存。通过对用户感兴趣的输入文件的源帧进行解码并高速缓存来实现增强的、高效的源帧解码以供用户预览。首先标识并解码用于用户预览会话的源帧以增强用户对供审阅的更及时的预览片段的满意度。其他源帧继续在进行中解码以便机会主义地增强当前预览片段并且为附加预览片段和/或输出文件生成作好准备。

Description

机会主义的帧高速缓存
本发明专利申请是申请日为2011年3月31日、申请号为201110087439.9、名称为“机会主义的帧高速缓存”的发明专利申请的分案申请。
技术领域
本发明涉及媒体处理的各种系统和方法,尤其涉及用于启用机会主义的帧高速缓存以便进行媒体处理的系统和方法。
背景技术
用户能够创建或以其他方式访问各种媒体文件,诸如使用摄像机等来生成的视频文件、存储在CD或计算设备的硬盘驱动器上的音频文件等。用户通常期望编辑此处也被称为源文件的这些媒体文件中的一个或多个。例如,用户可能只对媒体文件的一部分感兴趣,诸如视频文件中捕捉宠物戏水的小片段,并且该用户可能期望将该较小的片段变成单独的、唯一的输出文件。作为另一示例,用户可能希望对媒体文件的各部分进行重新排序,诸如更改存储在若干首歌的音频文件中的一首或多首歌的次序。作为又一示例,用户可能希望通过例如将彩色视频文件的一个或多个部分,即各帧或帧集改为黑白来编辑媒体文件。
用户通常希望迅速预览媒体、源、一个或多个文件或其一个或多个部分。为处理用户不感兴趣和/或不太可能关心的源文件部分而耗费的工作花费了用户用于关注各考虑事项的时间并且限制了及时产生向用户输出的预览的能力。
发明内容
提供本发明内容是为了以简化的形式介绍将在以下具体实施方式中进一步描述的一些概念。本发明内容不是要标识要求保护主题的关键或本质特征,也不是要用于帮助确定要求保护主题的范围。
此处所讨论的各实施方式包括用于启用机会主义的帧高速缓存以便进行媒体处理的系统和方法。
在各实施方式中,在输入媒体源文件中的用户没有或尚未指示感兴趣的其他部分之前,处理,即解码和/或解压同一源文件中的用户出于审阅和/或编辑目的而期望预览的部分。在这些实施方式中,能够迅速处理用户请求的预览并且用户无需在该用户能够开始其审阅和编辑工作之前等待处理该源文件中该用户不感兴趣的各部分。
在各实施方式中,可随时间处理源文件中的用户已表示感兴趣的,即请求预览的各部分,以便在没有可感知到的时间延迟的情况下向用户提供逐渐健壮的预览。
在各实施方式中,能够在其中用户请求未关注的时间跨度内处理源文件中的用户未请求预览的各部分并且对将来的预览工作准备就绪。在这些实施方式中,能够及时处理源文件并且能够迅速地且机会主义地适应并促进总体用户工作。
附图说明
现在将参考旨在对本发明进行说明而非限制的具体实施方式和示例的附图来描述这些和其他特征,在附图中:
图1描绘了机会主义的帧高速缓存系统。
图2A-2C示出了用于机会主义的帧高速缓存系统的实施例机会主义的代码转换器组件的实施例逻辑流程。
图3A-3C示出了用于机会主义的帧高速缓存系统的实施例媒体解析器组件的实施例逻辑流程。
图4A-4B示出了用于机会主义的帧高速缓存系统的实施例编码器组件的实施例逻辑流程。
图5A-5C示出了用于机会主义的帧高速缓存系统的实施例合成器组件的实施例逻辑流程。
图6是可处理软件,即程序代码或指令的示例性基本计算设备系统的框图。
具体实施方式
在以下描述中,为解释起见,阐明了众多具体细节以提供对此处所描述的各实施方式的全面理解。然而对于本领域技术人员显然的是,没有这些具体细节也可实践各实施方式。在其它情况下,简单地参考或以框图形式示出公知的结构和设备以避免不必要的混淆。全文使用的任何和所有标题都只是为了易于解释而并非为了任何限制性用途。
参考图1,此处也被称为OFC系统的机会主义的帧高速缓存系统100被主存在计算设备180上或以其他方式在该计算设备上执行。在一实施方式中,计算设备180是能够运行或执行软件指令并与用户110交互以便输入文件115(例如,音频或可视),并且对输入文件115执行计算或其他动作的计算机或任何设备。在一实施方式中,OFC系统100支持用户对一个或多个输入文件115的编辑。此处也被称为源文件115的输入文件115可来自各个源,诸如音频和/或可视,包括摄像机155、磁带盘165、CD 175等。在一实施方式中,源文件115由各自包含源文件115内容的一部分的一个或多个源帧185构成。
OFC系统100具有若干组件,包括UI 130、机会主义的代码转换器150、媒体解析器160、合成器140、预览器120以及编码器170。在一实施方式中,OFC系统100组件是在被执行时执行一个或多个任务的软件指令集。在替换实施方式中,OFC系统100可具有更多、更少和/或不同的组件。
在一实施方式中,OFC系统100的UI(用户界面)和app逻辑(应用程序逻辑)130组件具有接受用户命令112并向用户110提供输出114的能力。
在一实施方式中,用户110经由UI 130与OFC系统100交互以预览,即审阅和/或编辑一个或多个源文件115以生成一个或多个已完成的、已产生的、输出文件135。在一实施方式中,用户110与UI 130交互,例如发送或以其他方式发起命令112,以便组织对一个或多个源文件115中的此处也被称为采样片段的一个或多个部分的预览。
在一实施方式中,采样片段124是源文件115中用户110有兴趣预览的部分,即,源文件115中的一个或多个源帧185的连续集合。在一实施方式中,采样片段124可以是一个或多个源文件115中用户110有兴趣组合并预览的两个或更多部分。例如,在一实施方式中,采样片段124可由将要组合的第一视频源文件115的部分和第二音频源文件115的部分构成。
在一实施方式中,用于采样片段124的源文件115的部分可以是整个源文件115。
在一实施方式中,用户110可以经由UI 130向OFC系统100发出指示用户110有兴趣预览的采样片段124的用户预览请求的命令112。在一实施方式中,响应于用户预览请求而输出给用户110的得到的预览帧195集合是表示在对应的采样片段124中标识的源帧185的预览片段125。在一实施方式中,预览片段125包括各自与来自一个或多个源文件115的一个或多个源帧185相关的一个或多个预览帧195。
在一实施方式中,用户110可以与UI 130进行交互,例如发送或以其他方式发出命令112,以修改预览片段125。例如,用户110可以经由UI 130发出一个或多个命令112,以规定要应用于预览片段125的一个或多个预览帧195的各种处理,例如淡入、淡出、静音、添加字幕、生成背景,等等。作为第二示例,用户110可以经由UI 130发出一个或多个命令112,以对预览片段125中的预览帧195进行重新排序。作为又一示例,用户可以经由UI 130发出一个或多个命令112,以将例如音频源帧185等第二组源帧185的与例如由视频源帧组成的预览片段125的已有预览帧195进行合并,以组合源文件片段来例如向视频添加音乐分数。
在示例OFC系统100中,预览器120组件具有向用户110输出,即显示和/或播放预览片段125的能力,以供用户110观看和/或收听并供用户用来作出用于创建结果输出文件135的编辑决策。在一实施方式中,用户110经由UI 130发出包括用户预览请求的命令112,该预览请求造成预览器120向用户110输出预览片段125。
如上所述,在一实施方式中,预览片段125具有一个或多个预览帧195。在一实施方式中,从一个或多个经代码转换或转置(即,经解码和/或解压)的源帧185来生成预览帧195。在一实施方式中,源帧185已被使用各种方案进行了编码和/或压缩,使得可以在存储源文件115的例如CD、DVD、记忆棒等存储介质上存储更多数据。在该实施方式中,源帧185对用户110而言没有意义,即用户110不能观看或收听这些经编码的和/或经压缩的源帧185并且不能识别其中表示的主题。
在一实施方式中,根据用户命令112,可对预览帧195应用一个或多个处理。可被应用于一个或多个预览帧195的各种处理包括但不限于添加标题、字幕、背景、剪贴画(clipart)等,淡入或淡出,变成彩色,修改成黑白色,静音,增大音量等等。
在一实施方式中,一个以上的源可以对预览帧195作出贡献。例如,可以通过将音频源帧185与图像源帧185合并来生成预览帧195,使得声音随图像包括。作为另一示例,预览帧195可以通过修改图像源帧185或视频源帧185来生成,以向源帧185添加来自剪贴画文件的剪贴画。在一实施方式中,可为任何预览帧195生成各种两个或更多个源组合。
在一实施方式中,预览片段125向用户110提供在基于预览片段125的最终输出文件135被命令来从预览片段125中生成的情况下该最终输出文件将是什么样的可视和/或音频视图。
在一实施方式中,用户110可以与UI 130进行交互,例如发送或以其他方式发出命令112,以生成输出文件135。在一实施方式中,输出文件135是预览片段125的定稿版本。在该实施方式中,一旦用户110输出了该用户110希望保留的预览片段125,则用户110可以经由UI 130发出命令112,以生成对应的输出文件135并保存。
在一实施方式中,输出文件135具有一个或多个输出帧105。在一实施方式中,一个或多个输出帧105是经编码和/或压缩的预览帧195。如上所述,预览帧195是从一个或多个源文件帧185生成的,可根据用户命令112对预览帧195应用一个或多个处理。
在一实施方式中,一个或多个输出帧105是被编码和/或压缩的经代码转换的源帧。在该实施方式的一个方面,在将经代码转换的源帧中的一个或多个编码和/或压缩成输出帧105之前对其应用一个或多个处理。如以下进一步讨论的,在该实施方式中,一个或多个输出帧105不是从在预览片段125中被输出给用户110的任何预览帧195中生成的。
如上所述,在一实施方式中,源帧185已被编码和/或压缩。在一实施方式中,OFC系统100的媒体解析器160组件具有在示例OFC系统100的示例机会主义的代码转换器150组件的指导下对源帧185进行代码转换(即,解码和/或解压)以生成对应的经代码转换的帧192的能力。在一实施方式中,媒体解析器160将源文件115的一个或多个源帧185作为输入并对一个或多个源帧185进行代码转换,使得所得的经代码转换的帧192在被用于用户110所观看和/或收听的预览片段125中的预览帧195时对用户110而言是可理解的(即可识别的)。在一实施方式中,媒体解析器160将所生成的经代码转换的帧192存储在预览文件190或任何其他可使用的数据存储组件中,这些组件诸如但不限于表、链表等,它们在本文中被统称为预览文件190。
在一实施方式中,一示例OFC系统100的机会主义的代码转换器150组件具有标识要响应于用户预览请求的命令112而被代码转换(即,解码和/或解压)的源帧185的能力。在一实施方式中,机会主义的代码转换器150标识代码转换片段126,它包括要被代码转换以产生可响应于用户预览请求而被输出给用户110以供预览的预览片段125的源帧185。
在一实施方式中,代码转换片段126包括来自一个源文件115的源帧185,并且在用户预览请求涉及一个以上源文件185时,机会主义的代码转换器150标识源文件185中的每一个的代码转换片段126。在一替换实施方式中,代码转换片段126包括来自用户预览请求中涉及的每一源文件115的源帧185。
在一实施方式中,机会主义的代码转换器150所标识的代码转换片段126包括从源文件115中的起始源帧到源文件115中的结尾源帧的连续的源帧185。在一实施方式中,用于代码转换片段126的源文件115中的起始源帧是用户的当前用户预览请求的采样片段124中的第一位的源帧。在一实施方式中,用于代码转换片段126的源文件115中的结尾源帧是用户的当前用户预览请求的采样片段124中的最后一位的源帧。
在一些情况下,应用于源文件115的压缩和/或编码格式可以要求该源文件115中处于采样片段124的第一位的源帧之前的一个或多个源帧被进行代码转换,以使采样片段124的第一位的源帧被正确地进行代码转换。在一些情况下,应用于源文件115的压缩和/或编码格式可以要求该源文件115中跟在采样片段124的最后一位的源帧之后的一个或多个源帧被进行代码转换,以使采样片段124的最后一位的源帧被正确地进行代码转换。在这些情况下和实施方式中,机会主义的代码转换器150所标识的代码转换片段126包括要被进行代码转换以使得可以对采样片段124中的每一源帧185正确地进行代码转换的所有连续源帧185。
在一实施方式中,机会主义的代码转换器150向媒体解析器160发出代码转换预览请求,从而将代码转换片段126标识为媒体解析器160代码转换工作的目标。
如上所述,在一实施方式中,OFC系统100的媒体解析器160组件具有对源帧185进行代码转换以生成对应的经代码转换的帧192的能力。在一实施方式中,在媒体解析器160接收到来自机会主义的代码转换器的代码转换预览请求时,媒体解析器160将用于对代码转换片段126中指示的源帧185中的一个或多个进行代码转换,代码转换片段126由代码转换预览请求标识或以其他方式与代码转换预览请求相关联。在一实施方式中,媒体解析器160在一个或多个预定义条件下结束对代码转换片段126中的源帧185的代码转换。
在一实施方式中,媒体解析器160结束对代码转换片段126中的源帧185的代码转换的第一预定义条件是在媒体解析器160对代码转换片段126中的每一源帧185进行了代码转换时。
在一实施方式中,媒体解析器160结束对代码转换片段126中的源帧185的代码转换的第二预定义条件是在媒体解析器160对代码转换片段126中的将要进行代码转换的所有源帧185进行了代码转换时。在该实施方式中,并非代码转换片段126中的每一源帧185都必须被代码转换才能使预览器120能够输出可接受质量的预览片段125以供用户预览。例如,在一实施方式中,媒体解析器160仅对代码转换片段126中每隔一个源帧185进行代码转换,并且所得的经代码转换的帧192在被用于预览片段125中的预览帧195时将提供可接受的输出质量以供用户110审阅预览片段125并在其上作出智能的编辑决策。
在一实施方式中,媒体解析器160结束对代码转换片段126中的源帧185的代码转换的第三预定义条件是在媒体解析器160接收到来自机会主义的代码转换器150的标识与媒体解析器160当前正在处理的代码转换片段126不同的第二代码转换片段126的另一代码转换预览请求时。在该实施方式的一个方面,在这一第三预定义条件发生时,媒体解析器160最终化(finalize)对它当前正在处理的源帧185的代码转换,并随后开始对新标识的代码转换片段126的源帧185进行代码转换。在该实施方式的第一替换方面,在这一第三预定义条件发生时,媒体解析器160终止对它当前正在处理的源帧185的代码转换,并开始对新标识的代码转换片段126的源帧185进行代码转换。在该实施方式的第二替换方面,在这一第三预定义条件发生时,媒体解析器160对它当前正在处理的代码转换片段126最终化它将要进行代码转换的源帧185的代码转换,并随后开始对新标识的代码转换片段126的源帧185进行代码转换。
在一实施方式中,媒体解析器160结束对代码转换片段126中的源帧185的代码转换的第四预定义条件是在预定义时间限制期满时。在该实施方式中,媒体解析器160在预设时间量期满之后结束对代码转换片段126的处理。
在一实施方式中,媒体解析器160结束对代码转换片段126中的源帧185的代码转换的第五预定义条件是在媒体解析器160对源文件115中的要代码转换的最后源帧185进行了代码转换时。
在各实施方式中,也可以使用或作为替换使用其他预定义条件,以规定媒体解析器160何时根据从机会主义的代码转换器150发出的代码转换预览请求来结束对代码转换片段126中的源帧185的代码转换。
在各实施方式中,因为OFC系统100正在对用户预览所需的源帧185进行代码转换,所以OFC系统100省下了否则被用来对用户110当前不感兴趣的源帧185进行代码转换的时间和资源。在一实施方式中,以此方式,可以更方便地向用户110提供更健壮的预览片段125。
在一实施方式中,媒体解析器160对它有时间来进行代码转换的代码转换预览请求中的起始源帧185开始的每一连续的源帧185进行代码转换,在该实施方式的一个方面,机会主义的代码转换器150认识到当前向用户110提供(即显示和/或播放)的预览片段125中的这一点(即预览帧195)以及也要这样提供的下一预览帧195。在该实施方式的这一方面,机会主义的代码转换器150可以确定应在何时为预览片段125对新源帧185进行代码转换以及在对应的预览帧195被提供给用户110之前媒体解析器160是否有时间执行该代码转换。在这一实施方式的这一方面,在机会主义的代码转换器150确定所需的对应预览帧195的源帧185尚未进行代码转换并且没有足够时间对它进行代码转换时,机会主义的代码转换器150与媒体解析器160进行通信以命令媒体解析器160跳过对该源帧185的代码转换。在该实施方式的这一方面,通过跳过对源帧185的代码转换,对应的预览帧195将不是输出给用户110的当前预览片段125的一部分。
在一实施方式中,媒体解析器160随后将跳过以开始对所跳过的预览帧195之后的下一预览帧195的源帧185进行代码转换。例如,假定第三预览帧(3)是要提供给用户110的下一预览帧195,但对应的源帧185还未被代码转换并且当前没有足够的时间来对它进行代码转换。在该示例和实施方式中,媒体解析器160跳过对第三预览帧的对应源帧185的代码转换,并开始对第四预览帧(4)的源帧185进行代码转换。
在另一实施方式中,媒体解析器160将跳过预定数量的源帧185以随后恢复当前代码转换预览请求的源文件帧代码转换。例如,再次假定第三预览帧(3)是要提供给用户110的下一预览帧195,但对应的源帧185还未被代码转换并且当前没有足够的时间来对它进行代码转换。在该示例和其他实施方式中,媒体解析器160跳过对预定数量(例如,五(5)个)的源帧185的代码转换,并开始对第八预览帧(8)的源帧185进行代码转换。
在一替换实施方式中,在机会主义的代码转换器150确定所需对应预览帧195的源帧185未被代码转换,并且没有足够的时间对它进行代码转换时,机会主义的代码转换器150为当前用户预览请求标识具有在时间上比媒体解析器当前没有足够时间来进行代码转换的源帧185晚的一个或多个源帧185的新代码转换片段126。在该替换实施方式中,机会主义的代码转换器150向媒体解析器160发出代码转换预览请求,从而将该新代码转换片段126标识为媒体解析器160代码转换工作的目标。在该替换实施方式中,媒体解析器160将终止对它当前正在进行代码转换的源帧185的处理,并开始处理新代码转换片段126中指示的源帧。
在一实施方式中,在媒体解析器160对最后源帧185(例如代码转换预览请求的端点源帧185或源文件115中的最后连续源帧185)进行代码转换并且媒体解析器160有时间继续对源帧185进行代码转换时,媒体解析器160对尚未被代码转换的源帧185继续进行代码转换。在一实施方式中,只要预定时间限制没有期满和/或媒体解析器160没有接收到来自机会主义的代码转换器150的新代码转换预览请求,媒体解析器160就有时间对源帧继续进行代码转换。在一实施方式中,只要媒体解析器160有时间并且存在要代码转换的源帧185,媒体解析器160就将对源帧185继续进行代码转换。
在一实施方式中,在有时间对源文件115中的源帧185继续进行代码转换的情况下,媒体解析器160前往媒体解析器160先前没有进行代码转换的最后代码转换预览请求中的第一位的源帧185并开始对该源帧185进行代码转换。在该实施方式中,媒体解析器160对最后代码转换预览请求中标识的、要进行代码转换的、连续的先前未被代码转换的源帧185继续进行代码转换,直至满足预定义条件为止。
在一实施方式中,在媒体解析器160完成对最后代码转换预览请求中标识的源帧185的代码转换并且还有时间继续对源帧185进行代码转换时,媒体解析器160前往媒体解析器160先前未进行代码转换的之前的代码转换预览请求(例如倒数第二个代码转换预览请求)中的第一位的源帧185,并开始对该源帧185进行代码转换。
在一实施方式中,媒体解析器160继续往回操作之前的代码转换预览请求,从而对这些之前的代码转换预览请求中标识的先前未被代码转换的源帧185进行代码转换,直至满足预定义条件为止。在第二实施方式中,媒体解析器160继续往回操作之前的代码转换预览请求,从而对这些之前的代码转换预览请求中标识的先前未被代码转换的源帧185进行代码转换,直至代码转换了预定义数量的代码转换预览请求或直至满足预定义条件为止。在第三实施方式中,媒体解析器160继续往回操作之前的代码转换预览请求,从而对这些之前的代码转换预览请求中标识的先前未被代码转换的源帧185进行代码转换,直至代码转换进行了预定义时间量或直至满足预定义条件为止。在又一些实施方式中,媒体解析器160继续往回操作之前的代码转换预览请求,从而对这些之前代码转换预览请求中标识的先前未被代码转换的源帧185进行代码转换,直至满足其他条件和/或条件的组合为止。
在一实施方式中,如果媒体解析器160为当前用户编辑会话(即,对OFC系统100的当前用户访问时间)对所有之前代码转换预览请求中标识的源帧185进行代码转换,并且仍然有时间进行对源帧185进行代码转换,则媒体解析器160前往源文件115中未被代码转换的第一源帧185并开始对这一源帧185进行代码转换。媒体解析器160此后将对源文件115中先前未被代码转换的源帧185继续进行代码转换,直至源文件115中没有要进行代码转换的源帧185或满足另一预定义条件为止。
在该实施方式的一个方面,媒体解析器160开始对它最后当前处理的源文件115中的源帧185进行代码转换。在该实施方式的其他方面,媒体解析器160开始对通过其他准则确定的源文件115中的源帧185进行代码转换,这些准则诸如但不限于从中生成用于当前用户编辑会话的最大数量的采样片段124的源文件115、当前用户编辑会话中标识的每一采样片段124的最大数量的源帧185起源的源文件115等等。
在一替换实施方式中,在媒体解析器160完成对最后的代码转换预览请求中标识的源帧185的代码转换并且还有时间继续对源帧185进行代码转换时,媒体解析器160前往当前源文件115中媒体解析器160已经在处理的第一源帧185,并开始对该源帧185进行代码转换。在该替换实施方式中,媒体解析器160对当前源文件115中的连续的先前未被代码转换的源帧185继续进行代码转换,直至满足预定义条件为止。
在其他替换实施方式中,在媒体解析器160完成对最后代码转换预览请求中标识的源帧185的代码转换并且还有时间对源帧185继续进行代码转换时,媒体解析器160开始对通过其他准则确定的源文件115中的源帧185进行代码转换。在这些其他替换实施方式中,其他准则可包括但不限于从中生成用于当前用户编辑会话的最大数量的采样片段124的源文件115、当前用户编辑会话中标识的每一采样片段124的最大数量的源帧185起源的源文件115等等。
在一实施方式中,在媒体解析器完成对源文件115中的源帧185的代码转换并且还有时间对于源帧185继续进行代码转换时,媒体解析器160开始对另一源文件115中的源帧185进行代码转换。在该实施方式中,只要它有时间并且存在要进行代码转换的源帧185,媒体解析器160就对每一源文件115中的源帧185继续进行代码转换。在该实施方式的各方面,媒体解析器160用于对其中源帧185进行代码转换的源文件115的次序是通过各种准则来确定的,包括但不限于从生成用于当前用户编辑会话的最大数量的采样片段124的源文件115到不生成或生成最少数量的采样片段124的源文件115、从当前用户编辑会话中定义的每一采样片段124的最大数量的源帧185起源的源文件115到每一采样片段124的最少数量的(或没有)源帧185起源的源文件115等等。
在该实施方式的一个方面,媒体解析器160在时间准许时对每一源文件115的每一源帧185进行代码转换。在该实施方式的另一方面,媒体解析器160在时间准许时为要生成的并且用户可识别(即具有足够输出质量以供用户预览)的任何预览片段125对每一源文件115的足够数量的源帧185进行代码转换。在该实施方式的这一其他方面,并非任何源文件115的所有源帧185都必须被代码转换才能使从源文件115中的一个或多个导出的任何可能的预览片段125可被用户识别。
在一实施方式中,机会主义的代码转换器150具有认识到用户110当前希望预览的、应用了任何处理的要被或正被提供给用户110的当前预览片段(即,按所请求的顺序的一组预览帧195)的能力。情况可能是:用户110在操作他们的当前或后续编辑项目时,将多于一次地预览被建立为预览帧195的同一组经代码转换的帧192。因此,在一实施方式中,在用户110经由UI 130发出用户预览非命令112时,经代码转换的帧192可能已经存在并且已准备好被包括在预览片段125中。在该实施方式中,机会主义的代码转换器150不必命令媒体解析器160对其对应的经代码转换的帧192已被生成并被存储在预览文件190的源帧185进行代码转换。
在一实施方式中,预览片段125可能存在因先前没有足够时间对其对应的源帧185进行代码转换而没有生成的缺失的预览帧195。在一实施方式中,在用户110发出用户预览请求之后,机会主义的代码转换150确定预览片段125的哪些(如果有)预览帧195已经存在以及预览片段125的哪些(如果有)经代码转换的帧192已经存在。在该实施方式中,机会主义的代码转换器150命令媒体解析器160只对其所需预览帧190未被生成并且对应的经代码转换的帧192当前不存在的那些源帧185进行代码转换。以此方式,对于涉及先前生成的预览帧195的每一后续用户预览请求,OFC系统100可以向用户110提供时间更加高效的预览会话,因为只使用很少时间或可能不使用时间来生成所需预览帧195。同样,以此方式,示例OFC系统100随后可以随时间向用户110提供更丰富的预览,因为在每次将具有已有预览帧195和/或从当前已有的经代码转换的帧192生成的预览片段125输出给用户110时,附加预览帧195可被及时地生成并被包括在其中。
在一实施方式中,即使在媒体解析器有时间对附加源帧185进行代码转换时,媒体解析器160也对少于第一代码转换预览请求中标识的代码转换片段126的源文件115的所有源帧185进行代码转换。例如,在一实施方式中,媒体解析器160根据从机会主义的代码转换器150发出的第一代码转换预览请求来对代码转换片段126中的每隔一个源帧185进行代码转换。在一实施方式中,如果媒体解析器160接收到对同一代码转换片段126或与之前的代码转换片段126重叠的代码转换片段126的第二代码转换预览请求,则媒体解析器160对代码转换片段126中先前未被代码转换的源帧185进行代码转换。在该实施方式中,媒体解析器160不对先前已被代码转换的源帧185重新进行代码转换。
在一替换实施方式中,除非另外指明,否则媒体解析器160只对任何源文件115的源帧185的子集部分进行代码转换,而不管媒体解析器有多少时间来对附加源帧185进行代码转换。例如,在该替换实施方式中,除非另外指明,否则媒体解析器160只对任何源文件115的每隔一个源帧185进行代码转换,而不管媒体解析器有多少时间来对任何源文件115的每一源帧185进行代码转换。在该替换实施方式中,如果任何可能的预览片段125中的任何预览帧195的基础可以提供可接受的质量预览片段125以供用户预览,则媒体解析器160在时间允许时对源帧185进行代码转换。
如上所述,在一实施方式中,媒体解析器160将所生成的经代码转换的帧192存储在预览文件190中。在各实施方式中,预览文件190是易失性或非易失性存储器,并且因此可用于当前用户编辑会话,并且在各实施方式中可用于后续用户编辑会话。
在一实施方式中,经代码转换的帧192是以生成它们的次序存储的并且为OFC系统100建立索引以在源帧185与对应的经代码转换的帧192之间进行映射。在该实施方式中,OFC系统100使用所建立的索引来确定经代码转换的帧192是否可用来在预览片段125中提供给用户110。
在一替换实施方式中,经代码转换的帧192是按与它们的对应源帧185相同的次序一一对应地存储的。在该实施方式的一个方面,预览文件190中的空帧指示对应的源帧185未被代码转换。在各实施例中,可以用各种机制来指示预览文件190中的空帧,包括但不限于预定义的空数据模式(例如全零)、与预览文件190的每一帧相关联的指示预览文件190的该帧是空还是被填充的标志,等等。
在其他实施方式中,经代码转换的帧192在预览文件190中的组织可以是使用各种寻址方案的其他次序,带有或不带有与任何源文件115的一一对应关系。示例性替换实施方式预览文件190组织包括不带有一一对应关系而使得预览文件190中没有空帧的对应的源帧185的次序、预览片段125的对应的预览帧195的次序,等等。
在一实施方式中,OFC系统100的合成器140组件具有生成要被输出给用户110的预览片段125的能力。示例合成器140将一个或多个经代码转换的帧192组合成一个或多个预览片段125。在一实施方式中,合成器140根据经由UI 130的用户命令112来对一个或多个经代码转换的帧192应用各种处理(例如,可视和/或音频效果),该一个或多个经代码转换的帧192随后作为预览帧195被包括在输出给用户110的预览片段125中。
在一实施方式中,OFC系统100的预览器组件120具有将预览片段125输出给用户110的能力。
在一实施方式中,用户110可以经由UI 130发出对一个或多个源文件115的指示用户请求的采样片段的用户预览请求命令112。在一实施方式中,响应于该用户预览请求,合成器140向机会主义的代码转换器150发送预览请求,从而指示用户已经请求了预览片段135。在一实施方式中,如果用户请求的采样片段的所有源帧185都要被代码转换,则机会主义的代码转换器150定义包括要被代码转换的所有源帧185的代码转换片段126。在一实施方式中,机会主义的代码转换器150向媒体解析器160发送代码转换预览请求,该请求指示或以其他方式标识所定义的代码转换片段126或与所定义的代码转换片段126相关联。
在一实施方式中,在媒体解析器160对代码转换片段126的足够数量的源帧185进行了代码转换时,媒体解析器160通知机会主义的代码转换器150,机会主义的代码转换器150进而通知合成器140预览片段125的源帧185是可用的。在一实施方式中,合成器140响应于初始用户预览请求通过为预览片段125组合来自预览文件190的所有当前已有的经代码转换的帧192来生成第一预览片段125。
在一实施方式中,合成器140响应于初始用户预览请求通过以与对应的源帧185相同的时间次序来组合经代码转换的帧192来生成第一预览片段125。
在一实施方式中,在用户110作出对同一预览片段125的后续请求时,合成器140生成新预览片段125,或作为替换,修改当前预览片段125,为预览片段125添加后来变得可用的经代码转换的帧192,即自当前预览片段125被首次产生以来被代码转换的帧。以此方式,示例OFC系统100能动态地并机会主义地向用户110提供越来越健壮的预览片段125。
在一实施方式中,OFC系统100维护对用户对一个或多个源帧185作出的编辑决策进行记录的决策列表122。决策列表122可以是各种格式中的任一种,包括但不限于列表、表等,在本文中统称为决策列表122。在一实施方式中,决策列表122指示哪些预览帧195最后被提供给用户110。在一实施方式中,决策列表122标识用户请求的采样片段中与输出给用户110的当前预览片段125相对应的源帧185。在该实施方式中,即使不存在用于预览片段125的一个或多个经代码转换的帧192,OFC系统100也认识到那些在被进行了代码转换的情况下它们将会由它们的对应的经代码转换的帧192表示为预览帧195的对应的源帧185。
在一实施方式中,预览器120维护OFC系统100的决策列表122。在一替换实施方式中,合成器140维护OFC系统100的决策列表122。在其他替换实施方式中,OFC系统100的其他组件或OFC系统100的各组件的组合维护OFC系统100的决策列表122。
用户110可以为所需输出文件135更改来自源文件115的源帧185的次序。用户110可以为所需输出文件135组合来自两个或多个源文件115的源帧185。在一实施方式中,这些用户编辑请求可在提供给用户110的预览片段125中显示给用户110。在一实施方式中,决策列表122标识预览片段125中包括的预览帧195的次序。在一实施方式中,决策列表122标识从中导出每一预览帧195的源文件115。
在一实施方式中,用户110可以请求被应用于一个或多个源帧185的一个或多个处理,例如淡入、淡出、包括剪贴画、旋转等。在一实施方式中,决策列表122为在预览片段125中提供给用户110的对应预览帧195标识应用于经代码转换的帧192的每一处理。
在各实施方式中,决策列表122包含与从一个或多个源文件115生成输出文件135的相关的替换和/或附加元素。
在一实施方式中,在用户110经由UI 130发出编辑命令112时,合成器140对预览片段125执行对应的动作,预览片段125随后被输出给用户110。在一实施方式中,按照用户命令112,合成器140为预览片段125对预览帧195进行重新排序、添加或删除。在一实施方式中,按照用户命令112,合成器140对一个或多个经代码转换的帧192和/或一个或多个预览帧195应用处理,该处理的结果包括在输出给用户110的预览片段125中。
在一实施方式中,在用户110预览一个或多个源文件115时,合成器140根据用户命令112继续生成以及重新生成或修改预览片段125。在一实施方式中,决策列表122被相应地更新。
如上所述,在各实施方式中,预览片段125可不包含对应的代码转换片段126或用户请求的采样片段的每一连续预览帧195。因此,在一实施方式中,无论预览片段125包含或不包含经重新排序和/或经处理的预览帧195,并非对应的用户请求的采样片段的所有预览帧195可被包括在输出给用户110的预览片段125中。在一实施方式中,这可能是因为一个或多个预览帧195不是从它们的源帧185对应物生成的,例如媒体解析器160只对用户预览请求的代码转换片段126的子集进行代码转换,如每隔一个源帧185。在一实施方式中,这还可以(或作为替换)是因为在将预览片段125提供给用户110时,媒体解析器160没有足够的时间来对一个或多个源帧185进行代码转换,其结果将作为预览帧195包括在预览片段125中。
在示例OFC系统100中,编码器170组件具有生成作为用户对一个或多个源文件115的编辑命令112的结果的输出文件135的能力。示例编码器170使用决策列表122、一个或多个经代码转换的帧192、与预览文件190相关联的索引(如果它存在并且在适用的情况下)、最当前的预览片段125及其预览帧195、和/或一个或多个源帧185来生成一个或多个最终输出文件135。在其他实施方式中,编码器170可以使用其他信息和/或元素来生成输出文件135。
在一实施方式中,编码器170为连接到OFC系统100在其上操作的计算设备180或以其他方式与计算设备180进行通信的一个或多个输出设备按照一个或多个预定格式和/或一个或多个用户定义的格式和/或一个或多个相容格式来编写输出文件135。
在一实施方式中,输出文件135具有一个或多个输出帧105。在一实施方式中,输出帧105是来自一个或多个源文件115的可能被修改或未被修改(即,处理)的源帧185或源帧185的组合。在一实施方式中,输出帧105可以从经代码转换的帧192或预览帧195生成。
在一实施方式中,输出帧105被编码和/或压缩。在该实施方式的一个方面,输出文件135的输出帧105是使用与用于对从中导出输出文件135的原始源文件115中的对应的源帧185进行编码的编码方案不同的编码方案来编码的。
在一实施方式中,与输出文件135的输出帧105相关联的源帧185可以源于一个或多个源文件115。因此,例如,在一实施方式中,输出文件135可以具有来自(即,导出自)第一视频源文件115的输出帧105和来自(即,导出自)第二音频源文件115的输出帧105。作为另一示例,在一实施方式中,输出文件135可以具有来自(即,导出自)第一视频源文件115和来自(即,导出自)第二音频源文件115的输出帧105。
图2A-2C示出了用于OFC系统100的机会主义的代码转换器150组件的逻辑流程。尽管参考在此所述的系统进行下面的讨论,但可在其它系统中实现所述操作。在此描述的操作不限于所示次序。另外,在其它替换实施方式中,可执行更多或更少的操作。此外,所描绘的操作可由机会主义的代码转换器150、机会主义的代码转换器150结合一个或多个其他OFC系统组件,或者由一个或多个其他OFC系统组件来执行。
参考图2A,在一实施方式中,在判定框200,确定机会主义的代码转换器是否已经接收到预览请求或命令;即,例如合成器是否已经通知机会主义的代码转换器将要生成预览片段并将其输出给用户。如果是,则在判定框202确定用于由用户指示的采样片段的任何源帧是否尚未进行代码转换。如果否,这在一实施方式中意味着对应于用户请求的采样片段的代码转换片段中的所有源帧都已经进行代码转换,则在一实施方式中机会主义的代码转换器结束处理210。
在判定框202,如果否,在第二实施方式中这意味着对应于用户请求的采样片段的代码转换片段中将进行代码转换所有源帧都已经进行代码转换,则在一实施方式中机会主义的代码转换器结束处理210。在该第二实施方式中,媒体解析器160仅仅对一个或多个源文件115的源帧185的子集进行代码转换以供用户预览,因为没有预览片段125要求对所有相应的源帧185进行代码转换并且随后将其包括在预览片段125中以便向用户110提供足够的输出预览质量。
在判定框202,如果存在用于用户请求的采样片段的尚未进行代码转换的一个或多个源帧并且在一实施方式中源帧将在时间准许的情况下由媒体解析器来进行代码转换,则在一实施方式中,机会主义的代码转换器用起始点(即,第一个源帧)和结束点(即,最后一个源帧)来标识代码转换片段204。
在一实施方式中,第一个源帧可以是源文件115中用于当前用户请求的采样片段124的时间顺序上的第一个源帧185。
在一实施方式中,第一个源帧可以是在用户请求的采样片段124中的所有源帧185都将正确地进行代码转换的情况下的源文件115中将进行代码转换的时间顺序上的第一个源帧185。
在一实施方式中,第一个源帧可以是源文件115中用于当前用户请求的采样片段124的先前尚未进行代码转换的时间顺序上的第一个源帧185。在该实施方式中,用户请求的采样片段124中的一个或多个源帧185已经为先前的用户预览请求进行代码转换,或者在媒体解析器160有时间对其进行代码转换时进行代码转换。
在一实施方式中,第一源帧可以是机会主义的代码转换器150将其标识为源文件115中的媒体解析器160将开始为当前采样片段124进行代码转换的源帧185的源帧185,例如,源文件115中用于用户请求的采样片段124的时间顺序上的第二个源帧、源文件115中用于采样片段124的时间顺序上的第五个源帧,等等。
在一实施方式中,机会主义的代码转换器向媒体解析器发送代码转换预览请求206。在一实施方式中,代码转换预览请求指示或以其他方式标识媒体解析器将对其进行代码转换206的代码转换片段或与其相关联。
在一实施方式中,在判定框208,确定预览器当前是否正在输出针对对应的用户预览请求的预览片段。在该实施方式中,可以存在足够的预览帧195或经代码转换的帧192以供合成器140生成预览器120可以输出给用户115的预览片段125,但不是用于生成完整的预览片段125的所有预览帧195和/或经代码转换的帧192。
在判定框208,如果预览器当前没有输出预览片段,则在一实施方式中,在判定框212,确定媒体解析器是否已经提供用于当前用户预览请求的代码转换片段的将进行代码转换的源帧已经进行代码转换的通知。如果是,则在一实施方式中,机会主义的代码转换器通知合成器将为当前用户预览请求进行代码转换的源帧已经进行了代码转换214。在一实施方式中,机会主义的代码转换器结束处理210。
在判定框212,如果不存在用于当前用户预览请求的代码转换片段的将进行代码转换的源帧已经进行代码转换的通知,则在一实施方式中,机会主义的代码转换器再次确定预览器当前是否正在输出针对对应的用户预览请求的预览片段208。
在判定框208,如果预览器当前正在输出针对对应的用户预览请求的预览片段,则参考图2B,在一实施方式中,机会主义的代码转换器标识或以其他方式跟踪预览器正在向用户输出以及该用户当前正在预览哪里(例如,哪一预览帧或预览帧范围)230。在一实施方式中,机会主义的代码转换器150与合成器140通信以保持被告知预览器120正将预览片段125中的什么预览帧195或预览帧部分输出给用户110。在一替换实施方式中,机会主义的代码转换器150与预览器120通信以保持被告知用户110当前预览,即审阅和/或编辑预览片段125中的哪里。在一实施方式中,机会主义的代码转换器150可以参考一个或多个数据存储元素,例如表、标志集等,以标识预览器120正在输出给用户110的当前预览帧195或预览帧部分。
在一实施方式中,在判定框232,确定预览器是否在当前预览片段的末尾处;即,使预览器向用户输出了整个当前预览片段。如果是,则在一实施方式中,机会主义的代码转换器结束处理210。
如果预览器不在当前预览片段的末尾处,则在一实施方式中,在判定框234,确定媒体解析器是否已经提供用于当前用户预览请求的代码转换片段中的将进行代码转换的源帧已经进行代码转换的通知。如果是,则在一实施方式中,机会主义的代码转换器通知合成器将为当前用户预览请求进行代码转换的源帧已经进行了代码转换214。在一实施方式中,机会主义的代码转换器然后结束处理210。
在判定框234,如果不存在用于当前用户预览请求的代码转换片段中将进行代码转换的源帧已经进行了代码转换的通知,则在一实施方式中,在判定框236,确定是否存在足够的预览帧来支持预览器在某处向用户输出预览片段。如果是,在一实施方式中,机会主义的代码转换器标识预览器当前正将哪一预览帧或帧范围输出给用户230。
在判定框236,如果没有足够的预览帧支持预览器在某处向用户输出预览片段,则在一实施方式中,媒体解析器落后于对针对当前用户预览请求的源帧进行代码转换。在判定框236,如果没有足够的预览帧可用,则在一实施方式中,机会主义的代码转换器标识用于当前用户预览请求的代码转换片段中的下一新源帧供进行代码转换238。
在一实施方式中,代码转换片段126中的所标识的下一新源帧是源文件115中在时间顺序上比媒体解析器160正在或正要对其进行代码转换的源帧185晚的源帧185。在一实施方式中,所标识的下一新源帧是源文件115中在时间顺序上自媒体解析器160正在或正要对其进行代码转换的源帧185的下一源帧185。在一替换实施方式中,所标识的下一新源帧可以是源文件115中在时间顺序上在媒体解析器160正在或正要对其进行代码转换的源帧185晚的预定或计算出的数量的源帧185,以便向媒体解析器160提供足够的时间以为所需预览片段125对源帧185进行代码转换。
在一实施方式中,在判定框240,确定机会主义的代码转换器是否在代码转换片段的末尾;即,代码转换片段中是否还有任何源帧要向媒体解析器标识以便在此刻进行代码转换。如果机会主义的代码转换器在代码转换片段的末尾,则在一实施方式中,机会主义的代码转换器通知合成器用于当前用户预览请求的预览片段中的源帧已经进行了代码转换242。在一实施方式中,机会主义的代码转换器结束处理210。
在判定框240,如果机会主义的代码转换器不在代码转换片段的末尾,则在一实施方式中,在判定框244,确定是否有足够的时间供媒体解析器对用于当前用户预览请求的代码转换片段中的下一新源帧进行代码转换。如果有足够的时间,则在一实施方式中,机会主义的代码转换器命令或以其他方式信令媒体解析器跳至代码转换片段中的所标识的下一新源帧,并且对代码转换片段中的自该源帧的源帧进行代码转换246。
在判定框240,无论是否有足够的时间供媒体解析器对代码转换片段中的所标识的下一新源帧进行代码转换,在一实施方式中,机会主义的代码转换器都标识或以其他方式跟踪预览器向用户输出以及该用户当前正在预览哪里,例如哪一预览帧或预览帧范围230。
回头参考图2A,在判定框200,如果机会主义的代码转换器未接收到预览请求,则在一实施方式中,在判定框216,确定机会主义的代码转换器是否从媒体解析器接收到源文件的所有源帧都已进行了代码转换的通知。在一实施方式中,源文件115的所有源帧185是每一个源文件115中的每一个源帧185。在一替换实施方式中,源文件115的所有源帧185是每一个源文件115中进行代码转换时足以为任何用户预览请求生成可接受的预览片段125的源帧185的子集。
在判定框216,如果媒体解析器已经指示源文件的所有源帧都已进行代码转换,则在一实施方式中,机会主义的代码转换器设置一个或多个指示,例如标志、表条目等,以指示源文件的所有源帧都已进行代码转换218。在一实施方式中,机会主义的代码转换器结束处理210。
在判定框216,如果媒体解析器未指示源文件的所有源帧都已进行代码转换,则参考图2C,在一实施方式中,在判定框260,确定合成器是否已经向机会主义的代码转换器发送编码请求;即,合成器是否已经请求为输出文件对一个或多个源帧进行代码转换。如果是,则在一实施方式中,机会主义的代码转换器向媒体解析器发送代码转换编码请求或命令,以便按照指定或预定义质量对一个或多个源帧进行代码转换266。在一实施方式中,机会主义的代码转换器结束处理210。
在判定框260,如果合成器未发出编码请求,则在一实施方式中,在判定框262,确定媒体解析器是否已经提供已经完成先前发出的代码转换编码请求的通知;即,媒体解析器已经为输出文件对所请求的源帧进行了代码转换。如果是,则在一实施方式中,机会主义的代码转换器通知合成器为输出文件请求进行代码转换的源帧已进行了代码转换264。在一实施方式中,机会主义的代码转换器结束处理210。
在判定框262,如果媒体解析器未提供已经完成待决代码转换编码请求的通知,则在一实施方式中,机会主义的代码转换器结束处理210。
图3A-3C示出了用于OFC系统100的示例媒体解析器160组件的逻辑流程。尽管参考在此所述的系统进行下面的讨论,但可在其它系统中实现所述操作。在此描述的操作不限于所示次序。另外,在其它替换实施方式中,可执行更多或更少的操作。此外,所描绘的操作可由示例媒体解析器160、示例媒体解析器160结合一个或多个其他OFC系统组件,或者由一个或多个其他OFC系统组件来执行。
参考图3A,在一实施方式中,在判定框300,确定媒体解析器是否从机会主义的代码转换器接收到代码转换预览请求;即,媒体解析器是否已被请求为向用户输出的预览片段对来自一个或多个源文件的源帧进行代码转换。如果是,则在一实施方式中,媒体解析器前往代码转换片段中也被称为当前源帧的起始源帧316。
参考图3B,在判定框320,确定当前源帧是否已进行了代码转换。如果是,则在一实施方式中,在判定框332,确定当前源帧是否是用于当前代码转换预览请求的最后一个源帧;即,为向用户输出当前预览片段是否还有任何源帧要进行代码转换。如果当前源帧是最后一个源帧,则在一实施方式中,媒体解析器通知机会主义的代码转换器对应于当前用户请求的采样片段的当前代码转换片段中将要代码转换的所有源帧都已进行了代码转换330。
参考图3C,在一实施方式中,如果当前预览片段中将要代码转换的所有源帧都已进行了代码转换,则在一实施方式中,在判定框340,确定源文件中是否还有任何源帧要进行代码转换。在一实施方式中,还要进行代码转换的任何源帧185意味着在源文件115中存在未进行代码转换的至少一个源帧185。在另一实施方式中,还要进行代码转换的任何源帧185意味着源文件115的源帧185的子集中的至少一个源帧185尚未进行代码转换,其中如果该源帧子集中的全部都已进行代码转换,则该子集支持为任何用户预览请求生成可接受的预览片段125。
在判定框340,如果没有源帧要进行代码转换,则在一实施方式中,媒体解析器通知机会主义的代码转换器将要代码转换的所有源帧都已进行了代码转换342。在一实施方式中,媒体解析器结束处理350。
在判定框340,如果有源帧要进行代码转换,则在一实施方式中,媒体解析器在源文件中标识开始代码转换的代码转换起始点,即起始源帧344。在一实施方式中,起始源帧是从媒体解析器160当前正在处理的源文件115的开头开始的尚未进行代码转换的第一个源帧185。在第二实施方式中,起始源帧是在为用户请求的采样片段124进行代码转换的情况下由媒体解析器160标识为潜在源帧185的源帧185,例如,比最后一个用户请求的采样片段124的起始源帧早十个源帧185的源帧185、紧跟在最后一个用户请求的采样片段124中的时间顺序上的最后一个源帧185之后的源帧185。在第三实施方式中,起始源帧是未针对先前的用户请求的采样片段124进行代码转换的源帧185。在其他替换实施方式中,起始源帧可以是其他标识的源帧185。
在一实施方式中,媒体解析器对起始源帧进行代码转换并且将所得经代码转换的帧存储在预览文件中346。
在一实施方式中,在判定框348,确定是否存在超时;即,供媒体解析器对源帧进行代码转换的预定时间限制是否已经期满。如果是,则在一实施方式中,媒体解析器结束处理350。
在判定框348,如果没有超时,则在一实施方式中,在判定框352,确定媒体解析器是否从机会主义的代码转换器接收到代码转换预览请求。如果否,则在一实施方式中,在判定框354,确定媒体解析器是否在它当前正在处理的源文件的末尾。如果否,则在一实施方式中,媒体解析器在源文件中标识要进行代码转换的下一源帧356,并且对该下一新源帧进行代码转换并将所得经代码转换的帧存储在预览文件中346。
在判定框354,如果媒体解析器在它正在处理的源文件的末尾,则在一实施方式中,在判定框340,确定是否还有任何源帧要进行代码转换。
在判定框352,如果媒体解析器已经接收到代码转换预览请求,则在一实施方式中,并且回头参考图3A,媒体解析器前往或以其他方式标识源文件中用于新代码转换预览请求的也被称为当前源帧的起始源帧316。
再次参考图3B,在判定框320,如果代码转换片段中的当前源帧尚未进行代码转换,则对该当前源帧进行代码转换并将所得经代码转换的帧存储在预览文件中322。
在一实施方式中,在判定框324,确定媒体解析器是否从机会主义的代码转换器接收到跳至代码转换片段中的下一新源帧的命令或通知。在一实施方式中,媒体解析器160可被指示跳至代码转换片段126中的下一新源帧185以支持预览器120向用户110输出预览片段125。
在判定框324,如果媒体解析器已被指示跳至代码转换片段中的下一新源帧,则在一实施方式中,媒体解析器跳至所标识的下一新源帧326,并且在判定框320确定该下一新源帧是否已经进行了代码转换。
在判定框324,如果媒体解析器未被指示跳至代码转换片段中的下一新源帧,则在一实施方式中,在判定框328,确定当前代码转换片段中是否还有任何源帧要进行代码转换。如果是,则在一实施方式中,媒体解析器前往代码转换片段中媒体解析器将对其进行代码转换的下一源帧(如果尚未进行代码转换的话),该下一源帧变成当前源帧334。在一实施方式中,要进行代码转换的下一源帧是代码转换片段126中从刚刚进行代码转换的源帧185开始的在时间顺序上的下一源帧185。在一替换实施方式中,要进行代码转换的下一源帧185是从刚刚进行代码转换的源帧185开始的预定或计算出的数量的源帧185。
在一实施方式中,在判定框336,确定是否已经从机会主义的代码转换器向媒体解析器发出另一代码转换预览请求。如果是,则再次参考图3A,在一实施方式中,媒体解析器最终化对它正在处理的当前源帧的代码转换,并且将所得经代码转换的帧存储在预览文件中314。在一实施方式中,媒体解析器为新发出的代码转换预览请求前往代码转换片段中也被称为当前源帧的起始源帧316。
在图3B的判定框336,如果未向媒体解析器发出代码转换预览请求,则在一实施方式中,在判定框320,确定当前源帧是否已经进行了代码转换。
在判定框328,如果对当前代码转换片段没有要进行代码转换的源帧,则在一实施方式中,媒体解析器通知机会主义的代码转换器代码转换片段中将进行代码转换的所有源帧都已进行了代码转换330。
再次参考图3A,在判定框300,如果不存在来自机会主义的代码转换器的代码转换预览请求,则在一实施方式中,在判定框302,确定媒体解析器是否从机会主义的代码转换器接收到代码转换编码请求;即,媒体解析器是否已被请求为输出文件对一个或多个源帧进行代码转换。如果否,则在一实施方式中,媒体解析器结束处理350。
在判定框302,如果媒体解析器接收到代码转换编码请求,则在一实施方式中,媒体解析器前往或以其他方式标识要为输出文件进行代码转换的第一个源帧304。在一实施方式中,媒体解析器以所请求的质量(或者在没有所请求的质量的情况下以预定质量或可另选地是以其他方式标识的质量)对所标识的源帧进行代码转换,并将所得经代码转换的帧存储在预览文件中306。
在一实施方式中,在判定框308,确定对输出文件是否还有源帧要进行代码转换。如果是,则在一实施方式中,媒体解析器前往或以其他方式标识要进行代码转换的下一源帧310。在一实施方式中,媒体解析器以适当的质量对该下一源帧进行代码转换并且将所得经代码转换的帧存储在预览文件中306。
在判定框308,如果对输出文件没有源帧要进行代码转换,则在一实施方式中,媒体解析器通知机会主义的代码转换器用于输出文件的所请求的所有源帧都已进行代码转换312。参考图3C,在一实施方式中,在判定框340,然后确定是否还有任何源帧要进行代码转换。
图4A-4B示出了用于OFC系统100的示例编码器170组件的示例逻辑流程。尽管参考在此所述的系统进行下面的讨论,但可在其它系统中实现所述操作。在此描述的操作不限于所示次序。另外,在其它替换实施方式中,可执行更多或更少的操作。此外,所描绘的操作可由示例编码器170、示例编码器170结合一个或多个其他OFC系统组件,或者由一个或多个其他OFC系统组件来执行。
参考图4A,在一实施方式中,编码器从合成器接收生成输出文件的命令400。在一实施方式中,编码器使用决定列表来标识要包括在输出文件中的第一帧以及要应用于该第一帧的任何处理405。
在判定框410,确定是否已经处理用于输出文件的所有帧;即,编码器是否已经标识要包括在输出文件中的所有帧。如果否,则在判定框415,确定要包括在输出文件中的所标识的当前帧是否已经进行代码转换以及在被指示的情况下是否已被处理;即,所标识的当前帧是否在预览文件中。如果否,则在一实施方式中,编码器将当前帧标识为要进行代码转换的源帧,并且如果被指示,则对该源帧应用一个或多个处理425。在一实施方式中,编码器使用决定列表来标识(如果有的话)要包括在输出文件中的时间顺序上的下一帧以及要应用于该下一帧的任何处理405。
在判定框415,如果确定当前帧已经进行代码转换并且在被指示的情况下已对该当前帧应用所指示的处理,即,当前帧是预览帧,则在一实施方式中,在判定框420,确定经代码转换的帧是否具有可接受的质量。在一实施方式中,预览文件190中的经代码转换的帧192可能不具有对于输出文件135的最终质量,因为这些经代码转换的帧先前已经以较低质量进行代码转换,该较低质量对于预览是可接受的并且耗费较少的时间的精力来帮助确保更及时的预览会话。
在判定框420,如果编码器当前关注的经代码转换的帧具有对于输出文件的可接受的质量,则在一实施方式中,编码器使用将对其应用任何指示的处理的对应的预览帧来包括在输出文件中430。在一实施方式中,编码器再次参考决定列表以标识要包括在输出文件中的下一帧以及要应用于该下一帧的任何处理405。
在判定框420,如果编码器当前关注的经代码转换的帧不具有可接受的质量,则在一实施方式中,编码器将对应的源帧标识为要进行代码转换的源帧,并且在被指示的情况下对该源帧应用一个或多个处理425。在一实施方式中,编码器使用决定列表来标识(如果有的话)要包括在输出文件中的时间顺序上的下一帧以及要应用于该下一帧的任何处理405。
在判定框410,如果已经处理用于输出文件的所有帧,则在一实施方式中并且参考图4B,在判定框435,确定是否存在用于输出文件的其对应的源帧将要进行代码转换的任何帧。如果否,则在一实施方式中,编码器对所得输出文件帧进行编码和/或压缩并存储最终化的输出文件455。在一实施方式中,编码器通知合成器已经生成输出文件460。在一实施方式中,编码器结束处理465。
在判定框435,如果存在用于输出文件的将要进行代码转换的源帧,则在一实施方式中,编码器通知合成器媒体解析器将对所标识的一个或多个源帧进行代码转换440。在一实施方式中,在判定框445,确定编码器是否从合成器接收到用于输出文件的所请求的所有源帧都已进行代码转换并且在被指示的情况下对这些源帧应用指定处理的通知。如果是,则在一实施方式中,编码器将新处理的经代码转换的帧包括在输出文件中450,并且对所得输出帧进行编码和/或压缩并存储最终化的输出文件455。
在判定框445,如果编码器尚未从合成器接收到用于输出文件的所请求的所有源帧都已进行代码转换并且按指示进行处理的通知,则在一实施方式中,编码器继续等待该来自合成器的通知445。
图5A-5C示出了用于OFC系统100的示例合成器140组件的示例逻辑流程。尽管参考在此所述的系统进行下面的讨论,但可在其它系统中实现所述操作。在此描述的操作不限于所示次序。另外,在其它替换实施方式中,可执行更多或更少的操作。此外,所描绘的操作可由示例合成器140、示例合成器140结合一个或多个其他OFC系统组件,或者由一个或多个其他OFC系统组件来执行。
参考图5A,在一实施方式中,在判定框500,确定合成器是否从UI接收到为用户采样片段生成预览片段的命令或通知。如果是,并且参考图5B,则在一实施方式中,在判定框530,确定是否存在足够的预览帧和/或经代码转换的帧可用于预览片段,该预览片段将构成可接受输出质量的预览片段以供用户预览。如果是,则在一实施方式中,合成器生成具有可用预览帧和/或经代码转换的帧的预览片段,对这些帧应用任何先前用户命令的处理532。在一实施方式中,合成器通知预览器可输出预览片段534。
在一实施方式中,在判定框536,确定是否存在可被包括在预览片段中的任何预览帧并且是否被包括在预览片段中。在该实施方式中,虽然存在可用于对于用户请求的采样片段124的预览片段125的预览帧195和/或经代码转换的帧192,但在对应的代码转换片段126中可能存在尚未进行代码转换的源帧185,并且如果这些源帧进行代码转换,则可提高预览片段125的质量。
在判定框536,如果可以为预览片段生成更多预览帧,则在一实施方式中,合成器向机会主义的代码转换器发送对当前用户请求的采样片段的代码转换预览请求538。在一实施方式中,合成器于是结束处理505。
在判定框536,如果不存在用于预览片段的缺失的预览帧,则在一实施方式中,合成器结束处理505。
在判定框530,如果不存在可用于当前预览片段的代码转换或预览帧,则在一实施方式中并且参考图3C,合成器向机会主义的代码转换器发送对当前用户请求的采样片段的代码转换预览请求570。在一实施方式中,合成器在经代码转换的帧可用时(即,在对应的源帧已由媒体解析器进行代码转换并被存储在其中合成器可访问这些源帧的预览文件中时)生成具有这些帧的预览片段572。
在一实施方式中,在判定框574,确定合成器是否从机会主义的代码转换器接收到对于当前预览请求的源帧已经进行代码转换的通知或某一信号或指示。如果否,则在一实施方式中,合成器继续在经代码转换的帧变得可用时生成具有这些帧的预览片段572。
在判定框574,如果合成器已经被通知媒体解析器已经对用于当前预览片段的源帧进行代码转换,则在一实施方式中,合成器最终化生成具有经代码转换的可用帧的预览片段并且根据先前的用户命令来应用任何处理576。在一实施方式中,合成器通知预览器可向用户输出预览片段578并结束处理505。
再次参考图5A,在判定框500,如果合成器未接收到生成预览片段的请求,则在一实施方式中,在判定框502,确定合成器是否从UI接收到修改一个或多个预览帧的命令。在一实施方式中,用户可请求通过对一个或多个预览帧应用处理(例如,淡入、淡出等)、对预览帧进行重新排序来修改一个或多个预览帧。如果合成器接收到修改一个或多个预览帧的命令,则在一实施方式中并且参考图5B,合成器按指示修改所指示的预览帧550。在一实施方式中,合成器在预览片段中包括用于该预览片段的自从合成器上一次生成或修改预览片段以来变得可用的任何新经代码转换的帧552。在一实施方式中,合成器适当地对预览片段中的新添加的经代码转换的帧应用任何用户指定的处理。
在一实施方式中,合成器更新决定列表以标识对任何预览帧作出的任何改变、对预览片段的经代码转换的帧添加、以及对任何新添加的经代码转换的帧作出的任何改变554。在一实施方式中,合成器生成新预览片段或可另选地修改现有预览片段以反映作出的改变556。在一实施方式中,合成器通知预览器准备好向用户输出预览片段558并且合成器最终化处理505。
再次参考图5A,在判定框502,如果不存在修改一个或多个预览帧的命令,则在一实施方式中,在判定框504,确定UI是否已经向合成器发出生成输出文件的命令。如果否,则在一实施方式中,最终化合成器处理505。
如果合成器接收到生成输出文件的命令,则在一实施方式中,合成器通知或以其他方式命令编码器生成所请求的输出文件506。在一实施方式中,在判定框508,确定编码器是否已经通知合成器需要为输出文件对一个或多个源帧进行代码转换。如果是,则在一实施方式中,合成器向机会主义的代码转换器发送标识要进行代码转换的源帧的编码请求,并且在被请求的情况下发送要应用于这些源帧的代码转换质量512。
在一实施方式中,在判定框514,确定所请求的源帧是否已进行代码转换。如果否,则在一实施方式中,合成器等待直到所请求的源帧已进行代码转换514。一旦所请求的源帧已进行代码转换,则在一实施方式中,合成器使用决定列表来确定是否要对刚刚为输出文件进行代码转换的任何经代码转换的帧应用任何处理,并且如果是,则对所标识的经代码转换的帧应用所指示的处理516。
在一实施方式中,合成器通知编码器所请求的源帧已进行代码转换518。在一实施方式中,在判定框510,确定编码器是否完成生成输出文件。如果是,则在一实施方式中,最终化合成器处理505。
在判定框510,如果编码器未最终化输出文件,则在一实施方式中,在判定框508,确定编码器是否需要为输出文件对一个或多个源帧进行代码转换。如果否,则在一实施方式中,在判定框510,确定编码器是否最终化生成输出文件。
虽然在此处所讨论的各实施方式中,任务已被分配给示例OFC系统100的所标识的各个组件,但在其他实施方式中,所述任务可由其他和/或附加组件执行。例如,在另一实施方式中,机会主义的代码转换器150和媒体解析器160的任务可被组合并由媒体解析器来执行。作为另一示例,在又一实施方式中,机会主义的代码转换器150和合成器140的任务可被组合并由合成器来执行。在还有一些其他示例和实施方式中,可将任务分配给其他和/或不同的系统组件。
计算设备系统配置
图6是示出其上可实现一实施方式的示例性计算设备系统600的框图。计算设备系统600包括用于传递信息的总线605或其它机制,以及与总线605耦合的用于处理信息的处理单元610。计算设备系统600还包括系统存储器615,它可以是易失性或动态的,诸如随机存取存储器(RAM),也可以是非易失性或静态的,诸如只读存储器(ROM)或闪存,或者可以是两者的某种组合。系统存储器615耦合到总线605以便存储由处理单元610执行的信息与指令,并且还可用于在处理单元610执行指令期间存储临时变量或其它中间信息。系统存储器615通常包含操作系统以及一或多个程序,并且还包括程序数据。
在一实施方式中,存储设备620,诸如磁盘或光盘,也耦合到总线605以便存储信息,包括包含指令和/或数据的程序代码。
计算设备系统600通常包括一或多个显示设备635,诸如但不限于显示屏,例如阴极射线管(CRT)或液晶显示器(LCD)、打印机以及一或多个扬声器,用于向计算设备用户提供信息。计算设备系统600通常还包括一或多个输入设备630,诸如但不限于键盘、鼠标、跟踪球、笔、语音输入设备和触摸输入设备,计算设备用户可使用它们来将信息与命令选择传递至处理单元610。所有这些设备在本领域是已知的并且在此不必详述。
处理单元610执行包含在系统存储器615中的一或多个程序指令的一或多个序列。这些指令可从包括但不限于存储设备620的另一计算设备可读介质读取到系统存储器620中。在替换实施方式中,可使用硬连线电路来代替软件程序指令或结合软件程序指令使用硬连线电路。计算设备系统环境不限于硬件电路和/或软件的任何特定组合。
如此处所使用的术语“计算设备可读介质”指的是可参与向处理单元610提供程序指令以便于执行的任何介质。这样的介质可采取许多形式,包括但不限于存储介质和传输介质。存储介质的示例包括但不限于:RAM、ROM、EEPROM、闪存、CD-ROM、数字多功能盘(DVD)、磁带盒、磁带、磁盘存储或任何其它磁性介质,软盘、软磁盘、穿孔卡、纸带或具有孔图案的任何其它物理介质,存储器芯片或盒式磁带。计算设备系统600的系统存储器615和存储设备620是存储介质的附加示例。传输介质的示例包括但不限于:诸如同轴电缆、铜线和光纤等有线介质,以及诸如光信号、声学信息、射频(RF)信号和红外信号等无线介质。
计算设备系统600还包括耦合到总线605的一或多个通信连接650。通信连接650提供从计算设备系统600耦合至局域网(LAN)665和/或包括万维网或因特网670在内的广域网(WAN)上的其它计算设备的双向数据通信。通信连接650的示例包括但不限于:综合业务数字网(ISDN)卡、调制解调器、LAN卡以及能够发送和接收电、电磁、光、声学、RF或红外信号的任何设备。
计算设备系统600还包括耦合到总线605的一个或多个通信连接650,该一个或多个通信连接提供耦合在计算设备系统600与连接到该计算设备系统和/或与该计算设备系统通信的其他设备之间的单向或双向数据通信。这样的其他设备的示例包括但不限于:摄像机155、磁带盘165、CD 175、照相机、录像机、视频捕捉和转换设备等。
由计算设备系统600接收到的通信可包括程序指令和程序数据。计算设备系统600接收到的程序指令可由程序单元610在接收到它们时执行,和/或存储在存储设备620或其它非易失性存储中以供稍后执行。
结论
尽管在此描述了各种实施方式,但这实施方式仅作为示例提供,而并非旨在限制所要求保护主题的范围。保持在所附权利要求书的范围内的许多变体是可能的。这些变体在审查这里的说明书、附图和权利要求书之后是清楚的。因此,除了用以下权利要求书及其等效方案来限定之外,所要求保护主题的宽度和范围不受限制。

Claims (20)

1.一种用于机会主义的源文件帧预览的方法,所述方法包括:
接收第一预览请求;
响应于所述第一预览请求,标识响应于所述第一预览请求要代码转换的第一采样片段的起始点和所述响应于所述第一预览请求要代码转换的第一采样片段的结束点,其中所述第一采样片段包括第一源文件的从所述第一采样片段的起始点至所述第一采样片段的结束点的第一帧子集;
在所述第一预览请求之后,接收第二预览请求;
响应于所述第二预览请求,标识响应于所述第二预览请求要代码转换的第二采样片段的起始点和所述响应于所述第二预览请求要代码转换的第二采样片段的结束点,其中所述第二采样片段包括第二源文件的从所述第二采样片段的起始点至所述第二采样片段的结束点的第二帧子集;
对所述第二子集的帧的至少一部分进行代码转换;以及
响应于对所述第二子集的帧的至少一部分进行代码转换的完成,对所述第一子集的尚未经代码转换的第一帧进行代码转换。
2.如权利要求1所述的用于机会主义的源文件帧预览的方法,其特征在于,所述源文件是视频文件。
3.如权利要求1所述的用于机会主义的源文件帧预览的方法,其特征在于:
对至少所述第二子集的帧进行代码转换包括:
在对不在所述第二片段中的任何帧进行代码转换之前对所述第二片段中的至少多个帧进行代码转换,所述第二片段中的多个帧是所述第二片段的预览的至少一部分;并且
其中所述方法进一步包括:在根据所述第一预览请求或所述第二预览请求没有帧要进行代码转换之后对不在所述第一片段中且不在所述第二片段中的帧进行代码转换。
4.如权利要求3所述的用于机会主义的源文件帧预览的方法,其特征在于,在所述第一预览请求和所述第二预览请求的帧被代码转换之后,没有根据所述第一预览请求或所述第二预览请求要进行代码转换的源帧。
5.如权利要求3所述的用于机会主义的源文件帧预览的方法,其特征在于,在所述第一片段和所述第二片段的所有的帧被代码转换之后,没有根据所述第一预览请求或所述第二预览请求要进行代码转换的源帧。
6.如权利要求1所述的用于机会主义的源文件帧预览的方法,其特征在于,所述方法进一步包括:
在接收所述第二预览请求之前对所述第一片段的帧进行代码转换。
7.如权利要求6所述的用于机会主义的源文件帧预览的方法,其特征在于:在接收所述第二预览请求之前对所述第一片段的帧进行代码转换包括:
在对不在所述第一片段中的任何帧进行代码转换之前对所述第一片段中的至少多个帧进行代码转换,所述第一片段中的多个帧是所述第一片段的预览的至少一部分;并且
其中对所述第二子集的帧进行代码转换包括:在对不在所述第二片段中的任何帧进行代码转换之前对所述第二片段中的至少多个帧进行代码转换,所述第二片段中的多个帧是所述第二片段的预览的至少一部分。
8.如权利要求1所述的用于机会主义的源文件帧预览的方法,其特征在于,所述方法进一步包括:
将经过代码转换的每一个帧存储为经代码转换的帧;
使用所述经代码转换的帧来生成预览片段中的预览帧;
响应于预览请求输出所述预览片段;
生成包括标识所述预览片段的经代码转换的帧的信息的决定列表;
使用所述决定列表以及一个或多个经代码转换的帧来生成输出文件。
9.如权利要求1所述的用于机会主义的源文件帧预览的方法,其特征在于,还包括:
接收针对第二源文件的第三采样片段的第三预览请求,其中所述第三采样片段由所述第二源文件中的第三帧子集组成;
响应于所述第三预览请求停止对所述第一文件的代码转换;以及
在对所述第二文件中的不在所述第三部分内的至少一个帧进行代码转换之后,恢复对所述第一文件的代码转换。
10.一种用于实现机会主义的帧高速缓存的方法,所述方法包括:
响应于第一预览请求对源文件的第一部分进行代码转换,所述第一部分与所述第一预览请求相关联并且所述第一部分由第一起始点和第一结束点定义,并且其中所述第一结束点定义针对所述第一预览请求要被代码转换的最后一个源帧;
接收第二预览请求,所述第二预览请求是所述源文件的第二部分,所述第二部分由第二起始点和第二结束点定义,并且其中所述第二结束点定义所述源文件中响应于所述第二预览请求要被代码转换的最后一个源帧;
响应于接收到所述第二预览请求:预清空所述第一部分的代码转换;以及
对所述源文件的所述第二部分进行代码转换;以及
响应于对所述第二部分的代码转换的完成,恢复所述第一部分的代码转换。
11.如权利要求10所述的用于实现机会主义的帧高速缓存的方法,其特征在于,所述方法进一步包括:存储经代码转换的第一部分和经代码转换的第二部分。
12.如权利要求10所述的用于实现机会主义的帧高速缓存的方法,其特征在于,所述方法进一步包括:对至少所述第一部分应用处理。
13.如权利要求11所述的用于实现机会主义的帧高速缓存的方法,其特征在于,所述方法进一步包括:将经代码转换的第一部分和经代码转换的第二部分以重新组织过的顺序存储在输出文件内。
14.如权利要求10所述的用于实现机会主义的帧高速缓存的方法,其特征在于:对所述第二部分进行代码转换包括:
在对不在所述第二部分中的任何帧进行代码转换之前对所述第二部分中的至少多个帧进行代码转换,所述第二部分中的多个帧是所述第二部分的预览的至少一部分。
15.如权利要求14所述的用于实现机会主义的帧高速缓存的方法,其特征在于,所述方法进一步包括:
在对既不在所述第一部分中又不在所述第二部分中的任何帧进行代码转换之前完成对所述第一部分的代码转换。
16.如权利要求15所述的用于实现机会主义的帧高速缓存的方法,其特征在于,所述方法进一步包括:
响应于完成对所述第一部分的代码转换,对所述源文件的第一个未经代码转换的帧进行代码转换。
17.一种其中编码有指令的计算机可读存储器,所述指令用于执行操作,操作包括:
响应于第一预览请求对源文件的第一部分进行代码转换,所述第一部分与所述第一预览请求相关联并且所述第一部分由第一起始点和第一结束点定义,并且其中所述第一结束点定义所述源文件中响应于所述第一预览请求要被代码转换的最后一个源帧;
接收第二预览请求,所述第二预览请求是所述源文件的第二部分,所述第二部分由第二起始点和第二结束点定义,并且其中所述第二结束点定义所述源文件中响应于所述第二预览请求要被代码转换的最后一个源帧;
响应于接收到所述第二预览请求:
预清空所述第一部分的代码转换;以及
对所述源文件的所述第二部分进行代码转换;以及
响应于对所述第二部分的代码转换的完成,恢复所述第一部分的代码转换。
18.如权利要求17所述的计算机可读存储器,其特征在于:对所述第二部分进行代码转换包括:
在对不在所述第二部分中的任何帧进行代码转换之前对所述第二部分中的至少多个帧进行代码转换,所述第二部分中的多个帧是所述第二部分的预览的至少一部分。
19.如权利要求18所述的计算机可读存储器,其特征在于,所述操作进一步包括:
在对既不在所述第一部分中又不在所述第二部分中的任何帧进行代码转换之前完成对所述第一部分的代码转换。
20.如权利要求19所述的计算机可读存储器,其特征在于,所述操作进一步包括:
响应于完成对所述第一部分的代码转换,对所述源文件的第一个未经代码转换的帧进行代码转换。
CN201810444542.6A 2010-04-01 2011-03-31 实现机会主义的源文件帧预览和帧高速缓存的方法 Active CN108833349B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/752,166 2010-04-01
US12/752,166 US9691430B2 (en) 2010-04-01 2010-04-01 Opportunistic frame caching
CN2011100874399A CN102214198A (zh) 2010-04-01 2011-03-31 机会主义的帧高速缓存

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN2011100874399A Division CN102214198A (zh) 2010-04-01 2011-03-31 机会主义的帧高速缓存

Publications (2)

Publication Number Publication Date
CN108833349A true CN108833349A (zh) 2018-11-16
CN108833349B CN108833349B (zh) 2021-12-07

Family

ID=44711071

Family Applications (2)

Application Number Title Priority Date Filing Date
CN2011100874399A Pending CN102214198A (zh) 2010-04-01 2011-03-31 机会主义的帧高速缓存
CN201810444542.6A Active CN108833349B (zh) 2010-04-01 2011-03-31 实现机会主义的源文件帧预览和帧高速缓存的方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN2011100874399A Pending CN102214198A (zh) 2010-04-01 2011-03-31 机会主义的帧高速缓存

Country Status (4)

Country Link
US (1) US9691430B2 (zh)
EP (2) EP2553572B1 (zh)
CN (2) CN102214198A (zh)
WO (1) WO2011123146A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9247276B2 (en) * 2008-10-14 2016-01-26 Imagine Communications Corp. System and method for progressive delivery of media content
US9729919B2 (en) 2013-06-13 2017-08-08 Microsoft Technology Licensing, Llc Remultiplexing bitstreams of encoded video for video playback
CN116095336A (zh) * 2019-09-23 2023-05-09 谷歌有限责任公司 用于转码视频的方法、设备和计算机可读介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997030551A1 (en) * 1996-02-14 1997-08-21 Olivr Corporation Ltd. Method and systems for progressive asynchronous transmission of multimedia data
WO1997039411A1 (en) * 1996-04-12 1997-10-23 Avid Technology, Inc. A multimedia system with improved data management mechanisms
US20060184684A1 (en) * 2003-12-08 2006-08-17 Weiss Rebecca C Reconstructed frame caching
CN101427579A (zh) * 2005-12-01 2009-05-06 诺基亚公司 媒体流的时移表现
CN101594518A (zh) * 2000-12-22 2009-12-02 索尼株式会社 分布式随选媒体代码转换系统和方法
CN101669363A (zh) * 2007-04-24 2010-03-10 雅虎公司 通过网络来预览媒体的方法和系统

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5742892A (en) * 1995-04-18 1998-04-21 Sun Microsystems, Inc. Decoder for a software-implemented end-to-end scalable video delivery system
US6370543B2 (en) 1996-05-24 2002-04-09 Magnifi, Inc. Display of media previews
JP3377677B2 (ja) 1996-05-30 2003-02-17 日本電信電話株式会社 映像編集装置
TW432372B (en) * 1997-09-17 2001-05-01 Matsushita Electric Ind Co Ltd Optical disc, video data editing apparatus, computer -readable recording medium storing an editing program, reproduction apparatus for the optical disc, and computer -readable recording medium storing an reproduction program
US20020057898A1 (en) * 1997-12-19 2002-05-16 James Oliver Normile Method and apparatus for trick play of bitstream data
US6226038B1 (en) 1998-04-03 2001-05-01 Avid Technology, Inc. HDTV editing and effects previsualization using SDTV devices
US7242847B1 (en) 1999-06-18 2007-07-10 Intel Corporation Systems and methods for editing video streams using a grid-based representation
US6490320B1 (en) 2000-02-02 2002-12-03 Mitsubishi Electric Research Laboratories Inc. Adaptable bitstream video delivery system
US6975629B2 (en) * 2000-03-22 2005-12-13 Texas Instruments Incorporated Processing packets based on deadline intervals
US8126313B2 (en) 2000-06-28 2012-02-28 Verizon Business Network Services Inc. Method and system for providing a personal video recorder utilizing network-based digital media content
US7031288B2 (en) * 2000-09-12 2006-04-18 Sri International Reduced-overhead protocol for discovering new neighbor nodes and detecting the loss of existing neighbor nodes in a network
US6975752B2 (en) * 2001-01-31 2005-12-13 General Electric Company Imaging system including detector framing node
US7280738B2 (en) * 2001-04-09 2007-10-09 International Business Machines Corporation Method and system for specifying a selection of content segments stored in different formats
IL159537A0 (en) * 2001-06-28 2004-06-01 Omnivee Inc Method and apparatus for control and processing of video images
US7580577B2 (en) 2002-12-09 2009-08-25 Canon Kabushiki Kaisha Methods, apparatus and computer products for generating JPEG2000 encoded data in a client
FR2849332A1 (fr) * 2002-12-20 2004-06-25 St Microelectronics Sa Procede et dispositif et decodage et d'affichage en marche arriere d'images mpeg, circuit pilote video et boitier decodeur incorporant un tel dispositif
US8995536B2 (en) * 2003-07-23 2015-03-31 Broadcom Corporation System and method for audio/video synchronization
US7986337B2 (en) * 2004-09-27 2011-07-26 Given Imaging Ltd. System and method for editing an image stream captured in vivo
US7669121B2 (en) * 2005-01-19 2010-02-23 Microsoft Corporation Transcode matrix
US7110605B2 (en) * 2005-02-04 2006-09-19 Dts Az Research, Llc Digital intermediate (DI) processing and distribution with scalable compression in the post-production of motion pictures
US7457915B2 (en) 2005-04-07 2008-11-25 Microsoft Corporation Intelligent media caching based on device state
US7669130B2 (en) * 2005-04-15 2010-02-23 Apple Inc. Dynamic real-time playback
US7417646B1 (en) 2005-04-16 2008-08-26 Apple Inc. Background rendering in video compositing
DE102005059044A1 (de) 2005-12-08 2007-06-14 Deutsche Thomson-Brandt Gmbh Verfahren zum Bearbeiten von Medieninhalten in einer Netzwerkumgebung sowie Gerät zur Vorratsspeicherung von Medien-Daten
US8300701B2 (en) 2005-12-09 2012-10-30 Avid Technology, Inc. Offspeed playback in a video editing system of video data compressed using long groups of pictures
US20080040215A1 (en) * 2006-04-06 2008-02-14 Ad Infuse, Inc. Mid-Roll Insertion of Digital Media
JP2010527051A (ja) * 2007-03-30 2010-08-05 グーグル・インコーポレーテッド モバイル装置のための文書処理
US7818355B2 (en) 2007-11-07 2010-10-19 Mills Brendon W System and method for managing content
US7925774B2 (en) * 2008-05-30 2011-04-12 Microsoft Corporation Media streaming using an index file
US8570441B2 (en) 2008-06-11 2013-10-29 Microsoft Corporation One pass video processing and composition for high-definition video
CN102782665B (zh) * 2010-03-09 2016-01-13 桑迪士克以色列有限公司 在数据存储设备处组合用户内容与补充内容
US9301020B2 (en) * 2010-11-30 2016-03-29 Google Technology Holdings LLC Method of targeted ad insertion using HTTP live streaming protocol
US20120159499A1 (en) * 2010-12-17 2012-06-21 Verizon Patent And Licensing Inc. Resource optimization
CN102984600B (zh) 2012-12-12 2015-03-11 成都索贝数码科技股份有限公司 一种基于互联网http协议的非线性编辑软件按时间分片访问文件的方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997030551A1 (en) * 1996-02-14 1997-08-21 Olivr Corporation Ltd. Method and systems for progressive asynchronous transmission of multimedia data
WO1997039411A1 (en) * 1996-04-12 1997-10-23 Avid Technology, Inc. A multimedia system with improved data management mechanisms
CN101594518A (zh) * 2000-12-22 2009-12-02 索尼株式会社 分布式随选媒体代码转换系统和方法
US20060184684A1 (en) * 2003-12-08 2006-08-17 Weiss Rebecca C Reconstructed frame caching
CN101427579A (zh) * 2005-12-01 2009-05-06 诺基亚公司 媒体流的时移表现
CN101669363A (zh) * 2007-04-24 2010-03-10 雅虎公司 通过网络来预览媒体的方法和系统

Also Published As

Publication number Publication date
US20110246883A1 (en) 2011-10-06
EP3331245A1 (en) 2018-06-06
EP2553572B1 (en) 2018-01-24
EP2553572A4 (en) 2013-10-30
EP2553572A1 (en) 2013-02-06
CN108833349B (zh) 2021-12-07
CN102214198A (zh) 2011-10-12
WO2011123146A1 (en) 2011-10-06
US9691430B2 (en) 2017-06-27
EP3331245B1 (en) 2019-11-27

Similar Documents

Publication Publication Date Title
JP5153647B2 (ja) デジタルマルチメディアのオンラインリミックスのための方法及びシステム
US7962639B2 (en) Media processing technologies
CN103167222B (zh) 一种非线性云编辑系统
CN1481643A (zh) 音频和/或视频资料的传输和接收
JP2009524297A (ja) メディアコンテンツに編集情報を結合するためのシステム及び方法
WO2008144284A1 (en) Proxy editing and rendering for various delivery outlets
WO2007084869A2 (en) Method and system for creating and applying dynamic media specification creator and applicator
CN108833349A (zh) 机会主义的帧高速缓存
US20160119407A1 (en) Transfer device, client apparatus, server apparatus, reproduction apparatus and transfer method
CN101681661A (zh) 编辑装置和编辑方法
TW201939960A (zh) 資訊處理裝置、資訊處理方法及程式
JP2007150786A (ja) 送受信システム、情報処理装置および情報処理方法、並びにプログラム
JP2007193888A (ja) 記録装置および方法、プログラム、並びに符号化装置および方法
JP2009524296A (ja) メディアコンテンツに対する編集内容を記録するためのシステム及び方法
WO2005043901A1 (ja) レジューム再生システム
JP5088215B2 (ja) 情報処理システム及び情報処理方法、並びにプログラム
JP4251278B2 (ja) 情報処理装置
JP2011081457A (ja) 情報処理装置および方法
CN101071617A (zh) 再现装置和再现方法
JP4549717B2 (ja) マルチメディアデータ統合装置、マルチメディアデータ統合方法およびマルチメディアデータ統合プログラム
CN115695843A (zh) 预制视频播放方法、服务器、终端、介质及系统
JP2009213142A (ja) 画像再生装置及び画像再生方法
JP4314923B2 (ja) プログラム、データ処理方法およびその装置
JP4314922B2 (ja) プログラム、データ処理方法およびその装置
JP2011030090A (ja) 素材管理システム、素材管理サーバ、映像収録装置及び素材管理方法

Legal Events

Date Code Title Description
PB01 Publication
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