CN104185982B - 视频处理方法和实施所述方法的视频设备 - Google Patents
视频处理方法和实施所述方法的视频设备 Download PDFInfo
- Publication number
- CN104185982B CN104185982B CN201380011149.3A CN201380011149A CN104185982B CN 104185982 B CN104185982 B CN 104185982B CN 201380011149 A CN201380011149 A CN 201380011149A CN 104185982 B CN104185982 B CN 104185982B
- Authority
- CN
- China
- Prior art keywords
- frame
- video
- decoding
- decoded
- buffered
- 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
Links
- 238000000034 method Methods 0.000 title claims description 65
- 238000003672 processing method Methods 0.000 title description 2
- 239000000872 buffer Substances 0.000 claims abstract description 41
- 230000015654 memory Effects 0.000 claims abstract description 20
- 230000003139 buffering effect Effects 0.000 claims description 59
- 238000003860 storage Methods 0.000 claims description 32
- 238000012545 processing Methods 0.000 claims description 26
- GNFTZDOKVXKIBK-UHFFFAOYSA-N 3-(2-methoxyethoxy)benzohydrazide Chemical compound COCCOC1=CC=CC(C(=O)NN)=C1 GNFTZDOKVXKIBK-UHFFFAOYSA-N 0.000 claims 2
- 238000004080 punching Methods 0.000 claims 1
- 230000004044 response Effects 0.000 claims 1
- 230000006835 compression Effects 0.000 description 7
- 238000007906 compression Methods 0.000 description 7
- 238000004590 computer program Methods 0.000 description 6
- 238000007599 discharging Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 101000969688 Homo sapiens Macrophage-expressed gene 1 protein Proteins 0.000 description 1
- 102100021285 Macrophage-expressed gene 1 protein Human genes 0.000 description 1
- 238000012300 Sequence Analysis Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/76—Television signal recording
- H04N5/78—Television signal recording using magnetic recording
- H04N5/782—Television signal recording using magnetic recording on tape
- H04N5/783—Adaptations for reproducing at a rate different from the recording rate
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B27/00—Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
- G11B27/005—Reproducing at a different information rate from the information rate of recording
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/00007—Time or data compression or expansion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/432—Content retrieval operation from a local storage medium, e.g. hard-disk
- H04N21/4325—Content retrieval operation from a local storage medium, e.g. hard-disk by playing back content from the storage medium
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
- H04N21/44004—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N9/00—Details of colour television systems
- H04N9/79—Processing of colour television signals in connection with recording
- H04N9/80—Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
- H04N9/804—Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components
- H04N9/8042—Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components involving data reduction
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/00007—Time or data compression or expansion
- G11B2020/00072—Time or data compression or expansion the compressed signal including a video signal
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Databases & Information Systems (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Television Signal Processing For Recording (AREA)
Abstract
本发明涉及缓冲和解码原始视频流的编码帧,借以产生反向视频流。在原始视频流的帧之间选择将要显示的帧(602),所述帧的选择基于反向视频流的帧显示次序来进行。检查解码帧的列表中是否原始视频流中对解码所选择的帧必需的所有参考帧已被解码,并且相对解码帧是否实际上被缓冲(702‑703)。如果是这种情况,那么解码所选择的帧。如果不是这种情况,那么解码所选择帧中不在解码帧的列表中的所有参考帧(706‑707),并且缓冲所述相对解码的参考帧,其中如果没有缓冲存储区可使用,那么就释放存储不存在于将要显示的帧的列表(1000)中的最早解码帧并且不存储所选择帧的参考帧的缓冲区,并在所释放的缓冲区中缓冲所述解码帧(901‑912)。
Description
技术领域
本发明涉及视频处理方法的领域,并且具体来说,涉及用于视频流的反向播放(倒回(rewind))的视频处理方法。
本发明优选地应用于如机顶盒的视频设备中,所述视频设备具有可用于视频处理的有限存储器。
背景技术
数字视频流由应按顺序显示的多个视频帧组成;视频流的品质越高,对应流的大小(以字节为单位)越大。
为了减小所需的传输带宽或所需的存储空间,众所周知的是,根据不同的压缩标准来压缩视频流。
MPEG视频采用三种不同的压缩算法以用于压缩帧:I帧,无需其它的帧被解码(帧内编码帧);P帧,需要前一个P帧被解码(帧间编码帧);以及B帧,需要前一个和下一个I帧或P帧被解码(帧间编码帧)。
因此,MPEG视频流包括I帧、P帧和B帧的序列。视频序列的长度取决于视频流的内容,并且可多达几Mb。
尽管在正向播放中仅应缓冲少量视频帧以便显示视频帧的正确序列,但是倒回需要存储视频序列的所有帧以便解码所述序列的最后一个帧,即,应在反向模式中最先显示的帧。
如机顶盒(STB)和电视机的大多数视频设备不具有用于缓冲长视频序列的所有视频帧的这种大型RAM存储器,因此视频流的倒回需要一些技巧。
具体来说,当需要视频设备来支持“特技模式”时,即在不同速度下播放视频流(正向播放或反向播放)时,会更深刻地体会到这个问题。在这种情况下,如果速度高于x1,那么应其它的帧添加至将要显示的帧序列中。
为了减小反向播放MPEG视频所必需的缓冲量,已知的是在视频设备以倒回模式操作时仅显示I帧。然而,这种解决方案具有的缺点是:可使得用户不悦的差动视频输出。
IBM名下的美国专利US 6,327,421公开一种方法,所述方法用于在包括视频服务器和客户端的MPEG传输系统中实现快速正向播放和倒回。MPEG压缩画面的原始序列的比特流被存储来用于正常播放。随后,原始序列中由每一第n个画面组成的子序列被压缩成I画面,同时确保压缩流中的所有画面具有相等的比特数。这种流称为辅助流。对快速正向播放的客户端请求由视频服务器响应,所述视频服务器传输来自辅助流的I画面子集。快速反向播放请求以相同方式获得满足,例外之处在于I帧是以相反次序传输。
US 6,327,421所建议的解决方案并不令人满意,因为为了获得流畅的视频倒回,必需产生具有大量I帧的辅助视频流,已知所述辅助视频流未受过多压缩。
另外,US 6,327,421所公开的解决方案用于在相对于由用户操作的视频设备较远的一个位置中产生反向视频流。因此,这种解决方案无法用于视频流的局部倒回,即无法在未连接至远程视频服务器的单一视频设备中使用。
因此,存在对不需要分配巨大量资源的流畅倒回的需求。
发明内容
因此,本发明的一个目标是提出一种克服已知视频设备的倒回缺点的视频处理方法和视频设备。
具体来说,本发明的一个目标是提出一种用于视频流快速倒回的方法,所述方法允许对正在显示的视频流的流畅观看。
本发明的另一个目标是提出一种允许产生输出视频流的视频设备,并且具体来说是机顶盒,所述输出视频流一旦在屏幕上显示时就不存在从一个画面到另一个画面的匆促过渡(rush passage)。
本发明的这些目标和其它目标是借助于包括所附权利要求书的特征的视频处理方法和视频设备来实现,所述权利要求书是本说明书的整体部分。
发明人已想到一种用于从原始视频流产生反向视频流的视频处理方法。缓冲和解码原始视频流的编码帧,借以产生反向视频流,其中根据一个次序来组织解码帧,所述次序与原始视频流的显示次序相反。根据所述方法,在原始视频流的帧之间选择将要显示的帧,帧的选择基于反向视频流的帧显示次序来进行。所述方法进一步用于检查解码帧的列表中是否原始视频流中对解码所选择的帧必需的所有参考帧已被解码,并且相对解码帧是否实际上被缓冲。如果所有参考帧已被解码并且实际上被缓冲,那么解码所选择的帧。如果并非所有参考帧已被解码并且实际上被缓冲,那么所述方法用于解码所选择帧中不在解码帧的列表中的所有参考帧,并且缓冲所述相对解码的参考帧,其中如果没有缓冲存储区(buffermemory)可用于缓冲一个解码帧,那么就释放存储不存在于将要显示的帧的列表中的最早解码帧并且不存储所选择帧的参考帧的缓冲区,并在所释放的缓冲区中缓冲所述解码帧。一旦所选择的帧被解码和缓冲,就以用于将所选择的解码帧作为所述反向视频流的帧输出的次序信息更新将要显示的帧的列表。选择原始视频流的下一个视频帧作为反向视频流的下一个视频帧,随后针对所述下一个视频流重复所述方法的选择和解码步骤。
这种解决方案具有的优点是反向视频流的帧可在较短时间内用于显示,因为在可开始反向视频流的输出之前不必解码和存储原始视频流的所有视频帧。
在一个实施方案中,如果参考帧中的一个未被解码和缓冲,那么针对参考帧递归地重复所述方法的选择和解码步骤,直到所述一个参考帧已被解码和缓冲为止。
这种递归解决方案允许减小用于实施所述方法的所需缓冲存储区。
在优选的实施方案中,视频处理方法在单一设备中执行。因此无需产生辅助流的外部装置。
在优选的实施方案中,反向视频流的至少一个视频序列包括原始视频流的所有帧。这种解决方案用于流畅倒回。
在一个实施方案中,所述方法用于缓冲原始视频流的至少两个MPEG视频序列,并且如果没有缓冲存储区可用于存储所述两个MPEG视频序列,那么所述方法就用于根据不同的方法来产生反向视频流,例如,通过仅播放MPEG视频序列的I帧来产生反向视频流。这种解决方案灵活并且高效。
在一个优选的实施方案,所述方法进一步包括以下步骤:对所述原始视频流的所缓冲的编码帧编索引以便定义所述帧显示次序,并实施帧选择和帧解码的步骤。这种解决方案允许对将要显示的视频帧的快速选择。
在一个方面中,本发明还涉及计算机程序和视频设备,所述程序和视频设备适合于实施根据以下描述和权利要求中书中提出的教导内容的视频处理方法。
附图说明
在视频处理方法和用于视频流反向播放的相关系统的优选、非排他性实施方案的详细描述中,本发明的其它特征和优点将变得明显,所述实施方案借助于附图而描述成本发明的非限制性实施例,在附图中:
-图1示意性地表示根据本发明的视频设备;
-图2示意性地表示MPEG视频流,
-图3为根据本发明的实施方案的视频处理方法的流程图;
-图4为显示图3的视频处理方法的线程的流程图,
-图5为显示图3的视频处理方法的序列加载线程的流程图。
-图6为显示图3的视频处理方法的序列解码线程的流程图。
-图7和图8为在图6的序列解码线程期间执行的帧解码线程的流程图。
-图9为在图7和图8的帧解码线程期间执行的缓冲区释放线程的流程图。
-图10示意性地表示将要显示的帧的列表。
这些图式例示出本发明的不同方面和实施方案,且在适当情况下,不同图中的相同结构、部件、材料和/或元件由相同参考数字指示。
具体实施方式
尽管本发明容许各种修改和替代构造,但是图式中已示出了本发明的某些说明性实施方案,并且将在以下详细描述。然而,应理解的是,不意图将本发明限制于所公开的特定形式,而相反的是,本发明将涵盖属于如权利要求书中所限定的本发明的精神和范畴内的所有修改、替代构造和等效物。
在以下描述和图式中,相同元件使用相同参考数字来标识。除非另有说明,否则“例如(e.g.)”、“等(etc.)”和“或(or)”的使用指示无限制的非排他性替代物。除非另有说明,否则“包括(including)”的使用意思是“包括但不限于”。
图1示意性地例示视频设备100。为清楚起见,图1中仅表示出视频设备100的最重要功能块,尽管意图在视频设备100上可提供其它特征。在以下实施例中,视频设备100为机顶盒,然而在其它实施方案中,视频设备100可为适合于输出视频信号或在屏幕上直接显示视频信号的任何装置;举例来说,所述视频设备可为电视机、DVR(数字视频录像机)、移动电话或掌上计算机。
视频设备100包括用于接收数字电视信号的前端101,所述数字电视信号特别是包括MPEG压缩视频包的传输流。前端101包括调谐器,所述调谐器用于调谐用户选择的视频信道并且向处理器102提供IF(中频)信号。
处理器102包括CPU(中央处理单元1020)、音频处理器1021、视频处理器1022、系统接口块1023、连接性块1024。这些块之间的通信借助于例如IC2总线的总线1025来实现。
来自前端101的电视信号由处理器102接收,其中这些电视信号在由CPU 1020执行的剖析程序(parser)之前被解调,以便分离所接收的传输流的视频包和音频包。视频包由视频处理器1022处理,而音频包由音频处理器1021处理。
系统接口块1023允许与包括不同类型的存储器的存储块103通信:非易失性存储器1030(例如,闪存(FLASH)、NAND、NOR)、易失性存储器1031(RAM、DRAM)和存储装置1032(例如,硬盘驱动器HDD或固态驱动器SDD)。
非易失性存储器存储供视频设备100的正确引导和操作所必需的驱动程序和应用程序,而存储装置优选地用于存储所记录的视频流。非易失性存储器存储计算机程序的代码部分,所述计算机程序由处理器102运行来用于视频流200的反向播放,如以下描述中更好地说明。
连接性块1024用于管理与外部部件104的连接,所述外部部件如USB端口1040、通过以太网协议进行通信的网络接口卡1041等。
视频设备100进一步包括音频I/O块105和视频I/O块106。块105和块106用于从不同来源接收音频和视频,所述不同来源如DVD读出器、蓝光光盘读出器、模拟放大器、卡带式录像机等。块105和块106进一步表示音频输出和视频输出,例如将要提供至电视机的HDMI输出。
因此,处理器102被适配来处理存储在存储装置1032中的或通过前端101或通过块106或通过连接性块1024接收的MPEG A/V信号,例如IPTV(互联网协议电视)信号。
图2示意性地例示视频流200,所述视频流可由视频设备通过上述接收装置中的任何一个(例如通过前端101或视频I/O接口106)来接收,或可存储于视频设备100的存储装置1032中。
示例性视频流200包括多个视频序列2001,每一个视频序列包括序列首部2002、视频和比特流参数2003和画面组(GOP)2004。
GOP由利用参考数字201至20N指示的I帧、P帧和B帧的序列构成。在图2的实施方案中,帧的序列为I、B1、P1、B2、P2、B3、P3、B4。
当视频设备100接收命令来将视频流200倒回时,所述视频设备开始一种视频处理方法,在此参考图3至图9描述所述方法。
接收倒回命令(步骤301)之后,处理器102将缓冲区和存储列表初始化(步骤302),所述缓冲区和存储列表将用于视频流的反向播放(如下文更好地描述)。
接着,由处理器102并行地开始两个线程(303和304)。
一方面,处理器102开始将参考图4描述的帧显示线程303,而另一方面,处理器102开始视频处理线程304,所述视频处理线程意图输出将由帧显示线程303显示的视频帧。如以下描述中更好地详述,线程304主要集中在两个步骤:加载将要显示的视频序列(步骤3041)以及根据智能算法对其进行解码(步骤3042)。
当开始帧显示线程303(步骤401)时,所述线程一直等待用于开始视频帧的显示的触发(步骤402)。在一个实施方案中,显示触发由时钟基于视频输出106上的帧显示频率产生。举例来说,对于50Hz的输出,将每20ms产生一次触发。
显示触发可例如在用户停止视频回放并停留在一个图像上的情况下中断。
如果接收到显示触发,那么线程303检查将要显示的帧的列表1000是否存在将要显示的帧(步骤403)。在一个实施方案中,将要显示的帧的列表为将帧ID映射到显示次序的表,如图10中所示出,图中指定了根据本发明的一个实施方案的将要显示的帧的列表。因为视频帧的显示次序还存储在其它表(例如,以下将描述的序列索引表)中,所以将要显示的帧的列表可精简为存储在缓冲存储区中并周期性更新的帧ID的序列。
如果列表上没有帧,那么过程回到步骤402,等待新的显示触发。如果将要显示的帧的列表1000不为空,那么将要显示的第一个帧被提供至视频I/O 106以用于显示(步骤404)。接着,从列表1000移去已显示的帧(步骤405)并且过程前进至决定步骤406,其中处理器102检查显示线程303是否应结束。可基于用户命令做出这个决定,例如由于已由处理器102通过用户接口接收到关闭视频设备的请求,所述用户接口例如从由视频设备的用户操作的遥控器接收命令的红外接收器。或者,可独立于用户的命令来做出这个决定,例如由于已达到流的末端,或已发生解码的严重错误。
如果未做出中断显示线程303的决定,那么过程返回至步骤402,等待新的显示触发。
处理视频流200的帧以用于反向回放并准备显示的方法取决于视频处理线程303,现参考图5至图9描述所述视频处理线程。
首先,视频处理线程检查是否存在足够的存储区可用于缓冲将要回放的视频序列2001(步骤502)。在优选的实施方案中,视频设备100包括8Mb的缓冲存储区,所述存储区通常足以存储高清晰度(HD)视频流的两个1.5s长的视频序列2001。
如果存在可用的足够缓冲存储区,那么将要处理的视频序列被加载到缓冲存储区中(步骤503)并且对视频序列分析和编索引。具体来说,视频设备100将块103的预定存储区域分配用于存储序列索引表,在一个实施方案中,所述序列索引表为表I中例示的类型,并且一旦视频序列已加载,就对这个表进行填写:
帧ID | 帧类型 | 显示次序 | 帧参考 | 解码 |
I | I | 7 | -- | -- |
B1 | B | 8 | I | -- |
P1 | P | 5 | I、来自前一个序列的最后一个P帧 | |
B2 | B | 6 | I、P1 | -- |
P2 | P | 3 | P1 | -- |
B3 | B | 4 | P1、P2 | -- |
P3 | P | 1 | P2 | -- |
B4 | B | 2 | P2、P3 | -- |
表I
表I为已针对图2中例示的第一序列填写的序列索引表。
表I包括每个帧的帧ID,在以上实施例中,所述帧ID标识为I、B1、B2等……,以便允许容易地理解所述表;然而,帧ID可以是可由处理器102使用来在缓冲区中检索帧的任何其它数字或代码。
表I进一步包括:
-“帧类型”字段,其对于理解压缩的类型(例如,B帧或P帧或I帧)是必要的;
-“显示次序”字段,其指示帧将被显示的次序;
-“帧参考”字段,其含有对解码每个帧必需的参考帧的指示;
-“解码”字段,其含有一个值(例如,标记或数字,如0或1),所述值指示对应帧是否已被解码以及所解码的帧目前是否被缓冲。这个字段因此将在视频流200的反向播放期间被更新。
一旦已针对第一视频序列填写序列索引表,方法就前进至步骤505,其中处理器102选择将要处理的下一个视频序列,即,将要以回放模式显示的下一个视频序列。
如果没有足够的缓冲存储区用于存储将要处理的视频序列,那么序列加载线程返回(步骤506)至步骤3041,从而结束序列加载线程。接着,根据本说明书的流畅解码被中止,并且所述方法用于切换至另一个逆向特技播放模式(例如,仅播放视频流200的I帧)。
在已缓冲和分析视频序列之后,视频处理线程304用于对将要显示的帧进行选择和解码。这个过程参考图6至图9来呈现。
基于序列索引表,并且具体来说基于“显示次序”字段,处理器102选择将要添加至将要显示的帧的列表的下一个帧(步骤602)。
如果所选择的帧已被解码并且存储在缓冲存储区中(步骤603),那么就将所选择的帧添加至将要显示的帧的列表(步骤604)。这是通过简单地更新将要显示的帧的列表的字段来完成。
如果所选择的帧尚未解码,那么处理器102检查所选择的帧是否为已在步骤503处存储的视频序列的帧(步骤605)。如果是,那么处理器102将所述帧解码(步骤606),并且将其添加至将要显示的帧的列表(步骤604)。
如果所选择的帧不是解码帧(步骤603),也不是当前缓冲的视频序列的帧(步骤605),那么这意味着将要解码的新帧属于不同的视频序列。因此,处理器102检查是否存在足够的空闲存储空间用于缓冲新的视频序列(步骤607)。
如果存在足够的缓冲区可用于存储新的视频序列,那么处理器102用于缓冲新的视频序列(步骤608),将所选择的帧解码(步骤606)并且将解码帧添加至将要显示的帧的列表(步骤604)。
如果没有足够的空间,那么处理器102释放存储最早视频序列的缓冲存储区(步骤609),所述最早视频序列即为在当前缓冲的其它视频序列之前已获缓冲的视频序列。一旦缓冲存储区已被释放,处理器102就用于缓冲新的视频序列(步骤608),将所选择的帧解码(步骤606)并且将解码帧添加至将要显示的帧的列表(步骤604)。
一旦新帧将被解码,那么就执行参考图7和图8所公开的解码线程。
解码线程开始之后(步骤701),由处理器102检查视频序列索引表,以便评估帧是否被帧间压缩以及是否需要对任何参考帧进行解码(步骤702)。
如果不需要帧来用于将帧(因此帧被帧间压缩,例如其为I帧)解码,那么对所述帧解码(步骤704)并且添加至将要解码的帧的列表(步骤705),或替代地,针对解码帧来修改序列索引表的“解码”状态(参见表I)。
如果将要解码的帧需要对任何参考帧的解码(例如,在图2的实施例中,帧P3需要对帧P2的解码),那么处理器102检查解码所必需的所有帧是否已被解码以及是否实际上被缓冲(步骤703)。如果是这种情况,那么对帧解码(步骤704)。
如果解码所必需的所有参考帧都未被缓冲,那么处理器102选择参考帧中尚未被解码的一个帧(步骤706)并且递归地重复解码线程(步骤707):因此,重复步骤701至707直到已开始帧解码线程的帧被解码并添加至将要显示的帧的列表。接着终止解码线程(步骤708)。
图8公开当帧的解码实际发生时在步骤704处开始的解码线程的流程图。
处理器102检查是否一旦帧被解码就有空闲缓冲区用于存储的所述帧(步骤802);如果缓冲存储区可用,那么处理器102将帧解码(步骤803)并且过程返回至步骤705(步骤804),以用于将帧添加至解码帧的列表,或替代地针对解码帧更新序列索引表的“解码”状态(见表I)。
如果一旦帧被解码而没有缓冲区可用,那么处理器102开始线程来查找可被释放的缓冲区(步骤805)。参考图9来描述这个线程的详细内容。
处理器102选择将要检查的第一缓冲区(步骤902)。在一个实施方案中,在列表或表中帧缓冲区组织,因此将要检查的这个第一缓冲区被选择为帧缓冲区的列表或表上的第一元素。
处理器102随后检查是否已检查所有缓冲区(步骤903)。如果不是,那么处理器102检查是否所检查的缓冲区是存储将要显示的帧的缓冲区(步骤904),这是优选地通过检查将要显示的帧的列表来完成,所述列表还含有对存储帧的缓冲区的参考。
如果目前检查的缓冲区是存储将要显示的帧的列表上的帧的缓冲区,那么这个缓冲区无法被释放,并且处理器102选择将要检查的下一个缓冲区(步骤909)。
如果目前检查的缓冲区不是存储正处于将要显示的帧的列表上的帧的缓冲区,那么处理器102检查缓冲区是否含有解码将要解码的帧所必需的参考帧(步骤905)。
如果当前检查的缓冲区存储参考帧,那么这个缓冲区无法被释放,否则将要解码的帧将不能被解码。处理器102因此选择将要检查的下一个缓冲区(步骤909)。如果当前检查的缓冲区未存储这种参考帧,那么所述缓冲区为用于释放的良好候选缓冲区。
处理器102随后检查是否已找到用于释放的候选缓冲区(步骤906)。如果未找到,那么当前检查的缓冲区被设置为用于释放的候选缓冲区(步骤907)。如果已找到用于释放的候选缓冲区,那么处理器102随后检查新的候选缓冲区是否在前一个候选缓冲区之前被占用(步骤908)。如果是,那么当前检查的缓冲区被设置为将要释放的候选缓冲区(步骤907);如果不是,那么检查新的缓冲区:处理器102选择将要检查的新的缓冲区(步骤909),并且重复所述过程直到已检查所有缓冲区为止。在这时,处理器102检查是否已找到用于释放的候选缓冲区(步骤910),并且在肯定的情况下,释放缓冲区(步骤911)并终止步骤805的释放线程(步骤912)。如果未找到候选缓冲区,那么在不释放任何缓冲区的情况下终止步骤805的释放线程(步骤912)。
在已终止缓冲区释放线程之后,处理器102检查是否已找到用于存储将要解码的帧的任何空闲缓冲区(步骤806)。如果已找到这种缓冲区,那么处理器102解码将要解码的帧(步骤803),终止解码线程(步骤804)并且过程返回至步骤705,其中将解码帧添加至解码帧的列表(或替代地,更新序列索引表的“解码”状态)。随后,过程如下继续进行:将解码帧添加至将要显示的帧的列表(步骤604),并且由处理器102选择将要添加至将要显示的帧的列表的新帧(步骤602)。
如果在步骤806处没有缓冲区可用于存储将要解码的帧,那么所述方法就用于检查将要显示的帧的列表是否为空,即是否不存在将要显示的帧(步骤807)。如果某一帧被解码并且准备将要显示,那么所述方法就用于等待片刻(步骤808),具体来说等待几十毫秒,并且随后重复缓冲区释放线程805。
如果没有缓冲区可用于存储将要解码的帧,并且将要显示的帧的列表中当前没有帧,那么所述方法就去往步骤809并且根据本说明书的流畅倒回被中止,并且所述方法用于切换至另一个逆向特技播放模式(例如,仅播放视频流200的I帧)。
根据以上描述清楚的是,如上所述的视频处理方法满足了本申请的目标。
本领域的技术人员可容易地认识到,用于视频处理的前述方法可由一个或多个计算机程序来执行和/或控制。这种计算机程序通常通过利用计算装置中的计算资源来执行,所述计算装置例如个人计算机、个人数字助理、蜂窝电话、数字电视的接收器和解码器等。应用程序存储在例如闪存存储器的非易失性存储器中,或例如RAM的易失性存储器中,并且由处理器执行。这些存储器是用于存储计算机程序的示例性记录介质,所述计算机程序包括计算机可执行指令,所述指令执行根据本文中提出的技术概念的计算机实施方法的所有步骤。
尽管本文提出的本发明已参考具体的优选实施方案来加以描绘、描述并且已加以限定,但是前述说明书中的实现方式的这些参考和实施例并不意味着对本发明的任何限制。然而,明显的是,可对所述参考和实施例做出各种修改和变化,而不脱离本技术概念的广泛范围。
所提出的优选实施方案仅为示例性的,并且不是对本文提出的技术概念范围的穷举。因此,保护范围不限于本说明书中所描述的优选实施方案,而仅由随附的权利要求书来限制。
所描述的方法适用于基于类似方案的所有视频压缩解决方案,即,帧、包括帧内编码帧和帧间编码帧的画面组和序列组。例如,所描述的视频处理方法可应用于MPEG1、MPEG2、MPEG4第2部分(例如,DIVX、XViD)、MPEG4第10部分(h.264)、VC1或VP8。
Claims (12)
1.一种用于从原始视频流产生反向视频流的视频处理方法,所述方法包括以下步骤:
-缓冲所述原始视频流的编码帧;
-解码所缓冲的所述编码帧为解码帧;以及
-产生反向视频流,其中根据一个次序组织所述解码帧,所述次序与所述原始视频流的帧显示次序相反;
其特征在于包括以下步骤:
a)在所述原始视频流的帧之间选择将要显示的帧(602),所述将要显示的帧的选择基于所述反向视频流的所述帧显示次序来进行;
b)检查解码帧列表中是否所有所述原始视频流中对解码所选择帧所必需的参考帧已被解码,并且所述参考帧所相对的所述解码帧是否实际上被缓冲(702-703);
c)如果所有的所述参考帧已被解码并且实际上被缓冲,那么去往步骤d);如果并非所有的所述参考帧已被解码并且实际上被缓冲,那么解码所述所选择帧中所有不在所述解码帧列表中的其它参考帧,并且缓冲所述其它参考帧所相对的解码后的所述其它参考帧为其它解码帧(706-707),其中如果没有缓冲存储区可用于缓冲一个所述其它解码帧,那么就释放存储不存在于将要显示的帧的列表(1000)中的最早解码帧并且不存储所述所选择帧的所述参考帧的缓冲区,并在所释放的缓冲区中缓冲所述其它解码帧(901-912);
d)将所述所选择帧解码并缓冲所述解码帧;
e)以用于将所选择的所述解码帧作为所述反向视频流的帧输出的次序信息更新将要显示的帧的所述列表(604);
f)选择所述原始视频流的下一个视频帧(602),所述下一个视频帧为所述反向视频流的所述下一个视频帧;
g)针对所述下一个视频流重复步骤a)至步骤e)。
2.如权利要求1所述的方法,其中如果所述参考帧中的一个参考帧未被解码和缓冲,那么使将要解码的所述一个参考帧视为步骤b)的所选择的帧,并且递归地重复步骤c)至步骤d)直到所述一个参考帧已被解码和缓冲为止。
3.如权利要求1或2所述的方法,其中所述方法在一个单一设备中执行。
4.如权利要求1或2所述的方法,其进一步包括以下步骤:显示包括在将要显示的帧的所述列表中的解码帧。
5.如权利要求1或2所述的方法,其中所述反向视频流的至少一个视频序列包括所述原始视频流的所有所述帧。
6.如权利要求1或2所述的方法,其中所述方法用于缓冲所述原始视频流的至少两个MPEG视频序列,并且其中如果没有缓冲存储区可用于存储所述至少两个MPEG视频序列,那么所述方法就用于根据不同于步骤d)至步骤g)中的一个的方法来产生所述反向视频流。
7.如权利要求1或2所述的方法,其进一步包括以下步骤:对所述原始视频流的所缓冲的编码帧编索引以便定义所述帧显示次序,并实施帧选择和帧解码的步骤。
8.一种视频设备,其包括:
存储缓冲区,其用于暂时存储原始视频流上的帧;
控制单元,其响应于反向播放命令来用于处理所述原始视频流,并且通过根据一个次序解码所述原始视频流的帧来产生反向视频流,所述次序与所述原始视频流的帧显示次序相反;
其特征在于,所述控制单元被适配来:
a)在所述原始视频流的帧之间选择将要显示的帧(602),所述将要显示的帧的选择基于所述反向视频流的所述帧显示次序来进行;
b)检查解码帧的列表中是否所有所述原始视频流中对解码所选择帧所必需的参考帧已被解码,并且所述参考帧所相对的所述解码帧是否实际上被缓冲(702-703);
c)如果所有的所述参考帧已被解码并且实际上被缓冲,那么去往步骤d);如果并非所有的所述参考帧已被解码并且实际上被缓冲,那么解码所述所选择帧中所有不在所述解码帧列表中的其它参考帧,并且缓冲所述其它参考帧所相对的解码后的所述其它参考帧为其它解码帧(706-707),其中如果没有缓冲存储区可用于缓冲一个所述其它解码帧,那么就释放存储不存在于将要显示的帧的列表(1000)中的最早解码帧并且不存储所述所选择帧的所述参考帧的缓冲区,并在所释放的缓冲区中缓冲所述其它解码帧(901-912);
d)将所述所选择帧解码并缓冲所述解码帧;
e)以用于将所选择的所述解码帧作为所述反向视频流的帧输出的次序信息更新将要显示的帧的所述列表(604);
f)选择所述原始视频流的下一个视频帧(602),所述下一个视频帧为所述反向视频流的所述下一个视频帧;
g)针对所述下一个视频流重复步骤a)至步骤e)。
9.如权利要求8所述的视频设备,其中如果所述参考帧中的一个参考帧未被解码和缓冲,那么所述控制单元被适配来使将要解码的所述一个参考帧视为步骤b)的所选择的帧,并且递归地重复步骤c)至步骤d)直到所述一个参考帧已被解码和缓冲为止。
10.如权利要求8或9所述的视频设备,其进一步包括显示装置,所述显示装置被适配来显示包括在将要显示的帧的所述列表中的解码帧。
11.如权利要求8或9所述的视频设备,其中所述反向视频流的至少一个视频序列包括所述原始视频流的所有所述帧。
12.如权利要求8或9所述的视频设备,其中所述存储缓冲区被适配来缓冲所述原始视频流的至少两个连续MPEG视频序列,并且其中如果没有缓冲存储区可用于存储所述至少两个连续MPEG视频序列,那么所述控制单元被适配来根据不同于步骤d)至步骤g)中的一个的方法来产生所述反向视频流。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP12157589.8A EP2635025B1 (en) | 2012-02-29 | 2012-02-29 | Video processing method and video appliance implementing the method |
EP12157589.8 | 2012-02-29 | ||
PCT/EP2013/052421 WO2013127611A1 (en) | 2012-02-29 | 2013-02-07 | Video processing method and video appliance implementing the method |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104185982A CN104185982A (zh) | 2014-12-03 |
CN104185982B true CN104185982B (zh) | 2017-05-24 |
Family
ID=47845915
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380011149.3A Active CN104185982B (zh) | 2012-02-29 | 2013-02-07 | 视频处理方法和实施所述方法的视频设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20150016807A1 (zh) |
EP (1) | EP2635025B1 (zh) |
CN (1) | CN104185982B (zh) |
WO (1) | WO2013127611A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9565454B2 (en) * | 2013-06-24 | 2017-02-07 | Microsoft Technology Licensing, Llc | Picture referencing control for video decoding using a graphics processor |
CN104735384B (zh) * | 2015-04-03 | 2017-12-08 | 华为技术有限公司 | 分配编码通道内存的方法和装置 |
CN105025357B (zh) * | 2015-06-05 | 2018-06-08 | 北京中电兴发科技有限公司 | 一种视频倒放的方法 |
CN106507204B (zh) * | 2016-12-07 | 2020-03-17 | 腾讯科技(上海)有限公司 | 一种视频倒放方法和装置 |
CN107277648B (zh) * | 2017-02-28 | 2019-11-19 | 大连理工大学 | 一种地铁列车lcd屏的视频传输方法 |
CN107509110A (zh) * | 2017-08-03 | 2017-12-22 | 乐蜜有限公司 | 一种视频文件的循环播放方法及装置 |
CN111372117B (zh) * | 2018-12-25 | 2023-06-23 | 浙江大华技术股份有限公司 | 一种视频播放方法、装置、电子设备及存储介质 |
CN112752150A (zh) * | 2020-12-29 | 2021-05-04 | 深圳市天视通视觉有限公司 | 一种视频解码方法、装置、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000101970A (ja) * | 1998-09-17 | 2000-04-07 | Sony Corp | 再生装置及び再生方法 |
EP1156674A1 (en) * | 2000-05-19 | 2001-11-21 | THOMSON multimedia | Method and device for decoding a video data stream in special reproduction modes |
CN1381990A (zh) * | 2001-04-19 | 2002-11-27 | 三星电子株式会社 | 有效处理视频的视频预处理/后处理方法及其设备 |
US6801710B1 (en) * | 2000-11-16 | 2004-10-05 | Genesis Microchip Inc. | Methods and apparatus for smooth reverse playback of MPEG encoded media |
CN1822666A (zh) * | 2005-02-07 | 2006-08-23 | 美国博通公司 | 处理视频数据的方法和系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6327421B1 (en) | 1998-03-10 | 2001-12-04 | International Business Machines Corporation | Multiple speed fast forward/rewind compressed video delivery system |
US6751400B1 (en) * | 1998-09-17 | 2004-06-15 | Sony Corporation | Reproducing method and apparatus |
US8830339B2 (en) * | 2009-04-15 | 2014-09-09 | Qualcomm Incorporated | Auto-triggered fast frame rate digital video recording |
US9432678B2 (en) * | 2010-10-30 | 2016-08-30 | Hewlett-Packard Development Company, L.P. | Adapting a video stream |
-
2012
- 2012-02-29 EP EP12157589.8A patent/EP2635025B1/en active Active
-
2013
- 2013-02-07 US US14/378,651 patent/US20150016807A1/en not_active Abandoned
- 2013-02-07 CN CN201380011149.3A patent/CN104185982B/zh active Active
- 2013-02-07 WO PCT/EP2013/052421 patent/WO2013127611A1/en active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000101970A (ja) * | 1998-09-17 | 2000-04-07 | Sony Corp | 再生装置及び再生方法 |
EP1156674A1 (en) * | 2000-05-19 | 2001-11-21 | THOMSON multimedia | Method and device for decoding a video data stream in special reproduction modes |
US6801710B1 (en) * | 2000-11-16 | 2004-10-05 | Genesis Microchip Inc. | Methods and apparatus for smooth reverse playback of MPEG encoded media |
CN1381990A (zh) * | 2001-04-19 | 2002-11-27 | 三星电子株式会社 | 有效处理视频的视频预处理/后处理方法及其设备 |
CN1822666A (zh) * | 2005-02-07 | 2006-08-23 | 美国博通公司 | 处理视频数据的方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
EP2635025B1 (en) | 2015-04-08 |
US20150016807A1 (en) | 2015-01-15 |
EP2635025A1 (en) | 2013-09-04 |
CN104185982A (zh) | 2014-12-03 |
WO2013127611A1 (en) | 2013-09-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104185982B (zh) | 视频处理方法和实施所述方法的视频设备 | |
US7826712B2 (en) | Method and apparatus for receiving, storing, and presenting multimedia programming without indexing prior to storage | |
CN105359544B (zh) | 数字视频流传输中的特技播放 | |
US20120114311A1 (en) | Method and system for distributing the recording of a media item | |
US7437054B2 (en) | Apparatus and method for controlling reverse-play for digital video bitstream | |
CN101854508B (zh) | 反向回放编码的多媒体内容的方法和装置 | |
US20020122656A1 (en) | Method and apparatus for recording broadcast data | |
US20070147517A1 (en) | Video processing system capable of error resilience and video processing method for same | |
CN102611932B (zh) | 机顶盒及其录制电视节目的方法 | |
US8571384B2 (en) | Digital video recorder, digital video system, and video playback method thereof | |
US9640220B2 (en) | Managing time-shift data | |
US8300701B2 (en) | Offspeed playback in a video editing system of video data compressed using long groups of pictures | |
US20140341544A1 (en) | Creating and managing sub-recordings | |
EP2779670A2 (en) | Method of time shifting in a digital TV and apparatus using the same | |
US20170127121A1 (en) | Dvr live pause and recording in referenced chunks | |
US20100008642A1 (en) | Video apparatus and method thereof | |
WO2007055445A1 (en) | A pre-viewing method of multiple movies or movie-clips in multimedia apparatus | |
US8112558B2 (en) | Frame buffer management program, program storage medium and management method | |
CN105007519A (zh) | 一种pvr播放方法和一种机顶盒 | |
US7423652B2 (en) | Apparatus and method for digital video decoding | |
US20050198669A1 (en) | Method for computer system to load audio/video data from remote server | |
CN100363920C (zh) | 储存远程视讯的计算机系统及其方法 | |
CN201629792U (zh) | 通过sd卡实现的pvr数字电视机顶盒 | |
KR20080004673A (ko) | 영상 기록 및 재생 시스템의 영상 검색 방법 | |
CN115866349A (zh) | 一种多媒体文件的播放方法、装置和电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |