多标准视频解码器的制作方法

文档序号:7618880阅读:114来源:国知局
专利名称:多标准视频解码器的制作方法
技术领域
本发明涉及处理编码视频流的方法和系统。
背景技术
在视频信号编码过程中,一种或多种编码技术,如H.261、H.263、H.263+(Annex J)、H.264、SMPTE VC-1、MPEG-1、MPEG-2和/或MPEG-4,可被用于基于宏块挨着宏块进行编码该视频信号。在视频信号编码过程中,例如,同解码过程需要其他旁信息一样,预测错误信息可与预测模式信息一起编码。为编码预测错误信息,在量化或熵编码之前,可应用离散余弦变换将预测错误信息变换为频域信息。在该过程中,例如,有关预测错误的信息可能被丢失。该遗漏信息导致的结果是解码视频信号的质量下降。更特殊的是,例如,变换块效应可能以方格网人为因素的形式出现在解码视频中。其他也可能由于遗漏视频信息出现在解码视频中。
传统视频解码器适于解码根据单一编码标准如H.261、E VC-1、MPEG-1、MPEG-2和/或MPEG-4等编码标准编码的基本视频流。基本视频流可用单一编码技术编码。然而,应用空间可支持正使用多种标准中的任一标准编码的码流。例如,高清晰度DVD播放装置的蓝光只读存储器规范允许视频流使用MPEG-2、H.264或VC-1编码。
然而,因两个或更多解码器需要用于已依照不同编码标准编码的基本视频流的处理或解码,传统视频处理系统的解码效率大大降低。
通过以下结合附图对本发明的描述,将常规和传统方法与本发明进行比较,本技术领域的普通技术人员会更明了常规和传统方法的更多局限性和缺点。

发明内容
本发明提供了一种处理编码视频流的方法和系统的几个实施例。该方法一方面包括在芯片上接收编码视频流内的打包数据。所接收打包数据内的标识符可在该芯片上确定,在该芯片上该标识符可定义与该编码视频流中的信息包相关联的多个编码类型之一。解码方法可基于所确定的标识符,在该芯片上从多个解码方法中选择。编码视频流中该所接收打包数据的一部分可使用所选解码方法在该芯片上解码。分隔符可在所接收打包数据内确定,分隔编码视频流内的信息包。将所接收打包数据内的多个字节与确定字节序列相匹配。如果该多个字节与该确定字节序列相匹配,则从该所接收打包数据移除该多个字节。
如果所确定的标识符符合H.264视频编码,则所接收打包数据可用固定长度编码(fixed length coding,简称FLC)方法、可变长度编码(varible length coding,简称VLC)方法和/或上下文自适应二进制算法编码(context adaptive binary arithmetic coding,简称CABAC)方法解码。如果所确定的标识符符合VC-1、H.261、H.263、H.263+、MPEG-1、MPEG-2和/或MPEG-4视频编码,则所接收打包数据可用FLC方法和/或VLC方法解码。该解码的打包数据包括解码方法控制信息和/或预测错误信息。解码视频流可使用该解码的打包数据生成。该生成的解码视频流可使用重叠变换方法和/或解块方法滤波。对于每一该多个解码方法,所接收打包数据的一部分可用逆变换、逆量化和/或运动补偿在该芯片上解码。
本发明的另一个实施例提供了一种机器可读存储器,其上存储有计算机程序,该计算机程序具有至少机器可执行的代码部分,以使该机器可执行上述处理编码视频流的步骤。
本发明的一方面还包括至少一个处理器,在芯片上接收芯片上的编码视频流内的打包数据。该处理器可在该芯片上确定所接收打包数据内的标识符,该标识符定义与该编码视频流中的信息包相关联的多个编码类型之一。解码方法可基于所确定的标识符,由该处理器从多个解码方法中选择。编码视频流中该所接收打包数据的一部分可由该处理器使用所选解码方法进行解码。所接收打包数据内的分隔符,该分隔符由该处理器确定,分隔编码视频流内的信息包。该处理器可将所接收打包数据内的多个字节与确定字节序列相匹配,如果该多个字节与该确定字节序列相匹配,则该处理器从该所接收打包数据中移除该多个字节。
如果所确定的标识符符合H.264视频编码,则所接收打包数据可由该处理器用固定长度编码方法、可变长度编码方法和/或上下文自适应二进制算法编码方法解码。如果所确定的标识符符合VC-1、H.261、H.263、H.263+、MPEG-1、MPEG-2和/或MPEG-4视频编码,则所接收打包数据可由该处理器用FLC方法和/或VLC方法解码。该解码的打包数据包括解码方法控制信息和/或预测错误信息。解码视频流可由处理器使用该解码的打包数据生成。该处理器可使用重叠变换方法和/或解块方法将该生成的解码视频流滤波。
本发明的一个方面提供了一种处理编码视频流的方法,该方法包括在芯片上接收编码视频流内的打包数据;在所述芯片上确定所接收打包数据内的标识符,该标识符定义与该编码视频流中的信息包相关联的多个编码类型之一;在所述芯片上,基于所确定的标识符,从多个解码方法中选择一个解码方法;及在所述芯片上使用所选解码方法解码编码视频流中所接收打包数据的至少一部分。
优选地,所述方法进一步包括在所述芯片上确定所接收打包数据内的起始码,该起始码分隔编码视频流内的信息包。
优选地,所述方法进一步包括将所接收打包数据内的多个字节与一个确定字节序列相匹配。
优选地,所述方法进一步包括如果该多个字节与该确定字节序列相匹配,则从该所接收打包数据中移除该多个字节。
优选地,所述方法进一步包括如果所确定的标识符符合H.264视频编码,则使用固定长度编码(FLC)方法、可变长度编码(VLC)方法和上下文自适应二进制算法编码(CABAC)方法的至少其一解码所接收打包数据的所述至少一部分。
优选地,所述方法进一步包括如果所确定的标识符符合VC-1视频编码,则使用固定长度编码(FLC)方法和可变长度编码(VLC)方法的至少其一解码所接收打包数据的所述至少一部分。
优选地,所述方法进一步包括如果所确定的标识符符合H.261、H.263、H.263+、MPEG-1、MPEG-2和MPEG-4视频编码至少之一,则使用固定长度编码(FLC)方法和可变长度编码(VLC)方法的至少其一解码所接收打包数据的所述至少一部分。
优选地,所述解码打包数据包括预测像素信息和预测错误信息的至少其一。
优选地,所述方法进一步包括使用所述解码打包数据的至少一部分生成解码视频流。
优选地,所述方法进一步包括,对每一所述多个解码过程,在所述芯片上使用逆变换、逆量化和运动补偿的至少其一解码所接收打包数据的所述至少一部分。
根据本发明的一个方面,提供了一种机读存储器,存储具有至少一代码部分的计算机程序,以处理编码视频流,该至少一个代码部分由机器执行,执行的步骤包括在芯片上接收编码视频流内的打包数据;在所述芯片上确定所接收打包数据内的标识符,该标识符定义与该编码视频流中的信息包相关联的多个编码类型之一;在所述芯片上,基于所确定的标识符,从多个解码方法中选择一个解码方法;及在所述芯片上使用所选解码方法解码编码视频流中所接收打包数据的至少一部分。
优选地,所述存储器进一步包括在所述芯片上确定所接收打包数据内的起始码的代码,所述起始码分隔编码视频流内的信息包。
优选地,所述存储器进一步包括将所接收打包数据内的多个字节与一个确定字节序列相匹配的代码。
优选地,所述存储器进一步包括如果该多个字节与该确定字节序列相匹配,则从该所接收打包数据中移除该多个字节的代码。
优选地,所述存储器进一步包括如果所确定的标识符符合H.264视频编码,则使用固定长度编码(FLC)方法、可变长度编码(VLC)方法和上下文自适应二进制算法编码(CABAC)方法的至少其一解码所接收打包数据的所述至少一部分的代码。
优选地,所述存储器进一步包括如果所确定的标识符符合VC-1视频编码,则使用固定长度编码(FLC)方法和可变长度编码(VLC)方法的至少其一解码所接收打包数据的所述至少一部分的代码。
优选地,所述存储器进一步包括如果所确定的标识符符合H.261、H.263、H.263+、MPEG-1、MPEG-2和MPEG-4视频编码至少之一,则使用固定长度编码(FLC)方法和可变长度编码(VLC)方法的至少其一解码所接收打包数据的所述至少一部分代码。
优选地,所述解码打包数据包括预测像素信息和预测错误信息的至少之一。
优选地,所述存储器进一步包括使用所述解码打包数据的至少一部分生成解码视频流的代码。
优选地,所述存储器进一步包括使用重叠变换方法和/或解块方法的至少之一滤波所生成的解码视频流的代码。
本发明的一方面提供了一种处理编码视频流的系统,该系统包括至少一个处理器,其在芯片上接收编码视频流内的打包数据;所述至少一个处理器在所述芯片上确定所接收打包数据内的标识符,该标识符定义与该编码视频流中的信息包相关联的多个编码类型之一;所述至少一个处理器在所述芯片上基于该确定的标识符从多个解码方法中选择一个解码方法;及所述至少一个处理器在所述芯片上使用所选解码方法解码编码视频流中所接收打包数据的至少一部分。
优选地,所述至少一个处理器在所述芯片上确定所接收打包数据内的起始码,该起始码分隔编码视频流内的信息包。
优选地,所述至少一个处理器将所接收打包数据内的多个字节与一确定字节序列相匹配。
优选地,如果该多个字节与该确定字节序列相匹配,所述至少一个处理器则从该所接收打包数据中移除该多个字节。
优选地,如果所确定的标识符符合H.264视频编码,所述至少一处理器则使用固定长度编码(FLC)方法、可变长度编码(VLC)方法和上下文自适应二进制算法编码(CABAC)方法至少之一解码所接收打包数据的所述至少一部分。
优选地,如果所确定的标识符符合VC-1视频编码,所述至少一个处理器则使用固定长度编码(FLC)方法和可变长度编码(VLC)方法的至少之一解码所接收打包数据的所述至少一部分。
优选地,如果所确定的标识符符合H.261、H.263、H.263+、MPEG-1、MPEG-2和MPEG-4视频编码至少之一,所述的至少一个处理器则使用固定长度编码(FLC)方法和可变长度编码(VLC)方法至少之一解码所接收打包数据的所述至少一部分。
优选地,所述解码打包数据包括预测像素信息和预测错误信息至少之一。
优选地,所述至少一处理器使用所述解码打包数据的至少一部分生成解码视频流。
优选地,所述至少一处理器使用重叠变换方法和解块方法至少之一滤波所生成的解码视频流。
根据本发明的一方面,其提供了一种处理编码视频流的方法,该方法包括使用第一CPU解码来自编码视频流的报头信息;及当所述第一CPU解码所述报头信息时,使用第二CPU解码来自编码视频流的宏块信息。
本发明的这些或其他特征和优点,将从以下结合附图对本发明的详细描述获得更全面地理解。


图1是根据本发明的实施例的具有分隔符的封装视频有效载荷的结构图。
图2是根据本发明的实施例的示例性的基本视频流数据内的字节解除的结构图。
图3A是根据本发明的实施例的示例性的多标准视频解码器的高水平结构图。
图3B是根据本发明的实施例的示例性的使用单一CPU的多标准视频解码器的高水平结构图。
图3C是根据本发明的实施例的示例性的使用CPU对的多标准视频解码器的高水平结构图。
图4A是根据本发明的实施例的示例性的具有硬件辅助块和单一CPU的多标准视频解码器的结构图。
图4B是根据本发明的实施例的示例性的具有硬件辅助块和CPU对的多标准视频解码器的结构示意图。
图5是根据本发明的实施例的示例性的当解码H.264视频数据时,图4所示多标准视频解码器的运行的结构图。
图6是根据本发明的实施例的示例性的当解码VC-1视频数据时,图4所示多标准视频解码器的运行的结构图。
图7是根据本发明的实施例的示例性的当解码MPEG-1或PMEG-2视频数据时,图4所示多标准视频解码器的运行的结构图。
图8是根据本发明的实施例的示例性的当解码MPEG-4视频数据时,图4所示多标准视频解码器的运行的结构图。
图9是根据本发明的实施例的处理视频数据流的示范性方法的流程图。
具体实施例方式
本发明提供了一种处理编码视频流的方法和系统的几个实施例。在视频流编码过程中,不同编码标准可被用于基本视频流内进行编码数据。在本发明的一个方面中,多标准视频解码器可适于获得根据编码标准如H.261、H.263、H.263+(Annex J)、H.264、VC-1、MPEG-1、MPEG-2和/或MPEG-4编码的基本视频流。该多标准解码器可在该基本视频流内设置一个或多个分隔符,在该基本视频流内该分隔符可分隔封装视频有效载荷内的信息包。每一分隔符包括表明视频有效载荷的开始的起始码信息和编码类型信息。
该编码类型信息可与被编码器用于编码相应视频有效载荷的编码方法相关联。该多标准解码器也可从封装视频有效载荷中解除或移除一个或多个字节,在封装视频有效载荷中这样的字节被编码器插入以避免错误的起始码出现在视频有效载荷中。根据该编码类型信息,封装视频有效载荷可在芯片上使用相应解码模块解码。例如,时间或空间预测像素可在封装视频有效载荷中从解码方法控制信息生成。此外,预测错误可在封装视频有效载荷内从量化频率系数生成。然后,可使用时间和/或空间预测像素和预测错误信息重建解码视频流。根据本发明的一个方面,该多标准解码器可使用单中央处理器(central processing unit,简称CPU)处理编码比特流中的信息包内的报头信息和宏块信息。在本发明的另一个方面中,可使用CPU对,其中第一CPU可处理未来报头信息,而第二CPU可处理当前宏块信息。
图1是根据本发明的实施例的具有分隔符的封装视频有效载荷100的结构图。如图1所示,该封装视频有效载荷100包括分隔符104和基本视频流数据105。该分隔符104包括起始码101和起始码后缀103,且可被解码器用于如为封装视频有效载荷100设起始位及为基本视频流数据105设起始位。此外,分隔符104包括与用于编码基本视频流数据105的编码方法相关的信息。该基本视频流数据包括多个字节,每一字节包括两个半位元组。
起始码101包括多个字节,可被安排以唯一组合表示编码视频流内封装视频有效载荷100的开始。例如,起始码101包括示范性字节序列“00 00 01”。起始码后缀103包括一个或多个字节,设于封装视频有效载荷100内的起始码101后。在本发明的一个方面中,该起始码后缀103与用于封装视频有效载荷100内的编码基本视频流数据105的编码方法相对应。例如,当这些编码方法被用于编码基本视频流数据105时,该起始码后缀103可相应于H.264、VC-1、MPEG-1、MPEG-2和/或MPE-4。在将该编码视频流数据传送至视频解码器前,起始码101和起始码后缀103可由编码器生成。
图2是根据本发明的实施例的示例性的基本视频流数据内的字节解除的结构图。如图2所示,基本视频流数据200包括基本视频数据序列201和203。该基本视频流数据200可被分隔符加上前言,包括起始码序列和起始码后缀,如图1所示。在视频信号编码过程中以及编码器为该基本视频流数据200生成分隔符后,该编码器可在基本视频流数据200中插入一个或多个字节,以使编码期间相应起始码序列在基本视频流数据200内可能不被编码器识别。
例如,在基本视频流数据200编码期间,编码器可使用包括字节序列“00 00 01”的起始码。在基本视频流数据200解码期间,解码器可能错误识别基本视频流数据200内的起始码序列“00 00 01”。为避免起始码序列的任何这种误识别,编码器可插入一个或多个额外字符或符号,或填充字节,以使得解码期间起始码序列在基本视频流数据200内不被误识别。例如,额外字符串或填充字节“03”可被插入基本视频数据序列201内的字节序列205内。同样的,填充字节“03”也可被插入基本视频数据序列203内的字节序列207内。以这种方式,可阻止解码器在基本视频流200解码期间识别起始码“00 00 01”在基本视频流200解码过程中,视频解码器可解除或移除编码过程中被插入基本视频流200中的任何额外字符。因此,额外字符串“03”可被从基本视频数据序列201内的字节序列205移除,额外字符“2”可被从基本视频数据序列203内的字节序列207移除。以这种方式,基本视频流200内移除任何额外字符后,生成未处理的视频有效载荷。而后,该得到的未处理的视频有效载荷可由例如符号翻译器解码。
图3A是根据本发明的实施例的示例性多标准视频解码器的高水平结构图。如图3所示,该多标准视频解码器200可包括存储块301、端口编码器(code-in-port,CIP)305、码流解析器307和处理模块303。该端口编码器305包括适合的电路、逻辑和/或代码,适于获得基本视频流309。端口编码器305还可适于在基本视频流309内设起始码和起始码后缀,及从基本视频流309解除额外字节,由此生成未处理的基本视频流。
该多标准视频解码器300可使用码流解析器307处理起始码信息和可从端口编码器305获得的新码流信息。例如,码流解析器307可适于处理来自端口编码器305生成的未处理的基本比特流的报头信息和/或宏块信息。来自未处理的基本视频流的报头信息包括如片段信息、画面信息、GOP/切入点信息和/或序列信息。端口编码器305生成的该未处理的基本视频流内的片段信息包包括相应于特定片段的片段报头信息和宏块信息。此外,码流解析器307可适于处理从端口编码器305获得的未处理的基本码流中的报头和/或宏块信息,并生成例如该未处理的基本视频流中的宏块信息解码所需的量化的频率系数信息和/或附加旁信息。
码流解析器307包括针对每种编码模式的一个或多个解码辅助块,可用于解码该未处理的基本视频流。来自码流解析器307的输出信号可通过总线311被传送到处理模块303。该总线311可在该多标准视频解码器内实现,作为一路总线将信息传送至处理模块303,以增加处理效率和简化执行过程。该未处理的基本视频流解码过程生成的时间信息可被存储模块301中的码流解析器307和/或端口编码器305存储。该存储模块301包括DRAM。
在本发明示范性的一个方面中,该码流解析器307可使用单一CPU和单一相应符号翻译器(SI)实现。该单一CPU或SI配置可用于处理包括起始码/后缀、报头信息和/或宏块信息的完整基本视频流。在本发明的另一个方面中,码流解析器307可使用两个单独的CPU和符号翻译器(SI)实现,以提高处理效率。例如,在示范性双CPU/SI结构中,第一CPU和第一SI可用于处理基本视频流中的报头信息,具有相应第二SI的第二CPU可用于处理来自基本比特流的宏块信息。在这一点上,后续报头信息可被第一CPU和第一SI处理,而第二CPU和第二SI可同时处理当前宏块信息。
处理模块303可使用由码流解析器307生成的处理信息生成解码视频流313。该处理模块303包括适合的电路、逻辑和/或代码,并可适于执行一个或多个以下处理任务空间预测、运动补偿、逆量化和变换、宏块重建、回路内宏块滤波和/或宏块后处理。处理模块303中的每一处理任务可使用一个或多个辅助块,该辅助块符合被用于编码基本视频流331的特定编码方法。在这一点上,处理模块303可适于解码使用多个编码方法如H.261、H.263、H.263+(Annex J)、H.264、VC-1、MPEG-1、MPEG-2和/或MPEG-4之一编码的基本视频流。
图3B是根据本发明的实施例的示例性的使用单一CPU的多标准视频解码器320的高水平结构图。如图3B所示,该多标准视频解码器320包括存储模块321、端口编码器329、内部回路中央处理器(ILCPU)325、内部回路符号翻译器(ILSI)327和处理模块323。该端口编码器329包括适合的电路、逻辑和/或代码,并适于获得基本视频流331。该端口编码器329也可适于在该基本视频流331内设起始码和/或起始码后缀,并从该基本视频流331解除额外字节,从而生成未处理的基本视频流。
在本发明的一个示范性实施例中,该多标准视频解码器320可使用内部回路中央处理器325和内部回路符号翻译器327处理来自端口编码器329生成的未处理的基本比特流的报头信息和/或宏块信息。来自未处理的基本比特流的报头信息包括如片段信息、画面信息、GOP/切入点信息和/或序列信息。端口编码器329生成的未处理的基本视频流内的片段信息包包括相应于特定片段的片段报头信息和宏块信息。
内部回路符号翻译器327包括适合的电路、逻辑和/或代码,并可适于处理从端口编码器329获得的未处理的基本视频流中的报头和/或宏块信息,并生成如该未处理的基本视频流中的宏块信息解码所需的量化的频率系数信息和/或附加旁信息。该内部回路符号翻译器327包括一个或多个特定于使用的每一编码模式的解码辅助模块,以解码该未处理的基本视频流。
内部回路中央处理器325可适于通过如通过总线333提供向内部回路符号翻译器327提供解码指令将内部回路符号翻译器327程序化。该总线333可在该多标准视频解码器内实现,作为一路总线将信息传送至处理模块303,以增加处理效率和简化执行过程。该未处理的基本视频流解码过程生成的时间信息可被存储模块321中的内部回路中央处理器325、端口编码器329和/或内部回路符号翻译器327存储。该存储模块301包括DRAM。
在操作过程中,输入的基本视频流331包括根据多个编码标准如H.261、H.263、H.263+(Annex J)、H.264、VC-1、MPEG-1、MPEG-2和/或MPEG-4之一编码的视频数据。端口编码器329可适于检测一个或多个符合该基本视频流331编码模式的起始码和起始码后缀。该端口编码器329还适于生成包括报头和/或宏块信息的未处理的基本视频流。该起始码和未处理的基本视频流可通过存储器321传送至内部回路中央处理器325和内部回路符号翻译器327,以进行进一步处理。该内部回路符号翻译器327,使用来自内部回路中央处理器325的指令,可适于处理端口编码器329传送的报头和/或宏块信息。然后,该内部回路符号翻译器327可生成输出信号,该输出信号包括如获得的宏块类型信息、片段类型信息、预测模式信息、运动矢量信息和/或量化频率系数。该输出信号可通过总线333传送至处理模块323,在宏块解码期间使用。
处理模块323可使用内部回路符号翻译器327生成的处理信息生成解码视频流335。该处理模块323包括适合的电路、逻辑和/或代码,适于执行一个或多个以下处理任务空间预测、运动补偿、逆量化和变换、宏块重建、回路内宏块滤波和/或宏块后处理。处理模块323内的每一处理任务可使用一个或多个辅助块,该辅助块符合被用于编码基本视频流331的特定编码方法。在这一点上,处理模块323可适于解码使用多个编码方法如H.261、H.263、H.263+(Annex J)、H.264、VC-1、MPEG-1、MPEG-2和/或MPEG-4之一编码的基本视频流。
图3C是根据本发明的实施例的示例性的使用CPU对的多标准视频解码器340的高水平结构图。如图3C所示,该多标准视频解码器340可包括存储模块341、外部回路中央处理器(OLCPU)349、端口编码器(CPI)351、外部回路符号翻译器(OLSI)353、内部回路中央处理器(ILCPU)345、内部回路符号翻译器(OLSI)347和处理模块343。该端口编码器351包括适合的电路、逻辑和/或代码,并适于获得基本视频流355。该端口编码器329也可适于在该基本视频流355内设起始码和/或起始码后缀,并从该基本视频流355解除额外字节,从而生成未处理的基本视频流。
在本发明的一个示范性实施例中,该多标准视频解码器320可使用CPU对,如内部回路中央处理器345和外部回路中央处理器349,具有相应的内部回路符号翻译器347、外部回路符号翻译器353,以分别处理来自端口编码器351生成的未处理的基本比特流的报头信息和/或宏块信息。来自未处理的基本比特流的报头信息可包括如片段信息、画面信息、GOP/切入点信息和/或序列信息。端口编码器351生成的新基本视频流内的片段信息包包括相应于特定片段的片段报头信息和宏块信息。例如,外部回路中央处理器349和外部回路符号翻译器353可适于处理来自端口编码器351生成的新基本比特流的报头信息。此外,内部回路中央处理器345和内部回路符号翻译器347可适于处理来自端口编码器351生成的未处理的基本比特流的宏块信息。以这种方式,可在多标准视频解码器340中实现平行处理,当外部回路中央处理器349和外部回路符号翻译器353处理未来报头信息时,内部回路中央处理器345和内部回路符号翻译器347可处理当前宏块信息。
内部回路符号翻译器347包括适合的电路、逻辑和/或代码,并可适于处理从端口编码器351获得的未处理的基本视频流中的宏块信息,并生成如该未处理的基本视频流中的宏块信息解码所需的量化的频率系数信息和/或附加旁信息。该内部回路符号翻译器347包括一个或多个特定于使用的每一编码模式的解码辅助模块,以解码该未处理的基本视频流。外部回路符号翻译器353包括适合的电路、逻辑和/或代码,并可适于处理从端口编码器351获得的未处理的基本视频流中的报头信息。
内部回路中央处理器345可适于通过如通过总线357向内部回路符号翻译器347提供解码指令将内部回路符号翻译器347程序化。该总线357可在该多标准视频解码器内实现,作为一路总线将信息传送至处理模块343,以增加处理效率和简化执行过程。该未处理的基本视频流解码过程生成的时间信息可被存储模块341中的内部回路中央处理器345、外部回路中央处理器349、外部回路符号翻译器353、端口编码器351和/或内部回路符号翻译器347存储。该存储模块301包括如DRAM。
操作过程中,输入的基本视频流355包括根据多个编码标准如H.261、H.263、H.263+(Annex J)、H.264、VC-1、MPEG-1、MPEG-2和/或MPEG-4之一编码的视频数据。端口编码器351可适于检测一个或多个符合该基本视频流355编码模式的起始码和起始码后缀。该端口编码器351还适于生成包括报头和/或宏块信息的未处理的基本视频流。该端口编码器351生成的未处理的基本视频流内的报头信息可传送至外部回路中央处理器349和外部回路符号翻译器353以进一步处理。未处理的基本视频流内的起始码和宏块信息可通过存储器341传送至内部回路中央处理器345和内部回路符号翻译器347,以进行进一步处理。在本发明示范性的一个方面中,该外部回路中央处理器349和外部回路符号翻译器353可适于处理随后的或未来的报头信息,而内部回路中央处理器345和内部回路符号翻译器347可处理当前宏块信息。
该内部回路符号翻译器347可适于处理端口编码器329传送未处理的基本视频流中的宏块信息。然后,该内部回路符号翻译器347可生成输出信号,该输出信号包括如获得的宏块类型信息、片段类型信息、预测模式信息、运动矢量信息和/或量化频率系数。该输出信号可通过总线357传送至处理模块343,在宏块解码期间使用。
处理模块343可使用内部回路符号翻译器347生成的处理信息生成解码视频流361。该处理模块343包括适合的电路、逻辑和/或代码,适于执行一个或多个以下处理任务空间预测、运动补偿、逆量化和变换、宏块重建、回路内宏块滤波和/或宏块后处理。处理模块343内的每一处理任务可使用一个或多个辅助块,该辅助块符合被用于编码基本视频流331的特定编码方法。在这一点上,处理模块323可适于解码使用多个编码方法如H.261、H.263、H.263+(Annex J)、H.264、VC-1、MPEG-1、MPEG-2和/或MPEG-4之一编码的基本视频流。
图4A是根据本发明的实施例的示例性的具有硬件辅助块和单一CPU的多标准视频解码器的结构图。如图4A所示,该多标准视频解码器400包括端口编码器(CIP)403、符号翻译器405、中央处理器(CPU)407、空间预测模块409、逆量化和变换(IQT)模块411、运动补偿模块413、重建器415、内部回路滤波器417、帧缓冲器419和后处理模块421。
该端口编码器403包括适合的电路、逻辑和/或代码,可适于接收视频基本码流401并生成起始码、起始码后缀和未处理的基本流。端口编码器403包括起始码寻找模块423和字节解除模块425。该起始码寻找模块423可适于确定起始码和起始码后缀,如图1所示。字节解除模块425可适于从视频基本码流401解除额外字节,并生成未处理的基本流数据,如图2所示。起始码、起始码后缀和未处理的基本流在端口编码器403内生成后,该起始码后缀426可被传送至中央处理器407,未处理的基本流可被传送至符号翻译器405,以进一步处理。
在在本发明的一个示范性实施例中,该多标准视频解码器400可使用中央处理器407和符号翻译器405处理来自端口编码器403生成的未处理的基本比特流的报头信息和/或宏块信息。来自未处理的基本比特流的报头信息可包括片段信息、画面信息、GOP/切入点信息和/或序列信息。端口编码器403生成的未处理的基本视频流内片段信息包包括相应于特定片段的片段报头信息和宏块信息。
符号翻译器405包括适合的电路、逻辑和/或代码,可适于翻译从端口编码器403获得的未处理的基本流424,获得未处理的基本视频流424解码所需的量化的频率系数信息和/或附加旁信息。该符号翻译器405也可将随后的宏块和/或未处理的基本视频流内的帧上的视频信息通过连接406传送至中央处理器407。该中央处理器407从端口编码器403获得起始码后缀426后,可根据与获得的起始码后缀426相关的编码方法,生成符号翻译器的一个或多个解码指令。该中央处理器407可适于通过连接408将这些解码指令提供给符号翻译器405来将该符号翻译器405程序化。该中央处理器407也可根据在后续宏块或帧上的接收视频信息,通过连接406传送解码指令给符号翻译器45。
根据本发明的一个方面,输入的基本视频流401包括根据多个编码标准如H.261、H.263、H.263+(Annex J)、H.264、VC-1、MPEG-1、MPEG-2和/或MPEG-4之一编码的视频数据。符号翻译器405,使用来自中央处理器407的指令,可适于解码一个或多个符号和/或附加处理信息,如报头和/或宏块信息,用于完成从端口编码器403接收的未处理的基本流424的解码。该符号翻译器可包括特定于每一被使用的编码模式的多个解码辅助模块,以解码未处理的基本流424。
在本发明的一个示例性的实施例中,该符号翻译器405包括固定长度编码(fixed length coding,简称FLC)模块427、可变长度编码(variblelength coding,简称VLC)模块429和/或上下文自适应二进制算法编码(context adaptive binary arithmetic coding,简称CABAC)模块433、系数构造模块435和矢量构造模块437。符号翻译器405内的解码辅助模块可用于根据从端口编码器403生成的起始码后缀426获得并传送至中央处理器407的解码方法信息解码过程中。FLC模块427、VLC模块429和CABAC模块433可被符号翻译器405用于解码/翻译单一语法元,该单一语法元来自分别使用固定长度编码、可变长度编码或CABAC编码技术编码的未处理的基本流424。
系数构造模块435可适于从未处理的基本流424生成一个或多个量化频率系数。该系数构造模块435生成的量化的频率系数随后用于多标准视频解码器400内,以生成一个或多个宏块重建过程中使用的预测错误信息。该生成的量化频率系数可被符号翻译器405传送至IQT模块411,以进一步处理。
相似地,矢量构造模块437可适于从未处理的基本流424生成一个或多个运动矢量。该矢量构造模块437生成的运动矢量可用于多标准视频解码器400内,以生成一个或多个宏块重建过程中使用的预测像素。该生成的运动矢量信息可被符号翻译器传送至运动补偿模块413,以进一步处理。
空间预测模块409包括适合的电路、逻辑和/或代码,可适于生成被重建器415用来生成解码宏块的预测像素。该空间预测模块409可适于如从符号翻译器获得宏块类型信息、片段类型信息和/或预测模式信息。而后,该空间预测模块409可使用所获的的宏块类型信息、片段类型信息和/或预测模式信息为空间上被预测的宏块生成预测像素。
运动补偿模块413包括适合的电路、逻辑和/或代码,可适于使用从符号翻译器405接收的运动矢量信息,生成预测像素。例如,该运动补偿模块413可为时间上被预测的宏块生成预测像素,可与当前帧/域相邻的帧/域中的运动补偿矢量相关联。该运动补偿模块413可从帧缓冲器419获得在先和/或随后的帧/域,并使用获得的先和/或随后的帧/域预测当前宏块内的时间上的编码像素。
该运动补偿模块413包括多个运动补偿辅助模块,可用于根据用于编码未处理的基本流数据424的方法生成预测像素。例如,该运动补偿模块413包括范围重设模块447、强度补偿模块449、插入模块451、可变块尺寸模块453和双向预测模块455。该插入模块451可适于使用从符号翻译器45接收的运动矢量信息插入当前帧内一个或多个预测像素以及插入一个或多个时间上与当前帧相邻的参考帧。
如果仅使用一个参考帧插入预测像素,该插入模块451可用于生成预测象素。然而,如果多于一个预测参考帧被用于当前像素的时间预测过程中,运动补偿模块413可使用双向预测模块455生成预测像素。例如,如果几个参考帧被用于当前像素的预测,双向预测模块455可确定当前预测像素作为参考帧中的预测像素的平均值。
范围重设模块447可被运动补偿模块413用于VC-1标准编码的未处理的基本流的编码过程中。更特殊的是,该范围重设模块447可用于在插入模块451插入之前,重设参考帧的动态范围。强度补偿模块449可被运动补偿模块413用于在插入模块451插入之前,将参考帧的强度水平调整至当前帧的强度水平。
可变块尺寸模块453可被运动补偿模块413用于控制从帧缓冲器419获得的参考帧的应用。例如,该可变块尺寸模块453可从帧缓冲器419取一个16×16、16×8和/或4×4像素尺寸宏块以用于当前宏块内像素的时间预测期间。当运动补偿模块413内运动补偿预测期间需要时,其他宏块和/或帧尺寸也可被帧缓冲器419支持。
IQT模块411包括适合的电路、逻辑和/或代码,可适于将从符号翻译器接收的量化频率系数转换为一个或多个预测错误。更特殊地是,该IQT模块411可适于使用逆量化模块443和逆变换模块445将量化频率系数变换回空间域,由此生成预测错误信息。而后,该IQT模块411生成的预测错误信息被传送至重建器415,以在宏块重建期间进一步处理。
逆锯齿模块439可被IQT模块411用于在被逆变换模块445逆变换之前,重新排列从符号翻译器405接收的量化频率系数。符号翻译器405生成的量化频率系数可被安排锯齿(Z形)扫描顺序,以便于编码。因此逆锯齿模块439可使用一个或多个查找表将量化频率系数以如连续的顺序进行安排。
根据未处理的基本流424地编码方法,IQT模块41在预测错误信息解码期间可使用AC/DC预测模块441。例如,量化频率系数可使用来自相邻像素的预测剩余和预测错误,在未处理的基本流424内被编码。更进一步,AC/DC预测模块441内的DC预测可相应于生成预测错误信息所使用的零频率系数。AC/DC预测模块441内的AC预测可相应于生成预测错误信息所使用的低频率系数。符号翻译器、运动补偿模块、空间预测模块和逆量化和变换模块操作上的其他信息更充分地揭露于序列号为10/963,677(机构代码案件编号为15748US02)、申请日为2004年10月13日的美国专利申请中,该申请在此作为全面参考。
重建器415可适于分别从空间预测模块409或运动补偿模块获得空间预测像素或时间预测像素。此外,该重建器415可适于获得IQT模块411生成的预测错误信息。而后,该重建器可使用预测像素和预测错误信息重建当前宏块。该重建宏块可传送至内部回路滤波器417以作进一步处理。
该内部回路滤波器417包括适合的电路、逻辑和/或代码,可适于进一步滤波从重建器415获得的解码/重建宏块。根据未处理的基本流424地编码方法,该内部回路滤波器417可包括重叠变换模块457和解块模块459。该重叠变换模块457可用于从以VC-1标准编码的未处理的基本流424生成的宏块的滤波的过程中。更特殊地是,重叠变换模块457可将重叠变换应用于重建的宏块以减小沿该重建的宏块一个或多个边缘的边缘人为因素。同样地,解块模块459也可被内部回路滤波器417用于减小沿该重建的宏块一个或多个边缘地边缘人为因素并变换块效应。解码器中解块和解块存储应用上有关的其他信息更充分地揭露于序列号为10/965,172(机构代码案件编号为15756US02)、申请日为2004年10月13日和序列号为10/972,931(机构代码案件编号为15757US02)、申请日为2004年10月25日的美国专利申请中,该两申请在此作为全面参考。
重建宏块被内部回路滤波器417滤波后,附加后处理可由后处理模块421执行。根据新基本流424的编码方法,后处理模块可使用一个或多个以下后处理辅助模块范围重设模块461、尺寸调整模块463、解块模块465和/或解环模块467。如果以VC-1标准编码的过程中,一个宏块或一组宏块的动态范围被改变,则该范围重设模块46可被后处理模块421使用。以这种方式,所有传送至显示后处理器的解码宏块469被同一个动态范围描述。
尺寸调整模块463可被后处理模块421用来缩放/调整尺寸一个编码期间被尺寸升级或降级的宏块。通过使用尺寸调整模块463,后处理模块421可生成具有相同清晰度的解码的宏块469。解环模块467可用于消弱过度量化的AC系数生成的重构宏块内的“飞蚊噪声”。解块模块465类似于内部回路滤波器417内的解块模块459,可用于进一步减小边缘人为因素,并优先于将宏块传送至如显示后处理器,变换沿该重建的宏块一个或多个边缘的块效应。
图4B是根据本发明的实施例的示例性的具有硬件辅助块和CPU对的多标准视频解码器的结构示意图。如图4B所示,该多标准视频解码器470包括端口编码器(CIP)471、外部回路中央处理器(OLCPU)473、外部回路符号翻译器(OLSI)475、内部回路中央处理器(ILCPU)477和内部回路符号翻译器(ILSI)479。该多标准视频解码器470还可包括空间预测模块、逆量化和变换模块、运动补偿模块、重建模块、内部回路滤波模块、帧缓冲器模块和后处理模块(图4B中未示),如图4A中多标准视频编码器的细节说明和描述。
在本发明的一个示范性实施例中,多标准解码器470可使用外部回路中央处理器473和外部回路符号翻译器475处理来自视频基本比特流480的报头信息。内部回路中央处理器477和内部回路符号翻译器479可用于处理来自视频基本比特流480的宏块信息。以这种方式,可在多标准视频解码器470中实现平行处理,当外部回路中央处理器473和外部回路符号翻译器475可处理未来报头信息时,内部回路中央处理器477和内部回路符号翻译器479可处理当前宏块信息。来自基本比特流480的报头信息可包括如片段信息、画面信息、GOP/切入点信息和/或序列信息。
在操作过程中,端口编码器471可接收视频基本码流480并生成起始码和起始码后缀481以及未处理的基本流482。该起始码和起始码后缀481被传送至外部回路中央处理器473处理,未处理的基本流482被传送至外部回路符号翻译器475处理。外部回路中央处理器473和外部回路符号翻译器475可适于仅处理来自起始码和起始码后缀481以及未处理的基本流482的报头信息。外部回路中央处理器473通过如系统传送端口483与离线视频处理系统相连接。
外部回路符号翻译器475包括可变长度编码(varible length coding,简称VLC)模块484和固定长度编码(fixed length coding,简称FLC)模块472。该VLC模块484和FLC模块472可用于解码来自端口解码器471接收的未处理的基本流482的报头信息。例如,报头信息485可从未处理的基本流482取出,由此生成输出比特流486。该输出比特流486包括宏块相关信息,并可传送至内部回路符号翻译器479进一步处理。外部回路中央处理器473处理来自起始码和起始码后缀481的报头信息后,结果处理控制信息476可被传送至内部回路中央处理器477进一步处理。该过程控制信息476包括控制信息,该控制信息相应于包含宏块信息的信息包,如输出比特流486中的信息包。
当外部回路中央处理器473和外部回路符号翻译器475可处理后续报头信息时,内部回路中央处理器477和内部回路符号翻译器479可适于同时为当前宏块处理与宏块相关的信息。内部回路符号翻译器479,与图4A的符号翻译器405相似,可适于生成输出信号487。该输出信号包括如获得的宏块类型信息、片段类型信息、预测模式信息、运动矢量信息和/或量化频率系数。该获得的宏块类型信息、片段类型信息和/或预测模式信息可传送至空间预测模块(图未示),如图4A所示空间预测模块409,以进一步处理及为空间上预测的宏块生成预测像素。
运动矢量信息490可传送至运动补偿模块(图未示),如图4A所示的运动补偿模块413,以进一步处理及为时间上预测的宏块生成预测像素。量化频率系数489可传送至逆量化和变换模块(图未示),如图4A所示的逆量化和变换模块411,以进一步处理及生成宏块解码期间使用的预测错误。
图5是根据本发明的实施例的示例性的当解码H.264视频数据时,图4所示多标准视频解码器500的运行的结构图。如图5所示,该多标准视频解码器500可适于处理使用H.264编码技术编码的视频基本码流401。端口编码器403可使用起始码寻找模块423确定起始码和起始码后缀,使用字节解除模块425从H.264编码视频基本码流401移除额外字节。
符号翻译器405可适于翻译从端口编码器403获得的H.264未处理的基本流424,以获得量化频率系数信息和/或附加旁信息,如H.264未处理的基本视频流424解码需要的宏块类型信息、片段类型信息、预测模式信息和/或运动矢量信息。量化频率系数信息和/或附加旁信息生成过程中,符号翻译器405可接收中央处理器407的指令,并向中央处理器407提供后续符号信息。此外,符号翻译器可使用下列辅助模块的一个或多个FLC模块427、VLC模块429、CABAC模块433、系数构造模块435和/或矢量构造模块437。
逆量化频率系数可从符号翻译器405传送至IQT模块411,可生成预测错误信息。IQT模块411可使用逆锯齿模块439、逆量化模块443和/或逆变换模块445生成预测错误信息。来自符号翻译器405的旁信息可被传送至空间预测模块409或运动补偿模块413,生成预测像素。运动补偿模块413可使用帧缓冲器419以及强度补偿模块449、插入模块451、可变块尺寸模块453和/或双向预测模块455生成时间上的预测像素。
而后,重建器415可被多标准解码器500用于使用分别从空间预测模块409或运动补偿模块413获得的预测像素信息,以及从IQT模块411获得的预测错误信息,重建当前宏块。重建的宏块可被内部回路滤波器417使用解块模块459滤波。滤波后的宏块可进一步被后处理模块421处理。后处理模块421可使用解环模块467生成解码的宏块469。而后,该解码的宏块469可被传送至如显示后处理器。
图6是根据本发明和实施例的示例性的当解码VC-1视频数据时,图4所示多标准视频解码器600的运行的结构图。如图6所示,该多标准视频解码器600可适于处理使用VC-1编码技术编码的视频基本码流401。端口编码器403可使用起始码寻找模块423确定起始码和起始码后缀,使用字节解除模块425从VC-1编码视频基本码流401移除额外字节。
符号翻译器405可适于翻译从端口编码器403获得的VC-1未处理的基本流424,以获得量化频率系数信息和/或附加旁信息,如VC-1未处理的基本视频流424解码需要的宏块类型信息、片段类型信息、预测模式信息和/或运动矢量信息。量化频率系数信息和/或附加旁信息生成过程中,符号翻译器405可接收中央处理器407的指令,并向中央处理器407提供后续符号信息。此外,符号翻译器可使用下列辅助模块的一个或多个FLC模块427、VLC模块429、系数构造模块435和/或矢量构造模块437。
逆量化频率系数可从符号翻译器405传送至IQT模块411,可生成预测错误信息。IQT模块411可使用逆锯齿模块439、AC/DC预测模块441、逆量化模块443和/或逆变换模块445生成预测错误信息。来自符号翻译器405的旁信息可被传送至运动补偿模块413,生成预测像素。运动补偿模块413可使用帧缓冲器419以及强度补偿模块449、范围重设模块447、插入模块451、可变块尺寸模块453和/或双向预测模块455生成时间上的预测像素。帧缓冲器419可适于存储和提供至少两个参考帧/画面给运动补偿模块413。
而后,重建器415可被多标准解码器600用于使用从运动补偿模块413获得的预测像素信息,以及从IQT模块411获得的预测错误信息,重建当前宏块。重建的宏块可被内部回路滤波器417使用解块模块459和/或重叠变换模块457滤波。滤波后的宏块可进一步被后处理模块421处理。后处理模块421可使用解环模块467、范围重设模块461、尺寸调整模块463和/或解块模块465生成解码的宏块469。而后,该解码的宏块469可被传送至如显示后处理器。
图7是根据本发明的实施例的示例性的当解码MPEG-1或PMEG-2视频数据时,图4所示多标准视频解码器700的运行的结构图。如图7所示,该多标准视频解码器700可适于处理使用MPEG-1或MPEG-2编码技术编码的视频基本码流401。端口编码器403可使用起始码寻找模块423确定MPEG-1或MPEG-2编码视频基本码流401内的起始码和起始码后缀。
符号翻译器405可适于翻译从端口编码器403获得的MPEG-1或MPEG-2未处理的基本流424,以获得量化频率系数信息和/或附加旁信息,如MPEG-1或MPEG-2未处理的基本视频流424解码需要的宏块类型信息、片段类型信息、预测模式信息和/或运动矢量信息。量化频率系数信息和/或附加旁信息生成过程中,符号翻译器405可接收中央处理器407的指令,并向中央处理器407提供后续符号信息。此外,符号翻译器可使用下列辅助模块的一个或多个FLC模块427、VLC模块429、系数构造模块435和/或矢量构造模块437。
逆量化频率系数可从符号翻译器405传送至IQT模块411,可生成预测错误信息。IQT模块411可使用逆锯齿模块439、逆量化模块443和/或逆变换模块445生成预测错误信息。来自符号翻译器405的旁信息可被传送至运动补偿模块413,生成预测像素。运动补偿模块413可使用帧缓冲器419以及插入模块451、可变块尺寸模块453和/或双向预测模块455生成时间上的预测像素。帧缓冲器419可适于存储和提供至少两个参考帧/画面给运动补偿模块413。
而后,重建器415可被多标准解码器700用于使用从运动补偿模块413获得的预测像素信息,以及从IQT模块411获得的预测错误信息,重建当前宏块。重建的宏块可进一步被后处理模块421处理。后处理模块421可使用解环模块467和/或解块模块465生成解码的宏块469。而后,该解码的宏块469可被传送至如显示后处理器。
图8是根据本发明的实施例的示例性的当解码MPEG-4视频数据时,图4所示多标准视频解码器800的运行的结构图。如图8所示,该多标准视频解码器800可适于处理使用MPEG-4编码技术编码的视频基本码流401。端口编码器403可使用起始码寻找模块423确定MPEG-4编码视频基本码流401内的起始码和起始码后缀。
符号翻译器405可适于翻译从端口编码器403获得的MPEG-4未处理的基本流424,以获得量化频率系数信息和/或附加旁信息,如MPEG-4未处理的基本视频流424解码需要的宏块类型信息、片段类型信息、预测模式信息和/或运动矢量信息。量化频率系数信息和/或附加旁信息生成过程中,符号翻译器405可接收中央处理器407的指令,并向中央处理器407提供后续符号信息。此外,符号翻译器可使用下列辅助模块的一个或多个FLC模块427、VLC模块429、系数构造模块435和/或矢量构造模块437。
逆量化频率系数可从符号翻译器405传送至IQT模块411,可生成预测错误信息。IQT模块411可使用逆锯齿模块439、AC/DC预测模块441、逆量化模块443和/或逆变换模块445生成预测错误信息。来自符号翻译器405的旁信息可被传送至运动补偿模块413,生成预测像素。运动补偿模块413可使用帧缓冲器419以及插入模块451、可变块尺寸模块453和/或双向预测模块455生成时间上的预测像素。帧缓冲器419可适于存储和提供至少两个参考帧/画面给运动补偿模块413。
而后,重建器415可被多标准解码器800用于使用从运动补偿模块413获得的预测像素信息,以及从IQT模块411获得的预测错误信息,重建当前宏块。重建的宏块可进一步被后处理模块421处理。后处理模块421可使用解环模块467和/或解块模块465生成解码的宏块469。而后,该解码的宏块469可被传送至如显示后处理器。
图9是根据本发明的实施例的处理视频数据流的示范性方法900的流程图。如图9所示,在步骤901,接收视频基本码流内的打包数据,其中视频基本码流可根据多个编码方法之一编码。在步骤903,确定该打包数据内的起始码,其中该起始码可定义封装视频有效载荷。在步骤905,确定打包数据中的标识符,该标识符定义一种或多种与该视频基本码流中的信息包关联的编码类型。在步骤907,基于所确定的标识符,从多个解码方法中选择一个解码方法。在步骤909,基于所选解码方法,所定义的封装视频有效载荷可被解码。
因此,本发明可以在硬件、软件、固件或硬件和软件组合中实现。本发明可以在至少一个计算机系统中以集中方式实现或以分布方式实现,该分布方式是指不同元件分布于几个相互连接的计算机系统。任一种计算机或其他适于执行这里所描述的方法的设备都是适合的。一种典型的硬件、软件和固件的结合可以是具有计算机程序的多用途计算机系统,其中计算机程序可以被下载和执行,并控制计算机系统以使计算机系统执行这里所描述的方法。
本发明的一个实施例也可作为组件级产品、作为单一芯片、特殊用途集成电路(ASIC)实现,或者具有集成于单一芯片、与系统的其他部分不同级,作为分开元件实现。该系统的集成度由速度或成本考量初步确定。由于现代处理器种类繁杂,使用商业上可行的处理器是可能的,该处理器可以超出现有系统的ASIC实现方式的方法实现。作为选择,如果处理器作为ASIC核或逻辑块是有效的,那么商业上有效的处理器可作为具有各种功能、作为固件实现的ASIC设备的一部分被实现。
本发明也可以被嵌入计算机程序产品中,该计算机程序产品包括所有能够执行这里所描述的方法的特征,且当被下载到计算机系统中时,能够执行这些方法。这里所说的计算机程序可以采用一组指令的任何表达形式,如用任何语言、代码或符号表达,该组指令能够使一具有信息处理能力的系统执行直接或在将该指令以下列方式之一或全部处理后a)转换成另一种语言、代码或符号,b)用不同材料形式复制,执行特定功能。然而,本领域的普通技术人员来说可以理解的计算机程序的其他方法可被本发明预期。
虽然本发明已参考某些实施例进行了描述,对本领域的普通技术人员来说可以理解,各种改变及等同将不脱离本发明的范围。另外,很多对本发明所述内容的适合特别情况和材料的修改也不脱离本发明的范围。因此,本发明不限于所揭示的特定实施例,本发明将包括所有落入权利要求范围中的实施例。
本申请主张申请日为2004年5月21日的美国临时专利申请60/568926(代理机构编号15747US01)的优先权。该申请在此作为本申请的全面参考。
本申请与以下申请有关,其中每件申请都可在此作为本申请的全面参考美国专利申请序列号为10/963,677(代理机构案件编号15748US02),申请日为2004年10月13日;美国专利申请序列号为10/985,501(代理机构案件编号15749US02),申请日为2004年11月10日;美国专利申请序列号为_____(代理机构案件编号15750US02),申请日为2004年_____;美国专利申请序列号为10/985,110(代理机构案件编号15751US02),申请日为2004年11月10日;
美国专利申请序列号为10/981,218(代理机构案件编号15754US02),申请日为2004年11月04日;美国专利申请序列号为10/965,172(代理机构案件编号15756US02),申请日为2004年10月13日;美国专利申请序列号为10/971,931(代理机构案件编号15757US02),申请日为2004年10月25日;美国专利申请序列号为10/974,179(代理机构案件编号15759US02),申请日为2004年10月27日;美国专利申请序列号为10/974,872(代理机构案件编号15760US02),申请日为2004年10月27日;美国专利申请序列号为10/970,923(代理机构案件编号15761US02),申请日为2004年10月21日;美国专利申请序列号为10/963,680(代理机构案件编号15762US02),申请日为2004年10月13日;美国专利申请序列号为_____(代理机构案件编号15763US02),申请日为2004年____;美国专利申请序列号为_____(代理机构案件编号15792US01),申请日为2004年____;美国专利申请序列号为_____(代理机构案件编号15810US02),申请日为2004年____;及美国专利申请序列号为_____(代理机构案件编号15811US02),申请日为2004年____。
权利要求
1.一种处理编码视频流的方法,其特征在于,该方法包括在芯片上接收编码视频流内的打包数据;在所述芯片上确定所接收打包数据内的标识符,该标识符定义与该编码视频流中的信息包相关联的多个编码类型之一;在所述芯片上,基于所确定的标识符,从多个解码方法中选择一个解码方法;及在所述芯片上使用所选解码方法解码编码视频流中所接收打包数据的至少一部分。
2.根据权利要求1所述的处理编码视频流的方法,其特征在于,该方法进一步包括在所述芯片上确定所接收打包数据内的起始码,该起始码分隔编码视频流内的信息包。
3.根据权利要求2所述的处理编码视频流的方法,其特征在于,该方法进一步包括将所接收打包数据内的多个字节与确定字节序列相匹配。
4.根据权利要求3所述的处理编码视频流的方法,其特征在于,该方法进一步包括如果该多个字节与该确定字节序列相匹配,则从该所接收打包数据移除该多个字节。
5.根据权利要求1所述的处理编码视频流的方法,其特征在于,该方法进一步包括如果所确定的标识符符合H.264视频编码,则使用固定长度编码(FLC)方法、可变长度编码(VLC)方法和上下文自适应二进制算法编码(CABAC)方法至少之一解码所接收打包数据的所述至少一部分。
6.一种机器可读存储器,其特征在于,机器可读存储器存储具有至少一个代码部分的计算机程序,以处理编码视频流,该至少一个代码部分由一个机器执行,执行的步骤包括在芯片上接收编码视频流内的打包数据;在所述芯片上确定所接收打包数据内的标识符,该标识符定义与该编码视频流中的信息包相关联的多个编码类型之一;在所述芯片上,基于所确定的标识符,从多个解码方法中选择一个解码方法;及在所述芯片上使用所选解码方法解码编码视频流中所接收打包数据的至少一部分。
7.一种处理编码视频流的系统,其特征在于,该系统包括至少一个处理器,在芯片上接收编码视频流内的打包数据;所述至少一个处理器在所述芯片上确定所接收打包数据内的标识符,该标识符定义与该编码视频流中的信息包相关联的多个编码类型之一;所述至少一个处理器在所述芯片上基于该确定的标识符从多个解码方法中选择一个解码方法;及所述至少一个处理器在所述芯片上使用所选解码方法解码编码视频流中所接收打包数据的至少一部分。
8.根据权利要求7所述的系统,其特征在于,所述至少一个处理器在所述芯片上确定所接收打包数据内的起始码,该起始码分隔编码视频流内的信息包。
9.根据权利要求7所述的系统,其特征在于,所述至少一个处理器将所接收打包数据内的多个字节与确定字节序列相匹配。
10.一种处理编码视频流的方法,其特征在于,该方法包括使用第一CPU解码来自编码视频流的报头信息;及当所述第一CPU解码所述报头信息时,使用第二CPU解码来自编码视频流的宏块信息。
全文摘要
本发明揭示了一种处理编码视频流的方法和系统。该方法包括在芯片上接收编码视频流内的打包数据。在所述芯片上确定所接收打包数据内的标识符,该标识符定义与该编码视频流中的信息包关联的多个编码类型之一。在所述芯片上基于所确定的标识符从多个解码方法中选择一解码方法。在所述芯片上使用所选解码方法解码编码视频流中所接收打包数据的至少一部分。确定所接收打包数据内的报头,该报头分隔编码视频流内的信息包。将所接收打包数据内的多个字节与确定字节序列相匹配。
文档编号H04N5/00GK1870757SQ20051007463
公开日2006年11月29日 申请日期2005年5月23日 优先权日2004年10月13日
发明者斯蒂芬·戈登 申请人:美国博通公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1