视频获取和处理系统转让专利

申请号 : CN200980158007.3

文献号 : CN102356635A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : J·鲁宾斯坦A·鲁亚科斯F·哈比伯D·丘托夫

申请人 : 美信集成产品公司

摘要 :

本发明的实施方案是视频获取和处理系统。本发明的一个实施方案,视频获取和处理系统包括完全集成在单个集成电路中的传感器、图像信号处理器以及视频压缩和解压缩部件。集成的传感器和图像信号处理器以图像数据被高度并行地发送到视频压缩和解压缩部件为特征。这种高度并行流水线式专用集成电路实施方式提供具有成本效益的视频获取和图像数据处理以及极其大的计算带宽、相对低的功耗和用于处理视频信号的低延迟。

权利要求 :

1.一种视频获取和处理系统,所述视频获取和处理系统包括:

传感器;

图像信号处理器,所述传感器和图像信号处理器被配置,以致所述传感器将检测的光转换为原始图像数据,所述原始图像数据随后被所述图像信号处理器转换为具有特定颜色模型和格式的图像数据;以及视频压缩和解压缩部件,所述视频压缩和解压缩部件被配置为,以接收从所述图像信号处理器输出的图像数据,并且将所述图像数据转换为压缩的视频数据流。

2.如权利要求1所述的系统,其中所述传感器和图像信号处理器在第一集成电路中被实现,并且所述视频压缩和解压缩部件在第二集成电路中被实现。

3.如权利要求2所述的系统,其中所述第一集成电路还包括大约40个到大约90个引脚的引脚数。

4.如权利要求2所述的系统,其中当以大约65纳米的加工技术制作所述第一集成电路时,所述第一集成电路消耗大约300毫瓦到大约720毫瓦。

5.如权利要求2所述的系统,其中当以大约40纳米的加工技术制作所述第一集成电路时,所述第一集成电路消耗大约180毫瓦到大约450毫瓦。

6.如权利要求2所述的系统,其中当以大约32纳米的加工技术制作所述第一集成电路时,所述第一集成电路消耗大约100毫瓦到大约220毫瓦。

7.如权利要求2所述的系统,其中当以大约20纳米的加工技术制作所述第一集成电路时,所述第一集成电路消耗大约40毫瓦到大约150毫瓦。

8.如权利要求2所述的系统,其中所述第一集成电路被构造为具有从大约25平方毫米到大约160平方毫米的外形尺寸范围。

9.如权利要求2所述的系统,其中所述第二集成电路还包括大约50个到大约500个引脚的引脚数。

10.如权利要求2所述的系统,其中当以大约65纳米的加工技术制作所述第二集成电路时,所述第二集成电路消耗大约180毫瓦到大约720毫瓦。

11.如权利要求2所述的系统,其中当以大约40纳米的加工技术制作所述第二集成电路时,所述第二集成电路消耗大约90毫瓦到大约550毫瓦。

12.如权利要求2所述的系统,其中当以大约32纳米的加工技术制作所述第二集成电路时,所述第二集成电路消耗大约70毫瓦到大约350毫瓦。

13.如权利要求2所述的系统,其中当以大约20纳米的加工技术制作所述第二集成电路时,所述第二集成电路消耗大约40毫瓦到大约200毫瓦。

14.如权利要求2所述的系统,其中所述第二集成电路被构造为具有从大约40平方毫米到大约170平方毫米的外形尺寸范围。

15.如权利要求2所述的系统,其中所述第一集成电路还包括图像输出接口,所述图像输出接口用于发送输出到所述视频压缩和解压缩部件的具有所述颜色模型和格式的图像数据。

16.如权利要求1所述的系统,还包括网络/传输,所述网络/传输用于以并行或串行结构发送从所述视频压缩和解压缩部件输出的压缩的图像数据。

17.如权利要求16所述的系统,其中所述压缩的视频数据流以以太网包的形式输出。

18.如权利要求16所述的系统,其中所述压缩的视频数据流以并行数据流或串行数据流中的至少一种形式输出。

19.如权利要求1所述的系统,其中所述图像信号处理器还包括数字信号处理器。

20.如权利要求1所述的系统,还包括与所述视频压缩和解压缩部件电通信的存储器,所述存储器被构造为具有大约8个到大约160个引脚。

21.如权利要求20所述的系统,其中当以大约65纳米的加工技术制作所述存储器时,所述存储器消耗大约280毫瓦到大约550毫瓦,并且具有大约90平方毫米到大约160平方毫米的外形尺寸。

22.如权利要求20所述的系统,其中当以大约40纳米的加工技术制作所述存储器时,所述存储器消耗大约170毫瓦到大约320毫瓦,并且具有大约50平方毫米到大约150平方毫米的外形尺寸。

23.如权利要求20所述的系统,其中当以大约32纳米的加工技术制作所述存储器时,所述存储器消耗大约80毫瓦到大约170毫瓦,并且具有大约25平方毫米到大约100平方毫米的外形尺寸。

24.如权利要求25所述的系统,其中当以大约32纳米的加工技术制作所述存储器时,所述存储器消耗大约50毫瓦到大约110毫瓦,并且具有大约20平方毫米到大约80平方毫米的外形尺寸。

25.如权利要求1所述的系统,其中所述视频压缩和解压缩部件还包括集成的存储器。

26.如权利要求1所述的系统,其中原始图像数据以宏块形式从所述传感器被输出到所述图像信号处理器。

27.如权利要求1所述的系统,其中所述视频压缩和解压缩部件被构造来接收和解压缩压缩的视频数据流。

28.一种视频获取和处理系统,所述视频获取和处理系统包括:传感器,所述传感器被构造来将检测的光转换为原始图像数据;以及视频压缩和解压缩部件,所述视频压缩和解压缩部件被配置来从所述传感器接收所述原始图像数据,随后将所述原始图像数据转换为具有特定颜色模型和格式的图像数据,并且将所述图像数据转换为压缩的视频数据流。

29.如权利要求28所述的系统,其中所述视频压缩和解压缩部件还包括:集成的存储器;以及

网络传输装置,所述网络传输装置被构造来以并行或串行数据结构输出所述压缩的图像数据。

30.如权利要求29所述的系统,其中所述压缩的视频数据流还包括以太网包。

31.如权利要求29所述的系统,其中所述压缩的视频数据流还包括串行数据流和并行数据流中的至少一个。

32.如权利要求28所述的系统,其中所述传感器和视频压缩和解压缩部件在单个集成电路中被实现。

33.如权利要求32所述的系统,其中所述视频获取和处理系统还包括大约40个到大约

100个引脚的引脚数。

34.如权利要求32所述的系统,其中当以大约65纳米的加工技术制作所述视频获取和处理系统时,所述视频获取和处理系统消耗大约250毫瓦到大约900毫瓦。

35.如权利要求32所述的系统,其中当以大约40纳米的加工技术制作所述视频获取和处理系统时,所述视频获取和处理系统消耗大约150毫瓦到大约600毫瓦。

36.如权利要求32所述的系统,其中当以大约32纳米的加工技术制作所述视频获取和处理系统时,所述视频获取和处理系统消耗大约50毫瓦到大约300毫瓦。

37.如权利要求32所述的系统,其中当以大约20纳米的加工技术制作所述视频获取和处理系统时,所述视频获取和处理系统消耗大约20毫瓦到大约200毫瓦。

38.如权利要求32所述的系统,其中所述视频获取和处理系统被构造为具有从大约30平方毫米到150平方毫米的外形尺寸范围。

39.如权利要求30所述的系统,其中原始图像数据以宏块形式从所述传感器被输出到所述图像信号处理器。

40.如权利要求28所述的系统,其中所述视频压缩和解压缩部件被构造来接收和解压缩压缩的视频数据流。

41.一种视频摄像机系统,所述视频摄像机系统包括:

透镜系统,所述透镜系统用于获取从场景反射的光;

聚焦系统,所述聚焦系统用于使所述光聚焦;

传感器和图像信号处理器,所述传感器和图像信号处理器被配置,以致所述传感器将检测的光转换为原始图像数据,所述原始图像数据随后被所述图像信号处理器转换为具有颜色模型和格式的图像数据;以及视频压缩和解压缩部件,所述视频压缩和解压缩部件被配置来从所述图像信号处理器接收所述图像数据,并且输出压缩的视频数据流。

42.如权利要求41所述的系统,其中所述传感器、图像信号处理器以及视频压缩和解压缩部件在单个集成电路中被实现。

43.如权利要求42所述的系统,其中所述视频获取和处理系统还包括大约40个到大约

90个引脚的引脚数。

44.如权利要求42所述的系统,其中当以大约65纳米的加工技术制作所述视频获取和处理系统时,所述视频获取和处理系统消耗大约300毫瓦到大约720毫瓦。

45.如权利要求42所述的系统,其中当以大约40纳米的加工技术制作所述视频获取和处理系统时,所述视频获取和处理系统消耗大约180毫瓦到大约450毫瓦。

46.如权利要求42所述的系统,其中当以大约32纳米的加工技术制作所述视频获取和处理系统时,所述视频获取和处理系统消耗大约100毫瓦到大约220毫瓦。

47.如权利要求42所述的系统,其中当以大约20纳米的加工技术制作所述视频获取和处理系统时,所述视频获取和处理系统消耗大约40毫瓦到大约150毫瓦。

48.如权利要求42所述的系统,其中所述视频获取和处理系统被构造为具有从大约25平方毫米到160平方毫米的外形尺寸范围。

49.如权利要求41所述的系统,其中所述传感器和图像信号处理器在第一集成电路中被实现,并且所述视频压缩和解压缩在第二集成电路中被实现。

50.如权利要求49所述的系统,其中所述第一集成电路还包括大约40个到大约90个引脚的引脚数。

51.如权利要求49所述的系统,其中当以大约65纳米的加工技术制作所述第一集成电路时,所述第一集成电路消耗大约300毫瓦到大约720毫瓦。

52.如权利要求49所述的系统,其中当以大约40纳米的加工技术制作所述第一集成电路时,所述第一集成电路消耗大约180毫瓦到大约450毫瓦。

53.如权利要求49所述的系统,其中当以大约32纳米的加工技术制作所述第一集成电路时,所述第一集成电路消耗大约100毫瓦到大约220毫瓦。

54.如权利要求49所述的系统,其中当以大约20纳米的加工技术制作所述第一集成电路时,所述第一集成电路消耗大约40毫瓦到大约150毫瓦。

55.如权利要求49所述的系统,其中所述第一集成电路被构造为具有从大约25平方毫米到大约330平方毫米的外形尺寸范围。

56.如权利要求49所述的系统,其中所述第二集成电路还包括大约50个到大约500个引脚的引脚数。

57.如权利要求49所述的系统,其中当以大约65纳米的加工技术制作所述第二集成电路时,所述第二集成电路消耗大约180毫瓦到大约720毫瓦。

58.如权利要求49所述的系统,其中当以大约40纳米的加工技术制作所述第二集成电路时,所述第二集成电路消耗大约90毫瓦到大约550毫瓦。

59.如权利要求49所述的系统,其中当以大约32纳米的加工技术制作所述第二集成电路时,所述第二集成电路消耗大约70毫瓦到大约350毫瓦。

60.如权利要求49所述的系统,其中当用大约20纳米的加工技术制作所述第二集成电路时,所述第二集成电路消耗大约40毫瓦到大约200毫瓦。

61.如权利要求49所述的系统,其中所述第二集成电路被构造为具有从大约40平方毫米到大约170平方毫米的外形尺寸范围。

62.如权利要求49所述的系统,其中所述第一集成电路还包括图像输出接口,所述图像输出接口用于发送输出到所述视频压缩和解压缩部件的具有所述颜色模型和格式的图像数据。

63.如权利要求41所述的系统,还包括网络/传输,所述网络/传输用于以并行或串行结构发送从所述视频压缩和解压缩部件输出的压缩的视频数据流。

64.如权利要求41所述的系统,其中所述压缩的视频数据流以以太网包的形式输出。

65.如权利要求41所述的系统,其中所述压缩的视频数据流还包括串行数据流和并行数据流中的至少一个。

66.如权利要求41所述的系统,其中所述图像信号处理器还包括数字信号处理器。

67.如权利要求41所述的系统,还包括与所述视频压缩和解压缩部件电通信的存储器,所述存储器被构造为具有大约8个到大约160个引脚。

68.如权利要求67所述的系统,其中当以大约65纳米的加工技术制作所述存储器时,所述存储器消耗大约280毫瓦到大约550毫瓦,并且具有大约90平方毫米到大约160平方毫米的外形尺寸。

69.如权利要求67所述的系统,其中当以大约40纳米的加工技术制作所述存储器时,所述存储器消耗大约170毫瓦到大约320毫瓦,并且具有大约50平方毫米到大约150平方毫米的外形尺寸。

70.如权利要求67所述的系统,其中当以大约32纳米的加工技术制作所述存储器时,所述存储器消耗大约80毫瓦到大约170毫瓦,并且具有大约25平方毫米到大约100平方毫米的外形尺寸。

71.如权利要求67所述的系统,其中当以大约20纳米的加工技术制作所述存储器时,所述存储器消耗大约50毫瓦到大约110毫瓦,并且具有大约20平方毫米到大约80平方毫米的外形尺寸。

72.如权利要求41所述的系统,其中所述视频压缩和解压缩部件还包括集成的存储器。

73.如权利要求41所述的系统,其中原始图像数据以宏块形式从所述传感器被输出到所述图像信号处理器。

74.一种包括根据权利要求41构造的视频摄像机系统的手持机。

说明书 :

视频获取和处理系统

[0001] 相关申请的交叉引用:本申请是2009年2月4日递交的申请No.12/322,571的部分继续申请,申请No.12/322,571是2009年1月12日递交的美国申请No.12/319,750的部分继续申请。

技术领域

[0002] 本发明涉及用于执行视频获取和图像处理的效率高的方法和计算装置。

背景技术

[0003] 计算机器正经历快速发展。早期的电子计算机通常是逐个执行指令流的完全顺序处理机器,所述指令一起构成计算机程序。多年来,电子计算机通常包括单个主处理器,所述主处理器能够快速执行相对小的一组简单指令,所述简单指令包括存储器提取、存储器储存、运算和逻辑指令。通过将计算任务的解决方案编程为一组指令、然后在单处理器计算机系统上执行程序来解决该任务。
[0004] 在电子计算机发展的相对早期,各种附属和支持任务开始从主处理器被移到专用的辅助处理部件。作为一个实施例,开发了分离的I/O控制器,以卸载与在主存储器和各种外部装置之间的交换信息相关联的许多重复性的并且消耗计算带宽的任务,所述外部装置包括大容量储存装置、通信装置、显示装置和用户输入装置。这种将多个处理器元件合并到单主处理器计算机系统中是提高计算并行性的趋势的开始。
[0005] 并行计算目前是现代计算机器设计的主要趋势。在一个极端,各个处理器核心通常提供多个指令流的同时并行执行,并且提供多个指令的组装线式同时执行。大多数计算机,包括个人计算机,现在在每个单片集成电路内合并至少两个处理器核心,并且经常是许多个处理器核心。每个处理器核心可以相对独立地执行多个指令流。电子计算机系统可以包含多个多核处理器,并且可以被一起聚集到大型分布式计算网络中,所述大型分布式计算网络包括彼此互相通信的数十到数千到数十万个分离的计算机系统,并且每个计算机系统执行大型分布式计算任务的一个或更多个可分部分。
[0006] 随着计算机已朝向并行和大规模并行计算系统发展,与并行计算相关联的许多最困难的并且最令人烦恼的问题已被发现与将大型计算任务分解为相对独立的子任务相关联,每个子任务可以由不同的处理实体来执行。当问题没有被适当地分解时,或者当问题不能被分解时,对于并行执行,则利用并行计算机机器通常提供很少的益处或者不提供益处,并且在最糟糕的情况下,实际上将会导致比可以通过在单处理器计算机系统上执行的传统软件实现而获得的执行更慢的执行。当多个计算实体竞争共享资源时,或者根据由其他处理实体共同产生的计算结果,将会耗费极大的计算和通信资源来管理多个计算实体的并行操作。常常,通信开销和计算开销可能比在多个处理器或其他计算实体上执行的并行计算方法的益处重要得多。此外,并行计算可以涉及大量财务成本,并且还有大量功耗和散热成本。
[0007] 因此,虽然从生物系统判断,并行计算看起来是有效率地计算许多计算任务的逻辑方法,并且发展趋势已经在电子计算机发展的短时间段内出现,但是并行计算还与许多复杂性、成本和缺点相关联。尽管许多问题在理论上可以从并行计算方法中受益,但是目前可用的用于并行计算的技术和硬件通常不能为许多计算问题提供有成本效益的方案,特别是对于需要在受限于尺寸约束、散热约束、功耗约束和成本约束的装置内实时地执行的复杂计算。出于这个原因,许多计算主导的领域中的计算机科学家、电气工程师、研究员和开发者、电子装置和电子计算机的制造商和卖主以及最后电子装置和电子计算机的用户都认识到需要继续开发有效率地实现用于解决实际问题的并行计算引擎的新方法。

发明内容

[0008] 本发明的实施方案涉及实时执行复杂计算的视频处理和其他任务的传感器、图像信号处理器及视频编码器和解码器(“视频编解码器”)的并行流水线式集成电路实施方式。本发明的一个实施方案是由集成的传感器、图像信号处理器和视频编解码器组成的一族视频获取和处理系统,所述视频获取和处理系统可以在单个集成电路中被实现,并且可以合并在摄像机、手持机及用于视频捕获和处理的其他电子装置内。视频编解码器被构造来将由集成的传感器和图像信号处理器生成的视频信号编码为用于储存和发送的压缩视频信号,并且被构造来将压缩视频信号解码为用于输出到显示装置的视频信号。根据本发明的实施方案,特定的视频获取和处理系统的高度并行流水线式专用集成电路实施方式提供计算带宽极其大、功耗相对低、以及分别用于图像获取、图像处理及压缩视频信号和原始视频信号的解压缩和压缩的延迟(latency)低的具有成本效益的计算系统。

附图说明

[0009] 图1图示说明数字编码的图像。
[0010] 图2图示说明根据两种不同的颜色和亮度模型的两种不同的像素值编码方法。
[0011] 图3图示说明使用Y′CrCb颜色模型的数字编码。
[0012] 图4图示说明视频摄像机(video camera)的输出。
[0013] 图5图示说明视频编解码器的功能。
[0014] 图6图示说明在视频数据流压缩和压缩的视频数据流解压缩期间对其执行视频编码操作的各种数据对象。
[0015] 图7图示说明将视频帧分割为两个片组(slice group)。
[0016] 图8图示说明第二级别的视频帧分割。
[0017] 图9图示说明帧内预测的一般概念。
[0018] 图10A-10I图示说明九种4×4亮度块帧内预测模式。
[0019] 图11A-11D使用如图10A-I中所用的图示惯例类似的图示惯例图示说明用于16×16亮度块的帧内预测的四种模式。
[0020] 图12图示说明帧间预测的概念。
[0021] 图13A-13D图示说明用于在参考帧的搜索空间内计算块的像素值的插值过程,所述插值过程可以被认为是在分数坐标处发生。
[0022] 图14A-14C图示说明不同类型的帧和对于这些帧可行的一些不同类型的帧间预测。
[0023] 图15图示说明差宏块(difference macroblock)的产生。
[0024] 图16图示说明运动矢量和帧内预测模式预测。
[0025] 图17图示说明差宏块的分解、整数变换和量化。
[0026] 图18分别提供H.264视频压缩和视频解压缩中所用的整数变换和逆整数变换的推导。
[0027] 图19图示说明量化过程。
[0028] 图20提供熵编码的数字实施例。
[0029] 图21A-21B提供算术编码的实施例。
[0030] 图22A-22B图示说明一种普遍出现的伪像(artifact)和作为解压缩的最后步骤用于改善伪像的滤波方法。
[0031] 图23概括H.264视频数据流编码。
[0032] 图24以与图23中所用的框图方式类似的框图方式图示说明H.264视频数据流解码过程。
[0033] 图25图示说明在典型的视频摄像机的电路板上与处理器和其他部件电子地连接的传感器的非常高级的示图。
[0034] 图26是通用计算机的非常高级的示图。
[0035] 图27A-27B图示说明根据本发明的视频摄像机系统中所用的视频获取和处理片上系统(system-on-a-chip)实施方式的传感器、图像信号处理器(“ISP”)和视频编解码器的高级示意性表征。
[0036] 图28图示说明根据本发明构造的视频获取和处理系统的示意性表征。
[0037] 图29A-29C图示说明根据本发明构造的两个视频获取和处理系统的示意性表征。
[0038] 图30图示说明根据实施方案构造的传感器/ISP的示意图。
[0039] 图31图示说明根据本发明构造的传感器的分解等轴测试图。
[0040] 图32图示说明根据本发明的滤色器阵列的一部分和传感器元件阵列的对应部分的分解等轴测试图。
[0041] 图33图示说明根据本发明实施方案操作的传感器的示图。
[0042] 图34A图示说明根据本发明从最近的相邻像素的颜色值对红色颜色值和蓝色颜色值进行插值的四种可能的情况。
[0043] 图34B图示说明根据本发明从最近的相邻像素的颜色值对具有红色颜色值和蓝色颜色值的像素的绿色颜色值进行插值的两种情况。
[0044] 图35图示说明根据本发明的实施方案的被操作来检索宏块行的传感器的示图。
[0045] 图36图示说明根据本发明构造的传感器模块的示意性表征。
[0046] 图37图示说明视频压缩和解压缩过程的许多方面,当考虑这些方面时,这些方面提供对实现根据本发明的视频编解码器的计算效率高得多的新方法的深刻理解。

具体实施方式

[0047] 本发明的实施方案涉及提供具有成本效益的视频获取和处理系统,所述视频获取和处理系统捕获图像,执行图像信号处理,并且实时执行复杂计算的视频处理和其他任务,并且功耗低,散热要求低,计算带宽大并且用于任务执行的延迟低。根据本发明的实施方案构造的视频获取和处理系统包括集成的传感器和图像信号处理器,在某些实施方案中,集成的传感器和图像信号处理器与视频编解码器完全集成在单个集成电路中。集成的传感器和图像信号处理器以图像数据被高度并行地发送到同一集成电路内的视频编解码器为特征。在其他实施方案中,传感器和图像信号处理器可以完全集成在第一集成电路内,并且视频编解码器可以在第二集成电路内被实现,第一集成电路和第二集成电路在电路板上电通信。电路板可以被构造具有能够将图像数据从第一集成电路高度并行地发送到第二集成电路的数据线。视频编解码器可以用计算引擎来实现,所述计算引擎是以由根据本发明的许多同时操作的处理元件提供高度并行计算为特征的各个集成电路或芯片。通过下述方式使得可有效地使用当前执行的处理元件,所述方式即适当地分解复杂计算任务,有效率地访问集成电路内的共享信息和数据对象,并且有效率地、分层次地控制处理任务和子任务。
[0048] 在各种各样的电子装置和手持机(handset)中可以利用视频获取和处理系统的各种可替换实施方案,所述电子装置和手持机包括配备有视频摄像机的移动电话、数码视频摄像机、个人计算机、监视设备、遥感器、飞行器和航天器以及多种其他类型的设备。
[0049] 以下的论述被组织为两个小节:(1)H.264压缩的视频信号解压缩标准;以及(2)用于根据本发明解决视频获取和处理系统中的复杂计算任务的并行集成电路设计的原理。应该注意的是,尽管主要使用H.264标准提供这里的实施例,但是应该理解,这些仅仅是实施例,并且本发明绝不限于H.264实施方式。在以下的第一小节中,对由并行流水线式集成电路计算引擎的特定实施例执行的计算任务进行概括描述。特定的所描述的实施方案是视频获取和处理系统,该视频获取和处理系统根据H.264或MPEG-4 AVC、压缩的视频信号解压缩标准对原始视频信号进行压缩并且对压缩的视频信号进行解压缩。对于已经熟悉H.264压缩的视频信号解压缩标准的读者,可跳过第一小节。
[0050] 第一小节:H.264压缩的视频信号解压缩标准
[0051] 本第一小节提供了H.264压缩的视频信号解压缩标准的概述。本小节提供了由表征本发明实施方案的并行流水线式集成电路计算引擎的特定实施方案解决的计算问题的描述。熟悉H.264的那些读者可以跳过本第一小节,并且继续以下的第二小节。
[0052] 图1图示说明数字编码的图像。数字编码的图像可以是静止照片、视频帧或各种图形对象中的任意一个。一般地,数字编码的图像包括一起描述矩形图像101的数字编码的数字序列。矩形图像具有水平维度102和垂直维度104,水平维度102和垂直维度104的比率被称为图像的“纵横比”。
[0053] 数字编码的图像被分解为极小的显示单元,这些极小的显示单元被称为“像素”。在图1中,以放大两次的方式示出了所显示的图像的左上角的细小部分106。每个放大步骤是12倍放大,生成数字编码的图像108的左上角的极小部分的最终144倍放大。在放大
144倍时,看到所显示的图像的细小部分被直线坐标网格划分为细小的正方形,每个细小的正方形(例如正方形110)与像素对应或者表征像素。视频图像被数字编码为一系列数据单位,每个数据单位描述所显示的图像内的一个像素的发光特性。像素可以被认为是矩阵内的单元,每个像素位置由水平坐标和垂直坐标来描述。可替换地,像素可以被认为是按光栅扫描顺序或者一些其他预定义的顺序生成的一个长的线性的像素序列。通常,数字编码的图像中的逻辑像素被相对直接地转换为从显示装置的一个或几个极小显示元件发出的光。
对每个像素的值进行数字编码的数字被转换为一个或更多个电子电压信号,以控制显示单元发射具有适合色调和强度的光,从而当根据在数字编码的图像中被编码的像素值来控制所有显示单元时,显示装置忠实地再现编码的图像,来供人类观众观看。数字编码的图像可以显示在电视机、计算机显示监控器内具有的阴极射线管、LCD或等离子显示装置以及其他这样的发光显示装置上,可以被计算机打印机打印到纸张或合成胶片上,可以通过数字通信媒介发送到远程装置,可以被储存在大容量储存装置上和计算机存储器中,并且可以被各种图像处理应用程序处理。
[0054] 存在用于将颜色和发射强度信息编码到数据单元中的各种不同的方法和标准。图2图示说明根据两种不同的颜色和亮度模型的两种不同的像素值编码方法。第一种颜色模型202用立方体表征。立方体内的体积由三个正交轴索引,所述三个正交轴为R′轴204、B′轴206和G′轴208。在该实施例中,每个轴按256个增量增长,所述256个增量对应于
8位字节的所有可能的数值,其中可替换的R′G′B′模型使用更少或更多数目的增量。
立方体的体积表征可以由显示装置的像素显示的所有可能的颜色和亮度组合。R′轴、G′轴和B′轴对应于由像素发射的彩色光的红色分量、蓝色分量和绿色分量。显示单元的发光强度通常是供给至数据单元的电压的非线性函数。在RGB颜色模型中,字节编码的G分量中的G分量值127将引导可以施加于显示单元的最大电压的一半来施加于特定的显示单元。然而,当最大电压的一半被施加于显示单元时,发射亮度可以显著地超过满电压时发射的最大亮度的一半。出于这个原因,将非线性变换应用于RGB颜色模型的增量,以生成R′G′B′颜色模型的增量,从而缩放相对于感知的亮度是线性的。当对像素发射的光的红色分量、蓝色分量和绿色分量中的每个可以指定多达256个亮度级别时,对于特定像素
210的编码可以包括三个8位字节,总共24位。当可以指定更多数目的亮度级别时,使用更多数目的比特来表征每个像素,并且当指定更少数目的亮度级别时,可以使用更少数目的比特来对每个像素进行编码。
[0055] 虽然R′G′B′颜色模型相对容易理解,特别是考虑到CRT屏幕中的显示单元的红色发射荧光体、绿色发射荧光体和蓝色发射荧光体构造,但是对于视频信号压缩和解压缩而言,各种相关的、但是不同的颜色模型更有用。一种这样的可替换颜色模型是Y′CrCb颜色模型。Y′CrCb颜色模型可以被抽象地表征为双椎体体积212,双椎体体积212具有包含正交Cb轴和Cr轴的中心水平平面214,并且具有双椎体的与Y′轴对应的长的垂直轴216。在这种颜色模型中,Cr轴和Cb轴是颜色指定轴,其中水平中间平面214表征可以被显示的所有可能的色调,并且Y′轴表征显示的色调的亮度或强度。指定R′G′B′颜色模型中的红色分量、蓝色分量和绿色分量的数值可以通过简单的矩阵变换220直接被变换为等同的Y′CrCb值。因此,当8比特数目被用于根据Y′CrCb颜色模型对显示单元发射的Y′分量、Cr分量和Cb分量进行编码时,24比特数据单元222可以被用于对单个像素的值进行编码。第二种颜色模型是YUV颜色模型。YUV颜色模型也可以由相同的双椎体体积
212抽象地表征,双锥体体积212具有包含正交的U轴和V轴的中心水平平面214,并具有双椎体的与Y轴对应的长的垂直轴216。指定R′G′B′颜色模型中的红色、蓝色和绿色分量的数值可以通过第二矩阵变换224被直接变换为等同的YUV值。当8比特数目被用于对根据YUV颜色模型的显示单元发光的Y、U和V分量进行编码时,24比特的数据单元226也可以被用于对单个像素的值进行编码。
[0056] 对于图像处理,当利用Y′CrCb颜色模型时,数字编码的图像可以被认为是彼此叠加的三个分离的像素化平面(pixilated plane)。图3图示说明使用Y′CrCb颜色模型的数字编码。如图3所示的数字编码的图像可以被认为是Y′图像302与两个色度图像304和306。Y′平面302基本上对图像的亮度值进行编码,并且等同于数字编码的图像的单色表征。两个色度平面304和306一起表征数字编码的图像中的每个点处的色调或颜色。换句话讲,每个像素被储存为单个Y值、单个Cr值和单个Cb值。这种类型的图像编码称被为Y′CrCb(4:4:4)。出于许多视频处理和视频图像储存的目的,方便的是,抽取Cr平面和Cb平面来生成具有一半分辨率的Cr平面308和Cb平面310。换句话讲,不是储存每个像素的强度值和两个色度值,而是对每个像素储存强度值,而对包含四个像素的每个2×2正方形储存一对色度值。这种类型的图像编码被称为Y′CrCb(4:2:2)。例如,图像312的左上角中的所有四个像素被编码为具有相同的Cr值和Cb值。对于图像320的每个2×2区域,可以通过四个强度值322和两个色度值324(总共48个比特,或者换句话讲,每个像素使用12个比特)来对该区域进行数字编码。使用亮度值四分之一那么多的色度值被称为Y′CrCb(4:2:0)。
[0057] 图4图示说明以下在第二小节中所描述的集成的传感器和图像信号处理器(“传感器/ISP”)402及视频编解码器404的输出。传感器/ISP 402生成数据包(例如数据包410),并且视频编解码器402生成时钟信号408,时钟信号408的每个脉冲的上升沿对应于下一个数据包(例如数据包410)的开头。在图4中所示的实施例中,每个数据包包含8比特的强度值或色度值。视频编解码器还生成线信号或行信号412,该信号在与数字编码的图像的整行的输出对应的时间段期间为高。视频编解码器另外输出帧信号414,该信号在输出一个数字图像或一个帧的时间段期间为高。时钟信号、行信号和帧输出信号一起指定用于输出每个强度值或色度值、输出帧的每行和输出视频信号中的每帧的时间。传感器/ISP的数据输出416在图4的底部被更详细地显示为Y′CrCb(4:2:2)数据包序列420。传感器/ISP不限于具有行和帧信号输出。在其他实施方案中,传感器/ISP 402可以具有这样的输出,该输出具有与传感器的行和列对应的垂直同步(vsync)坐标和水平同步(hsync)坐标。参照图3中所示的2×2像素区域(图3中的320)并且使用与图3中对于该区域用于编码的强度值322和色度值324的索引惯例相同的索引惯例,图4中的数据流420的内容可以被理解。像素422-426的2×2正方形区域的两个强度值被作为第一行像素值的一部分与像素的2×2正方形区域的第一组两个色度值428-429一起被发送,其中两个色度值
428-429在第一两个强度值422-423之间被发送。随后,在第二对强度值424和426之间重复色度值430-431,作为下一行像素强度的一部分。色度值的重复便利于某些类型的实时视频数据流处理。然而,第二对色度值430-431是冗余的。如参照图3所论述的,抽取色度平面,以使得仅两个色度值与包含四个像素的每个2×2区域相关联。
[0058] 图5图示说明视频获取和处理系统的传感器/ISP和视频编解码器的功能。如以上参照图1-4所论述的,传感器/ISP 502生成数字编码的视频帧的流504。传感器/ISP502可以被构造来每秒生成介于大约30帧到大约60帧之间。因此,以每秒30帧,假设
1920×1080像素的帧,并且假设每个像素使用12比特的编码,则对于(4:2:2)格式,传感器/ISP每秒生成大约93兆像素或者大约140兆字节/秒。根据目前可用的设计和技术制造的小型手持电子装置不能以这个速率处理、储存和/或发送数据。为了生成可管理的数据传输速率,利用视频编解码器506来对从传感器/ISP输出的数据流进行压缩。例如,H.264标准提供了大约30∶1的视频压缩比。由此,视频编解码器506对从传感器/ISP进入的
93MB/s数据流进行压缩,以生成大约3MB/s的压缩的视频数据流508。与由传感器/ISP生成的原始视频数据流相反,视频编解码器以可以被处理来供手持装置储存或发送的数据速率输出压缩的视频数据流。视频编解码器还可以接收压缩的视频数据流510,并且对压缩的数据进行解压缩,以生成输出原始视频数据流512,来供视频显示装置使用。
[0059] 由于视频信号通常包含相对大量的冗余信息,所以视频编解码器可以实现30∶1的压缩比。作为一个实施例,通过拍摄两个小孩来回扔球而产生的视频信号包含相对少量的快速变化的信息和相对大量的静态或缓慢变化的对象,所述快速变化的信息即小孩和球的图像,所述静态或缓慢变化的对象包括背景景色和小孩在其上玩耍的草坪。在小孩的人影和球的图像在拍摄过程期间可以从帧到帧地显著变化的同时,背景对象可以在整个拍摄期间或者至少在相对长的时间段内保持相对恒定。在这种情况下,在第一帧后面的帧中编码的大部分信息可以是完全冗余的。视频压缩技术被用于识别冗余信息,并且有效率地对该冗余信息进行编码,因此,极大地减少了压缩的视频信号中所包括的信息的总量。
[0060] 在图5的下部分更详细地显示了压缩的视频流508(520)。根据H.264标准,压缩的视频流包括网络抽象层(“NAL”)包序列,例如NAL包522。每个NAL包包括8位的头,例如NAL包522的头524。第一位526必须总是零,接着的两位528指示包中所包含的数据是否与参考帧相关联,并且最后的5位530一起构成类型字段,所述类型字段指示包的类型和其数据载荷(payload)的性质。包类型包括包含编码的像素数据和编码的元数据的包,并且还包括表征各种类型的分隔符的包,所述编码的元数据描述数据的部分已经如何被编码,所述分隔符包括序列结束分隔符和流结束分隔符。NAL包的主体(body)532通常包含编码的数据。
[0061] 图6图示说明在视频数据流压缩和压缩的视频数据流解压缩期间对其执行视频编码操作的各种数据对象。从视频处理的观点来讲,视频帧602被认为是由宏块604的二维阵列构成,每个宏块包括16×16数据值阵列。如上所论述的,视频压缩和解压缩通常独立地对包含强度值的Y′帧和包含色度值的色度帧进行操作。人的眼睛通常对亮度变化比对颜色的空间变化敏感得多。因此,如上所论述的,简单地通过抽取两个色度平面来获得最初的有用压缩。假设强度值和色度值的8比特表征,则在抽取之前,2×2正方形像素可以用12个字节的编码数据来表征。在抽取之后,相同的2×2正方形的四个像素可以仅用6个字节的数据来表征。因此,通过降低颜色信号的空间分辨率,实现2∶1的压缩比。尽管宏块是对其执行压缩和解压缩操作的基本单元,但是对于某些压缩和解压缩操作,宏块可以被进一步分割。强度宏块或亮度宏块每个包含256个像素606,但是可以被分割生成16×8个分区608、8×16个分区、8×8个分区612、8×4个分区614、4×8个分区616和4×4个分区618。类似地,色度宏块每个包含64个编码的色度值620,但是可以被进一步分割生成
8×4个分区622、4×8个分区624、4×4个分区626、4×2个分区628、2×4个分区630和
2×2个分区632。另外,在某些操作中可以利用1×4、1×8和1×16像素矢量。
[0062] 根据H.264标准,每个视频帧可以在逻辑上被分割为片组,其中分割由片组映射(slice-group map)来指定。许多不同类型的片组分割可以由适合的片组映射来指定。图7图示说明将视频帧分割为两个片组。视频帧702被分割为第一棋盘格状片组704和补充的棋盘格状片组706。第一片组和第二片组二者含有相等数目的像素值,并且每个包含帧中的像素值的总数的一半。根据基本上任意的映射功能,帧可以被分割为基本上任意数目的片组,每个片组包括全部像素的基本上任意的部分。
[0063] 图8图示说明第二级别的视频帧分割。每个片组(例如片组802)可以被分割为若干片804-806。每片包含按光栅扫描顺序的若干相邻像素(在片组内相邻,但是不必在一帧内相邻)。片组802可以是整个视频帧,或者可以是根据任意片组分割功能的帧的分区。可以逐片地执行压缩和解压缩操作中的某些操作。
[0064] 总而言之,对视频帧和视频帧的各种子集执行视频压缩和解压缩技术,所述子集包括片、宏块和宏块分区。通常,与色度平面对象无关地对强度平面对象或亮度平面对象进行操作。由于在每个维度中色度平面被抽取一半,总体4∶1压缩,所以每个维度中的色度宏块和宏块分区的大小通常是亮度宏块和亮度宏块分区的大小的一半。
[0065] 如由H.264标准所暗示的,视频压缩中的第一步是利用两种不同的普通的预测技术之一,以在一种情况下,从同一帧中相邻宏块或宏块分区预测当前考虑的宏块或宏块分区的像素值,并且在另一种情况下,从在空间上相邻的宏块或宏块分区预测当前考虑的宏块或宏块分区的像素值,所述在空间上相邻的宏块或宏块分区出现在正在被预测的宏块或宏块分区的帧之前或之后的帧中。第一类型的预测是空间预测,被称为“帧内预测”。第二类型的预测是时间预测,被称为“帧间预测”。帧内预测是可以被用于某些帧的唯一类型的预测,所述某些帧被称为“参考帧”。帧内预测还是当对宏块进行编码时所使用的默认预测。对于非参考帧的宏块,首先尝试帧间预测。当帧间预测成功时,则不将帧内预测用于宏块。
然而,当帧间预测失败时,则可以将帧内预测用作默认预测方法。
[0066] 图9图示说明帧内预测的一般概念。考虑在视频帧的逐个宏块压缩期间出现的宏块C 902。如上所论述的,可以使用256个字节对16×16亮度宏块904进行编码。然而,如果可以从图像中的相邻宏块计算宏块的内容,则在理论上相当大量的压缩是可能的。例如,考虑当前考虑的宏块C 902的四个相邻宏块。这四个宏块包括左宏块904、左上对角宏块906、上宏块908和右上对角宏块910。如果可以使用一些数目的不同的预测函数fc之一912,根据这些相邻宏块中的一个或更多个来计算C 902中的像素值,则宏块的内容可以被简单地编码为用于预测函数的数字指定符或指示符。如果预测函数的数目小于或等于例如256,则用于所选择的预测函数的指定符或指示符可以被编码在单字节信息中。因此,如果可以使用256个可能的预测函数中的被选定的一个从宏块的邻域计算该宏块的内容,则可以实现相当惊人的256∶1的压缩比。不幸的是,由于存在太多可能的宏块而不能仅通过256个预测函数进行精确预测,所以用于H.264压缩的空间预测方法通常没有实现这种12
幅度的压缩比。例如,当每个像素用12个比特编码时,存在2 =4096个不同的可能的像
256
素值和4096 个不同的可能的宏块。然而,对于H.264视频压缩,特别是对于具有不快速变化的以及强度和颜色相对均匀的大的图像区域的相对静态的视频信号,帧内预测可以显著地有利于总体压缩比。
[0067] 可以根据用于4×4亮度宏块的九种不同模式或者根据用于16×16亮度宏块的四种不同模式来执行H.264帧内预测。图10A-I图示说明九种4×4亮度块帧内预测模式。在所有这些图中所使用的图示惯例是类似的,并且参照图10A进行描述。正被预测的4×4亮度宏块在图中通过图右下方的4×4矩阵1002来表征。如此,在图10A中正被预测的4×4矩阵中的最上左侧的像素值1004包含值“A”。与4×4亮度块相邻的单元表征图像内相邻4×4亮度块中的像素值。例如,在图10A中,值“A”1006、“B”1007、“C”1008和“D”1009是正被预测的4×4亮度块1002正上方的4×4亮度块中所包含的数据值。类似地,单元
1010-1013表征正被预测的4×4亮度块左方的4×4亮度块的最后垂直列内的像素值。在图10A中所图示说明的模式0预测的情况下,上方相邻的4×4亮度块的最后一行中的值被向下垂直地复制到当前考虑的4×4亮度块1002的列中。因此,在图10A中,模式0预测构成由图10A中所示的指向向下的箭头1020所表征的向下垂直预测。在图10B-10I中使用与图10A中所使用的图示惯例相同的图示惯例示出用于预测4×4亮度块的其余八种帧内预测模式,并且因此,这八种帧内预测模式是完全独立且不言自明的。除了模式2以外的每种模式都可以被认为是空间矢量,所述空间矢量指示相邻4×4块中的像素值被转换为正被预测的块的方向。
[0068] 图11A-11D使用与图10A-I中所使用的图示惯例类似的图示惯例图示说明用于16×16亮度块的帧内预测的四种模式。在图11A-D中,正被预测的块是矩阵1102的右下侧部分中的16×16块,最左垂直列1104是左毗连16×16亮度块的最右垂直列,并且顶部水平行1106是上毗连16×16亮度块的底行。最左上单元1110是上左对角16×16亮度块的右下侧角单元。16×16预测模式与4×4帧内预测模式的子集类似,除了图11D中所示的模式4之外,模式4是相对复杂的平面预测模式,该模式从上方相邻的16×16亮度块的下一行和左方相邻的16×16亮度块的最右侧垂直列中的所有像素计算每个像素的预测值。通常,将生成正被帧内预测的当前块的最接近近似的模式选择为应用于当前考虑的块的帧内预测模式。可以将预测像素值与实际像素值进行比较;像素值使用各种比较度量中的任意一种,所述度量包括在预测的块和考虑的块之间的平均像素值差、像素值的均方差、方差和以及其他这样的度量。
[0069] 图12图示说明帧间预测的概念。如上所论述的,帧间预测是时间预测,并且可以被认为是基于运动的预测。出于图示说明的目的,考虑当前帧1202和视频信号中在当前帧之前或之后出现的参考帧1204。在视频压缩的当前时刻,需要从参考帧的内容预测当前宏块1206。图12中图示说明所述过程的实施例。在参考帧中,对于当前帧,参考点1210被选为当前考虑的块1206的应用于参考帧的坐标。换句话讲,所述过程在当前帧中的当前考虑的块在参考帧中的等同位置处开始。然后,在图12中由粗实线1212正方形所指示的有界搜索空间内,将搜索区域内的每个块与当前帧中的当前考虑的块进行比较,以识别参考帧1204的搜索区域1212中与当前考虑的块最相似的块。如果搜索区域内像素值最接近的块与当前考虑的块的内容之间的差低于阈值,则从搜索区域选择的最接近的块预测当前考虑的块的内容。从搜索区域选择的块可以是实际的块,或者可以是相对于直线像素格栅的分数坐标处的估计块,其中所述估计块中的像素值从参考帧中的实际像素值插值。因此,使用帧间预测,而不是将当前考虑的宏块1206编码为256个像素值,可以将当前考虑的宏块1206编码为参考帧的标识符和矢量的数字表征,所述矢量从参考点1210指向从搜索区域
1212选择的宏块。例如,如果发现所选择的插值块1214与当前考虑的块1206最紧密匹配,则可以将当前考虑的块编码为参考帧1204的标识符和矢量1216的数字表征,所述标识符例如视频信号内的帧与当前帧的偏移,矢量1216表征所选择的块1214距参考点1210的空间位移。
[0070] 各种不同的度量可以被用于将参考帧1212的搜索区域内的实际块或插值块的内容与当前考虑的帧1206的内容进行比较,所述度量包括像素值之间的平均绝对像素值差或均方差。图12中提供作为上述帧间预测过程的可替换描述的类C++式的伪代码1220。编码的位移矢量被称为运动矢量。所选择的块距参考帧中的参考点的空间位移对应于视频流中的当前考虑的宏块的时间位移,所述时间位移通常对应于视频图像中的对象的实际运动。
[0071] 图13A-D图示说明用于计算参考帧的搜索区域内的块的像素值的插值过程,所述插值过程可以被认为是发生在分数坐标处的。H.264标准允许相对于整数像素坐标的0.25的分辨率。考虑图13A的左边的像素1302的6×6块。插值过程可以被认为是实际像素在两个维度中的平移扩展和在扩展像素之间插入的插值的计算。图13A-D图示说明实际像素值的6×6块中的中间四个像素1304-1307之间的更高分辨率的插入值的计算。图13A的右边图示说明扩展1310。在本实施例中,在两个维度中对像素值1304-1307已经进行了空间上的扩展,并且已经添加了21个新的单元,以形成在拐角处具有原始像素值1304-1307的4×4矩阵。也已经对像素1302的6×6矩阵的其余像素进行了平移扩展。图13B图示说明在实际像素值1304和1306之间生成插值1312的插值过程。如图13B中虚线1314所示,沿着一列像素值应用垂直滤波器,所述像素值包括原始像素值1304和1306。根据公式1316计算插值Y 1312。在本实施例中,根据公式1322,通过两个垂直相邻值的线性插值来对值Y′1320进行插值。可以通过值1312和1306之间的线性插值来类似地计算插值1324。可以类似地应用垂直滤波器1314来计算包含原始值1305和1307的列中的插值。图13C图示说明原始值1304和1305之间的水平行中的插值的计算。在该实施例中,与图13B中垂直滤波器的应用类似,将水平滤波器1326应用于实际像素值。通过公式1328计算中间点插值,并且可以通过根据公式1330和用于中间点与原始值1305之间的右侧插值的类似公式的线性插值来获得中间点的任一侧的四分之一点值。可以将相同的水平滤波器应用于包含原始值1306和1307的最后一行。图13D图示说明中间插值点1340和插值的中间点值
1342与1344之间相邻的四分之一点的计算。可以通过线性插值获得所有其余的值。
[0072] 图14A-C图示说明不同类型的帧和相对于这些不同类型的帧可行的不同类型的帧间预测的实施例。如图14A所示,视频信号包括线性视频帧序列。在图14A中,序列以帧1402开始,并且以帧1408结束。视频信号中的第一类型的帧被称为“I”帧。I帧的宏块的像素值不能通过帧间预测来预测。I帧是解压缩的视频信号内的一种类型的参考点。编码的I帧的内容仅取决于原始信号I帧的内容。因此,当系统误差发生在涉及与帧间预测相关联的问题的解压缩中时,可以通过向前跳到下一个I参考帧并且从该帧重新开始解码来恢复视频信号解压缩。这样的误差不越过I帧栅栏(barrier)传播。在图14A中,第一帧
1402和最后帧1404是I帧。
[0073] 图14B中图示说明下一类型的帧。P帧1410可以包含已经从I帧帧间预测的块。在图14B中,块1412已被编码为运动矢量和参考帧1402的标识符。运动矢量表征参考帧
1402中的块1414到P帧1410中的块1412的位置的时间移动。P帧表征一种类型的预测约束帧,该帧包含已经可以通过帧间预测从参考帧预测的块。P帧表征编码的视频信号内的另一种类型的栅栏帧。图14C图示说明第三类型的帧。B帧1416-1419可以包含通过帧间预测从一个或两个其他B帧、P帧或I帧预测的块。在图14C中,B帧1418包含从P帧
1410中的块1422被帧间预测的块1420。B帧1416包含从B帧1417中的块1428和参考帧
1402中的块1430这二者被预测的块1426。B帧可以最佳地利用帧间预测,并且因此,实现由于帧间预测而导致的最高压缩,但是也具有可以在解码过程中引起各种误差和异常的更高的可能性。当块(例如块1426)是从两个其他块被预测时,该块被编码为两个不同的参考帧标识符和运动矢量,并且该预测块被生成为从其被预测的两个预测块中的像素值的可能的加权平均。
[0074] 如以上所提及的,如果帧内预测和/或帧间预测完全精确,则可以获得极其高的压缩比。将块表征为一个或两个运动矢量和帧偏移肯定比表示为256个不同的像素值简明得多。将块表征为13种不同的帧内预测模式之一甚至更有效率。然而,如通过大量不同的可能的宏块值可意识到的,就作为256字节编码的数值的宏块值而论,帧内预测和帧间预测均不可能生成视频帧内的块的内容的精确预测,除非其中包含视频帧的视频信号不包含噪声,并且几乎不包含信息,所述视频信号例如均匀的、无变化的、纯色背景的视频。然而,即使帧内预测和帧间预测不能精确地预测宏块的内容,一般来讲,它们常常也可以相对接近地估算宏块的内容。这种估计可以被用于产生差宏块,所述差宏块表征实际宏块与对于该宏块通过帧内预测或帧间预测而获得的预测值之间的差。当预测令人满意时,结果得到的差块通常仅包含少量或者甚至零个像素值。
[0075] 图15图示说明差宏块的产生的实施例。在图15的实施例中,宏块被示为三维图表,在所述三维图表中,宏块的二维表面上方的柱的高度表征宏块内的像素值的幅度。在图15中,当前考虑的帧内的实际宏块被示为顶部的三维图表1502。中间的三维图表表征通过帧内预测或帧间预测而获得的预测宏块。注意的是,预测宏块1504的三维图表与实际宏块
1502完全相似。图15表征帧内预测或帧间预测已经产生实际宏块的非常接近的估算的情况。从实际宏块减去预测宏块产生差宏块,所述差宏块在图15中被示为较下面的三维图表
1506。尽管图15是最佳情况预测的夸大,但是它图示说明与实际的最终预测的宏块相比,差宏块通常不仅包含幅度更小的值,而且还常常包含更少的非零值。还要注意的是,可以通过将差宏块加到预测宏块来完全恢复实际宏块。当然,预测的像素值可以超过或者低于实际像素值,从而差宏块可以包含正值和负值这二者。然而,作为实施例,原点的移位可以被用于生成全部正值的差宏块。
[0076] 正如可以从与宏块空间上相邻和/或时间上相邻的块中的值被预测的该宏块内的像素值一样,也可以预测通过帧间预测产生的运动矢量和通过帧内预测产生的模式。图16图示说明运动矢量和帧内预测模式预测的实施例。在图16中,当前考虑的块1602在帧的一部分的块网格内被示出。已通过帧内预测或帧间预测对相邻块1604-1606进行了压缩。
因此,存在与这些相邻的、已经被压缩的块相关联的帧内预测模式或帧间预测运动矢量,所述帧内预测模式是一种类型的位移矢量。因此,合理的假设是,根据使用的是帧内预测还是帧间预测而与当前考虑的块1602相关联的空间矢量或时间矢量将与和相邻的、已经被压缩的块1604-1606相关联的空间矢量或时间矢量相似。事实上,与当前考虑的块1602相关联的空间矢量或时间矢量可以被预测为如图16右边的矢量加法1610所示的相邻块的空间矢量或时间矢量的平均。因此,不是直接对运动矢量或帧间预测模式进行编码,H.264标准是基于矢量预测以从实际计算的矢量1622减去预测矢量1622的方式计算差矢量。帧之间的块的时间运动和帧内的空间一致性将被预期为是大致上相关的,并且因此,预测矢量将被预期为接近地近似实际计算的矢量。因此,差矢量的大小通常比实际计算的矢量小,并且因而,可以使用更少的比特来对差矢量进行编码。再者,与差宏块一样,可以通过将差矢量加到预测矢量来精确地重构实际计算的矢量。
[0077] 一旦通过帧间预测或帧内预测生成差宏块,就根据预定的顺序将差宏块分解为4×4差块,通过整数变换对每个4×4差块进行变换,以生成对应的系数块,然后对所述系数块的系数进行量化,以生成最终的量化系数序列。帧内预测和帧间预测的优点是,差块的变换通常生成大量尾随零系数(trailing zero coefficient),这些尾随零系数完全可以通过随后的熵编码步骤而被有效率地压缩。
[0078] 图17图示说明差宏块的分解、整数变换和量化的一个实施例。在该实施例中,按图17中的差宏块的单元的数字标示所描述的顺序将差宏块1702分解为4×4差块1704-1706。对每个4×4差块执行整数变换1708计算,以生成对应的4×4系数块1708。
根据z字形序列化模式1710将变换的4×4块中的系数序列化,以生成线性的系数序列,然后通过量化计算1712对所述系数序列进行量化,以生成量化系数序列1714。视频信号压缩中的已经论述的步骤中的许多步骤是无损的。宏块可以从帧内预测方法或帧间预测方法以及对应的差宏块来无损地重新产生。还存在整数变换的精确逆变换。然而,由于一旦被量化,原始系数的近似值可以通过量化方法的近似逆(被称为“重缩放”)来重新产生,所以量化步骤1712是一种有损压缩的形式。由于不能从低分辨率色度数据恢复高分辨率色度数据,所以色度平面抽取是另一个有损压缩步骤。量化和色度平面抽取事实上是H.264视频压缩技术中的两个有损压缩步骤。
[0079] 图18分别提供H.264视频压缩和视频解压缩中所使用的整数变换和逆整数变换的推导。符号“X”1802表征4×4差块或残余块(比如,图17中的1704-1706)。由图18中的第一组表达式1804定义离散余弦变换,离散余弦变换是一种公知的类似于离散傅里叶的变换。如表达式1806所示,离散余弦变换是基于矩阵乘法的运算。可以如图18中的表达式1808中所示的那样对离散余弦变换进行因子分解。矩阵C 1810的元素包括有理数“d”1812。为了有效率地估算离散余弦变换,可以将该数近似为1/2,从而得到图18中的近似矩阵元素1814。为了生成全整数元素而乘以矩阵C的两行的这种估算生成图18中的整数变换1818和对应的逆整数变换1820。
[0080] 图19图示说明量化过程。可以假设任何整数值在范围0-255中,作为简单的实施例,认为用8个比特编码的数1902因此可以在0(图19中的1904)和255(图19中的1906)之间的值范围中。如图19所示,量化过程可以被用于通过范围0-255中的整数到范围0-7中的整数的逆线性插值来仅用三个比特1908对8比特数1902进行编码。在这种情况下,用8比特编码的数表征的整数值0-31全部被映射到值0(图19中的1912)。连续范围的32个整数值被映射到值1-7。因此,例如,整数200(图19中的1916)的量化生成量化值
6(图19中的1918)。可以通过简单的乘法从3比特的量化值重新生成8比特的值。可以将3比特的量化值乘以32,以生成原始的8比特数的近似。然而,近似数1920可以仅具有值0、32、64、…、224中的一个。换句话讲,量化是一种数值抽取或者精度损失的形式。重缩放过程或者乘法可以被用于重新产生估算被量化的原始值的数,但是不能恢复在量化过程中损失的精度。通常,量化由公式1922表达,并且量化的逆或者重缩放由公式1924表达。
这些公式中的值“Qstep”控制在量化过程中损失的精度。在图19的左侧图示说明的实施例中,Qstep具有值“32”。更小的Qstep值提供更小的精度损失,但也提供更少的压缩,而更大的值提供更大的压缩,但也提供更大的精度损失。例如,在图19中所示的实施例中,如果Qstep是128,而不是32,则可以用一个比特对8比特数进行编码,但是重缩放将仅会生成两个值0和128。还要注意的是,可以通过重缩放之后的另外的加法步骤如箭头1926和
1928所指示的那样对缩放值进行垂直移位。例如,在图19中所示的实施例中,不是产生值
0、32、64、…、224,而是将16加到缩放值产生对应的值16、48、…、240,使得在缩放的垂直数轴的顶部的间隙不是那么大。
[0081] 在对残余块或差块进行量化并且收集从熵编码上游的步骤生成为数据流的差矢量和其他对象之后,将熵编码器应用于部分压缩的数据流,以生成熵编码的数据流,所述熵编码的数据流包括以上参照图5所描述的NAL包的载荷。熵编码是无损编码技术,该技术利用部分编码的数据流中的统计上的非均匀性。熵编码的一种公知的实施例是Morse代码,Morse代码使用常常出现的字母(例如“E”和“T”)的单脉冲编码和不频繁遇到的字母(例如“Q”和“Z”)的四脉冲或五脉冲编码。
[0082] 图20提供熵编码的数字实施例。考虑包括28个符号的四符号字符串2002,每个字符选自字母“A”、“B”、“C”和“D”之一。如编码表格2004所示,该个28符号串的简单并且直观的编码将会是将四个不同的2比特代码之一分配给四个字母中的每个。使用这种2比特编码,生成等同于符号串2002的56比特编码的符号串2006。然而,符号串2002的分析揭示了表格2010中所示的每个符号的百分比发生率。“A”是到目前为止最频繁出现的符号,并且“D”是到目前为止最不频繁出现的符号。通过编码表格2012表征更好的编码,编码表格2012使用每个符号的可变长度的表征。作为最频繁出现的符号的“A”被分配代码“0”。最不频繁出现的符号“B”和“D”分别被分配代码“110”和“111”。使用这种编码生成仅使用47个比特的编码符号串2014。通常,对于出现概率为P的符号,二进制熵编码应该生成-log2P个比特的编码符号。尽管在图20中所示的实施例中对于明确具有不均匀的符号出现分布的长符号序列,编码长度的改进并不大,但是熵编码生成相对高的压缩比。
[0083] 一种类型的熵编码被称为“算术编码”。图21A-B中提供简单的实施例。图21A-B中图示说明的算术编码是一种上下文自适应编码方法的版本。在该实施例中,8符号序列2102被编码为小数点后位数为5位的小数值.04016(图21A中的2104),可以通过各种已知的二进制数字编码中的任何一种对小数值.04016进行编码,以生成二进制编码符号串。
在该简单实施例中,在编码过程期间不断更新符号出现概率表格2106。由于当根据在编码期间观察到的符号出现频率调整符号出现概率时,编码方法随时间动态地改变,所以这提供上下文自适应。一开始,由于缺乏更佳的一组初始概率,所以将所有符号的概率设置为
0.25。在每个步骤,利用区间。每个步骤的区间用数轴(例如数轴2108)来表征。一开始,区间在0-1范围内变化。在每个步骤,根据当前的符号出现频率表格中的概率将区间划分为四个分区。由于初始表格包含相等的概率0.25,所以在第一步中,区间被划分为四个相等部分。在第一步中,对符号序列2102中的第一个符号“A”2110进行编码。将与这个第一符号对应的区间分区2112选择为用于下一步的区间2114。此外,由于遇到符号“A”,所以通过将符号“A”的出现概率增加0.03并且将其余符号的出现概率降低0.01来在下一版本的表格2116中调整符号出现概率。下一个符号还是“A”2118,而所以再次选择第一区间分区
2119为用于第三步的后一区间2120。该过程继续,直到符号串中的所有符号已经被使用为止。最后的符号“A”2126选择在所述过程中计算的最后区间中的第一区间2128。注意的是,区间的大小在每个步骤减小,并且通常需要指定更多数目的小数点位数。可以通过选择最后区间2128内的任何值来对符号串进行编码。值.04016落在该区间内,并且因此,表征符号串的编码。如图21B所示,可以通过使用初始的等值符号出现频率概率表格2140和初始间隔0-1 2142再次开始所述过程来重新产生原始符号串。编码.04016被用于选择与符号“A”对应的第一分区2144。然而,在与图21A中所示的正向过程中的步骤类似的步骤中,编码.04016被用于选择每个后一区间的每个后一分区,直到重新产生最后的符号串2148。
[0084] 尽管该实施例图示说明算术编码的一般概念,但是由于该实施例假设无限精度算术,并且由于符号出现频率概率表格调整算法将快速导致不可工作的值,所以它是假象的实施例。实际的算术编码不假设无限精度算术,而是利用技术来调整区间,以给予在由任何特定计算机系统提供的精度内的区间指定和选择。H.264标准指定几种不同的编码方案,这些编码方案之一是上下文自适应算术编码方案。查表过程被用于对由上游编码技术生成的频繁出现的符号串进行编码,以便利于随后的解压缩,所述频繁出现的符号串包括部分压缩的数据流中所包括的各个元数据和参数。
[0085] 当根据H.264技术对视频数据流进行压缩时,随后的解压缩可以得到某些类型的伪像。作为实施例,图22A-B图示说明一种普遍出现的伪像和被用作解压缩的最后步骤以改善伪像的滤波方法。如图22A所示,在没有滤波的情况下,解压缩的视频图像可以表现出成块状。由于逐块地执行解压缩和压缩,所以各个块边界可以表征压缩/解压缩处理中的显著的不连续,这些不连续导致所显示的解压缩的视频图像的视觉上可感知的成块。图22B图示说明H.264解压缩中用于改善成块伪像的去块滤波器方法。在这种技术中,为了使跨块边界上的像素值梯度的不连续平滑,沿着所有的块边界移动与以上参照图13A-D所论述的用于像素值插值的滤波器类似的垂直滤波器2210和水平滤波器2212。边界每侧的三个像素值可以受去块滤波器方法的影响。在图22B的右边,示出了去块滤波器应用的实施例。在该实施例中,滤波器2214被表征为包含块边界2216的任一侧的四个像素值的垂直列。滤波器的应用为块边界的任一侧的第一三个像素值生成滤波像素值。作为一个实施例,从像*
素2218、2220、2221、2222和2223的预滤波值计算像素2218的滤波值x。为了重新建立跨边界的连续梯度,滤波器趋向于对像素值进行平均或者使像素值变得模糊。
[0086] 图23概括了H.264视频数据流编码。图23提供框图,并且因此,提供编码过程的高级别的描述。然而,该示图与前面的论述和前面所参照的图一起提供H.264编码的基本概述。必要时,揭示另外的细节,以描述本发明的特定视频编解码器实施方案。应该注意的是,在视频编码和视频解码中存在众多在本文档的概述部分不能解决的细微要点、细节和特殊情况。为了易于交流和简化,这里的实施例大部分基于H.264标准,然而,绝不应该被理解为这里呈现的本发明限于H.264应用。官方H.264说明书超过500页长。这些许多细节包括,例如,由各种边界状况引起的特殊情况、特定细节和在各种上下文相关情况下可以应用的可选的可替换方法。考虑例如帧内预测。帧内预测模式取决于特定的相邻块中的像素值的可利用性。对于没有邻域的边界块,不能使用所述模式中的许多种模式。在某些情况下,为了使得可以使用特定的帧内预测模式,可以对不可利用的相邻像素值进行插值或估算。编码过程中的许多令人感兴趣的细节与以下操作相关:选择最佳预测方法、量化参数,以及进行其他这样的参数选择,以优化视频数据流的压缩。H.264标准不指定如何执行压缩,而是相反地,指定编码的视频数据流的格式和内容以及将如何对编码的视频数据流进行解压缩。H.264标准还提供各种不同级别的不同计算复杂性,其中高端级别支持计算上更昂贵的、但是更有效率的另外的步骤和方法。目前的概述意在提供理解后面提供的本发明的各种实施方案的描述的充分背景,但是绝不意在构成H.264视频编码和解码的完整描述。
[0087] 在图23中,提供帧2302-2304的流作为编码方法的输入。在该实施例中,如上所论述的,帧被分解为宏块或宏块分区,以用于随后的处理。在第一处理步骤中,尝试从一个或更多个参考帧对当前考虑的宏块或宏块分区进行帧间预测。当如步骤2308中所确定的那样,帧内预测成功并且产生一个或更多个运动矢量时,则在求差步骤2310中从实际的原始宏块减去通过运动估计和补偿步骤2306产生的预测宏块,以生成对应的残余宏块,所述残余宏块通过求差步骤被输出到数据路径2312上。然而,如果还是如步骤2308中所确定的那样帧间预测失败,则开始帧内预测步骤2314来对宏块或宏块分区执行帧内预测,然后在步骤2310中从实际的原始宏块或宏块分区减去所述宏块或宏块分区,以生成被输出到数据路径2312的残余宏块或残余宏块分区。然后通过变换步骤2316对残余宏块或残余宏块分区进行变换,通过量化步骤2318进行量化,可能在步骤2320中进行重新排序以更有效率地编码,并且然后在步骤2322中进行熵编码,以生成输出NAL包2324的流。通常,压缩实施方式在平衡各种预测方法的成本、及时性和存储器使用的同时,寻求利用提供考虑的宏块的最接近的预测的预测方法。可以使用用于应用预测方法的各种不同的排序和选择标准中的任意一种。
[0088] 继续跟随图23的实施例,在步骤2318中进行量化之后,量化系数被输入到重排序阶段2320和熵编码阶段2322,并且还被输入到逆量化器2326和逆变换步骤2328,以重新产生残余宏块或残余宏块分区,所述残余宏块或残余宏块分区通过逆变换步骤被输出到数据路径2330上。通过逆变换步骤输出的残余宏块或宏块分区通常与通过求差步骤2310输出到数据路径2312上的残余宏块或残余宏块分区不相同。回想,量化是有损压缩技术。因此,逆量化步骤2326生成原始变换系数的估算,而不是精确地再现原始变换系数。因此,虽然逆整数变换将生成残余宏块或宏块分区的精确副本,但是如果将它应用于通过整数变换步骤2316生成的原始系数,则由于逆整数变换步骤2328被应用于重缩放系数,所以在步骤2328中仅生成原始残余宏块或宏块分区的估算。然后在加法步骤2332中将估算的残余宏块或宏块分区加到对应的预测宏块或宏块分区,以产生宏块的解压缩版本。解压缩的、但是没有滤波的宏块版本通过数据路径2334被输入到帧内预测步骤2312,以用于随后处理的块的帧内预测。对解压缩的宏块执行去块滤波器2336的步骤,以生成滤波的、解压缩的宏块,然后对所述宏块进行组合,以生成解压缩的图像2338-2340,解压缩的图像2338-2340然后可以被输入到运动估计和补偿步骤2306。一个巧妙之处涉及解压缩的帧输入到运动估计和补偿步骤2306,并且解压缩的、但是没有滤波的宏块和宏块分区输入到帧内预测步骤
2314。回想,为了预测当前考虑的宏块或宏块分区中的值,帧内预测与大部分的运动估计和补偿这二者都使用相邻块,在空间预测的情况下,使用当前帧中的相邻块,或者在时间帧间预测的情况下使用前帧和/或后帧中的相邻块。但是,考虑压缩的数据流的接收者。接收者将不可以访问最初的原始视频帧2302和2304。因此,在解压缩期间,编码的视频数据流的接收者将使用先前解码的或解压缩的宏块来用于预测随后解码的宏块的内容。如果编码过程使用原始视频帧进行预测,则编码器将使用与解码器随后可用的数据不同的数据进行预测。这将在解码过程中引起显著的误差和伪像。为了防止这种情况,编码过程产生用于在帧间预测步骤和帧内预测步骤中的解压缩的宏块和宏块分区以及解压缩的且经过滤波的视频帧,从而帧内预测和帧间预测使用相同的数据对任何解压缩过程将会可用的宏块和宏块分区的内容进行预测,所述任何解压缩过程可以仅依赖于编码的视频数据流进行解压缩。因此,通过数据路径2334被输入到帧内预测步骤2314的解压缩的、但是没有经过滤波的宏块和宏块分区是随后从其预测当前宏块或宏块分区的相邻块,并且运动估计和补偿步骤2306将解压缩的且经过滤波的视频帧2338-2340用作参考帧,以用于处理其他帧。
[0089] 图24以与图23中所用的框图方式类似的框图方式图示说明示例性的H.264视频数据流解码过程。解压缩比压缩简单得多。NAL包流2402输入到熵解码步骤2404中,熵解码步骤2404应用逆熵编码来产生量化系数,重排序步骤2406将所述量化系数重新排序为与通过图23中的重排序步骤2320执行的重排序互补。熵解码流中的信息可以被用于确定最初用其对数据进行编码的参数,所述参数包括在每个块的压缩期间是利用帧内预测还是利用帧间预测的情况。通过步骤2408,该数据允许在步骤2410中选择帧间预测或者在步骤2412中选择帧内预测,以生成沿着数据路径2414提供给加法步骤2416的宏块和宏块分区的预测值。在步骤2418中逆量化器对重新排序的系数进行重新缩放,并且在步骤2420中应用逆整数变换来生成残差或者残余宏块或宏块分区的估算,在加法步骤2416中将所述估算加到基于先前解压缩的宏块或宏块分区而产生的预测宏块或宏块分区。加法步骤生成解压缩的宏块或宏块分区,以生成解压缩的视频帧2424-2426,在步骤2422中对这些解压缩的宏块或宏块分区应用去块滤波器,以生成最后解压缩的视频帧。解压缩过程基本上与图23中所示的压缩过程的下部分等同。
[0090] 第二小节:根据本发明的用于解决视频获取和处理系统中的复杂计算任务的并行集成电路设计的原理
[0091] 在本小节中,用于开发实时执行H.264压缩和解压缩的并行流水线式集成电路视频获取和处理系统的原理被描述为表征本发明实施方案的视频获取和视频编解码器设计的整体方法的实施例。本发明的视频获取和处理系统绝不限于H.264实施方式。
[0092] 图25图示说明在典型的视频摄像机的电路板2508上通过总线2504与处理器2506电连接的传感器2502的非常高级的示图。在图25的实施例中,处理器2506通过总线2512电连接至闪存2510,并且通过总线2516电连接至SDRAM、DDR或DDR2存储器2514。
闪存2510储存图像信号处理指令,所述指令在将由传感器2502生成的原始视频信号处理为用于图像显示的合适的颜色模型和格式(例如YCrCb(4:2:2)或YCrCb(4:2:0))时被处理器2506提取。图像数据在图像处理期间被储存在存储器2514中。一旦图像已经被捕获并且对应的原始视频信号已经被发送到处理器和存储器,图像信号处理的大部分专用于在处理器、存储器和闪存之间传输图像数据和程序指令。常规的电路板实施方式可能需要大约400个到多于600个引脚来互连传感器、处理器、存储器、闪存与电路板的其他器件。在原始图像数据已经被摄像机处理为合适的图像数据格式之后,图像数据可以被发送到视频编解码器进行压缩和解压缩。
[0093] 实现执行在第一小节中所论述的H.264视频压缩和解压缩的视频编解码器的一种方式是用软件对编码和解码过程进行编程,并且在通用计算机上执行程序。图26是通用计算机的非常高级的示图。计算机包括处理器2602、存储器2604、存储器/处理器总线2606和桥2608,存储器/处理器总线2606互连处理器、存储器。桥将处理器/存储器总线
2606与高速数据输入总线2610和内部总线2612互连,内部总线2612连接第一桥2608与第二桥2614。第二桥又通过高速通信媒介2620连接至各个装置2616-2618。这些装置之一是控制大容量储存装置2620的I/O控制器2616。
[0094] 考虑实现视频编解码器的软件程序的执行。在该实施例中,软件程序储存在大容量储存装置2620上,并且根据需要被分页到存储器2604中。处理器2602必须从存储器提取软件程序的指令,以用于执行。因此,每个指令的执行涉及至少一个存储器提取,并且还可以涉及处理器存取存储器中(并且最终在大容量储存装置2620中)的储存数据。通用计算机系统中的实际计算行为的很大一部分致力于在大容量存储装置、存储器和处理器之间传输数据和程序指令。此外,关于以高数据传输速率生成大容量数据的视频摄像机或其他数据输入装置,在视频摄像机和处理器之间可能存在对于存储器和大容量储存装置这二者的大量竞争。这种竞争可以持续达到一般计算机系统内的各个总线和桥的饱和。为了使用视频编解码器的软件实施方式来实现实时视频压缩和解压缩,计算机所消耗的可用计算资源和功率的非常大的一部分致力于数据传输和指令传输,而不是实际上执行压缩和解压缩。并行处理方法可以被预期为提高软件实现的视频编解码器的计算吞吐量的可行方法。然而,在一般计算系统中,适当地分解问题以充分利用多个处理部件远非微不足道的任务,并且可能不会解决计算机系统内对于存储器资源的竞争和数据传输带宽的耗尽,或者可能甚至使计算机系统内对于存储器资源的竞争和数据传输带宽的耗尽恶化。
[0095] 可被考虑的摄像机和通用计算机系统的下一种实施方式将是使用各种片上系统设计方法中的任意一种将传感器、图像信号处理器(“ISP”)和视频编解码器集成到一集成电路封装(package)中,并且将压缩和解压缩软件实施方式移到硬件上。视频编解码器与单个集成电路或单片芯片中的传感器和ISP集成的片上系统实施方式将提供优于由执行视频编解码器的软件实现的典型的摄像机和通用计算机系统提供的图像获取和处理的某些优点。具体地讲,图像获取和图像信号处理可以在芯片的一部分中执行,并且压缩和解压缩可以在同一芯片的另一个部分中被执行,其中程序指令储存在板上、闪存中,并且各种计算步骤在逻辑电路中实现,而不是被实现为处理器顺序执行指令。结果将会是,当与具有分离的传感器、ISP和视频编解码器外形尺寸(form factor)的实施方式相比时,电路板实际状况(real-estate)或外形尺寸的总量显著减小;图像压缩可以实时地被执行;并且引脚数、延迟、散热和功耗将显著减小。
[0096] 图27A图示说明在根据本发明的视频摄像机系统2700中所用的视频获取和处理系统的高级示意性表征。视频摄像机系统2700可以在独立的数字视频摄像机中被实现,或者可以在手持机(例如蜂窝电话、智能电话)或其他类型的计算装置中被实现。摄像机系统2700的视频处理在视频获取和处理系统(“VAPS”)2702中被执行,VAPS 2702由传感器、ISP和视频编解码器组成。摄像机系统2700可以包括其他部件(未示出),例如用于供电的电池及用于储存压缩和未压缩视频数据和其他数据的存储器。摄像机系统还包括透镜系统2704和聚焦系统2706。从一个场景中的对象反射的光被透镜系统2704捕获,并且透镜由聚焦系统2706调整,以将光聚焦到VAPS 2702的传感器上。VAPS 2702的传感器和ISP被构造来检测捕获的光和执行图像信号处理,以产生可以被VAPS的视频编解码器压缩的合适的颜色模型和格式的图像数据。如图27A的实施例所示,VAPS 2702的视频编解码器输出压缩视频数据流2708。如图27B所示,VAPS 2702的视频编解码器还可以被用于对输入到摄像机系统2700的压缩视频数据流2710进行解压缩,并且输出解压缩视频数据流2712。
[0097] 图28图示说明根据本发明构造的VAPS 2800的示意性表征。如图28的实施例所示,传感器和ISP可以在第一片上系统封装2802中的传感器/ISP模块中被实现,并且视频编解码器可以在分离的第二片上系统封装2804中被实现。VAPS 2800包括通过总线2808连接至视频编解码器2804的分离的存储器2806和网络/传输芯片2810。传感器/ISP模块2802的传感器部分产生原始视频信号,所述原始视频信号被传感器/ISP模块2802的ISP部分转换为合适的颜色模型和格式的图像数据,所述合适的颜色模型和格式包括,但不限于,(4:4:4)、(4:2:2)、(4:2:0)格式的颜色模型Y′CbCr或YUV或者常规的RGB。图像数据并行或串行地通过数据接口2810从传感器/ISP模块2802发送到视频编解码器2804,以如下所述那样进行处理。接口2810可以由印刷在电路板上的比特线组成,比特线的数目范围为从少如大约6根比特线到大约12根比特线或者高达甚至70根或更多根比特线。控制和同步数据可以通过控制信号线2814在传感器/ISP模块2802与视频编解码器2804之间发送,控制信号线2814的范围为从少如2根比特线到大约6根比特线或者高达12根比特线或更多根比特线。为了使图像信号处理与由传感器/ISP产生并且由视频编解码器进行压缩的图像数据同步,可以包括时钟信号线2816,用于将系统时钟信号从视频编解码器2804发送到传感器/ISP模块2802。连接存储器2806与视频编解码器2804的总线2808的范围可以从大约8根比特线到大约16、32、64或128根比特线或者其他合适数目的比特线。如以上参照图5所描述的,视频编解码器2804通过接口2818将网络抽象层(“NAL”)包的压缩视频数据流输出到网络/传输2810,比特线的数目范围从少如大约6根比特线到
70根或更多根比特线。网络/传输2810可以用多工模拟元件(“MAC”)来实现,并且压缩视频数据流可以以任何适合的并行2820或串行2822结构被输出,例如使用以太网包或者以合适的形式来通过通用串行总线(“USB”)进行传输。
[0098] 表1-4表征与VAPS 2800的部件相关联的近似引脚数、近似功耗和近似外形尺寸。表1表征根据本发明的传感器/ISP 2802的近似引脚数和近似功耗的范围:
[0099] 表1
[0100]
[0101] 加工技术是指大量CMOS半导体制作中所使用的制造工艺。例如,65nm加工技术是可以生产大约35纳米的栅极长度和大约1.2纳米的栅极氧化物厚度的光刻工艺。表1揭示了对于根据本发明的实施方案构造的传感器/ISP模块2802,用于连接传感器/ISP模块2802与视频编解码器2804的引脚数的范围可以为从大约40个引脚到90个引脚,并且功耗的范围随加工技术而减小。例如,以65nm加工技术制作的传感器/ISP模块的功耗估计为大约300-720毫瓦,而以20nm加工技术制作的传感器/ISP模块估计具有大约40-150毫瓦的功耗。
[0102] 表2表征存储器2806的近似引脚数、近似功耗和近似外形尺寸的范围:
[0103] 表2
[0104]
[0105] 网络/传输芯片2810的近似引脚数的范围可以为从大约6个引脚到大约90个引脚。
[0106] 表3表征视频编解码器2804的近似引脚数、近似功耗和近似外形尺寸的范围:
[0107] 表3
[0108]
[0109] 表4表征VAPS 2800的近似引脚数、近似功耗和近似外形尺寸的范围:
[0110] 表4
[0111]
[0112] 为了进一步减小引脚数、功耗和散热,可以通过将两个或更多个分离的芯片的功能集成到单个集成电路中来减小VAPS 2800的分离芯片的数目。图29A图示说明具有传感器/ISP模块2902、视频编解码器2904和网络/传输芯片2906的VAPS 2900的示意性表征。如图29A的实施例所示,图28中所示的被实现为用于VAPS 2800的分离芯片的存储器与用于VAPS 2900的视频编解码器2904集成。通过将存储器和视频编解码器集成到单个芯片2904中,除去了图28中所示的总线2808,与连接存储器与视频编解码器相关联的引脚数减小为“0”,并且视频编解码器2904的引脚数少于视频编解码器2804的引脚数。换句话讲,视频编解码器2904的引脚数可以减少大约8个引脚到大约160个引脚。因此,根据构成接口2812、2814、2816和2818的信号线的数目,用于视频编解码器2904的近似引脚数的范围可以为从大约40个引脚到大约340个引脚。
[0113] 图29B图示说明VAPS 2910的示意性表征,VAPS 2910具有被实现为分离芯片的传感器/ISP模块2902和存储器2912以及集成到单个集成电路2914中的视频编解码器和网络/传输。当与以上参照图28所描述的分离芯片实施方式相比时,将视频编解码器和网络/传输集成到单个集成电路也减少了引脚数和功耗。具体地讲,可以除去图28中所示的NAL接口2818。
[0114] 图29C示出VAPS 2920的示意性表征,VAPS 2920具有被实现为分离的集成电路的传感器/ISP模块2902,而存储器、视频编解码器和网络/传输被集成到分离的单个集成电路2922中。在该实施方案中,引脚数、功耗和散热比VAPS 2800、2900和2910进一步减小。视频编解码器2922仍保留用于与传感器/ISP模块2902进行电通信的大约40个引脚到大约90个引脚和用于并行接口2820和串行接口2822的大约10个引脚到大约30个引脚。因此,根据加工技术,用于视频编解码器2922的总引脚数的范围可以为从大约40个引脚到大约120个引脚,并且用于视频编解码器的功耗的范围可以为从大约40毫瓦到大约720毫瓦或更多。
[0115] 图30图示说明根据实施方案构造的传感器/ISP模块3000的示意图。传感器/ISP模块3000包括集成的图像传感器处理器3002、图像信号处理器3004和图像输出接口3006。图像传感器处理器3002包括传感器3008、模数转换器3010和增益控制器3012。以上参照图27A所描述的透镜系统2704和聚焦系统2706将光聚焦到传感器3008上。图像信号处理器3004包括数字信号处理器3014。图像输出接口3006包括先进先出(“FIFO”)输出选择器3016、数字视频端口(“DVP”)3018和移动产业处理器接口(“MIPI”)3020。系统控制逻辑3022控制传感器3008、图像传感器处理器3004和图像输出接口3006。原始视频信号由图像传感器处理器3002产生,并且被发送到图像信号处理器3004。除了执行以下所描述的其他信号处理器功能之外,图像信号处理器3004还将原始视频信号转换为常规的RGB图像数据、YUV图像数据、Y′CrCb图像数据或者另一种合适的颜色模型的图像数据,并且将处理的图像数据发送到图像输出接口3006,在图像输出接口3006中,处理的图像数据可以被缓冲和发送到视频编解码器,以如下所描述的那样以并行或串行结构进行进一步处理。
[0116] 图31图示说明根据本发明构造的传感器3100的分解等轴测试图。传感器3100包括滤色器阵列(“CFA”)3102和传感器元件阵列3104。传感器元件阵列3104由传感器元件或光电池阵列组成,并且CFA由红色(“R”)、绿色(“G”)或蓝色(“B”)滤色器阵列组成,其中CFA的每个滤色器与传感器元件阵列的传感器元件对齐。如图31的实施例所示,传感器元件阵列3104的拐角的小部分3106被放大,并且CFA 3102的拐角的对应的小部分3108被放大。拐角3106的放大揭示了传感器元件阵列被分割为与单个传感器元件对应的或者表征单个传感器元件的小的正方形,例如正方形3110。拐角3108的放大还揭示了CFA被分割为小的正方形,例如正方形3112,每个正方形与单个R、G或B滤色器对应。CFA和传感器元件阵列可以由1280×720个滤色器和对应的传感器元件组成,或者CFA和传感器元件阵列可以由1920×1080个滤色器和对应的传感器元件组成。本发明的实施方案不限于具有1280×720或者1920×1080个滤色器或传感器元件的CFA和传感器元件阵列。在其他实施方案中,CFA和传感器元件阵列可以用任意数目的滤色器和传感器元件来构造。
[0117] 图32图示说明根据本发明的CFA的部分3202和传感器元件阵列的对应部分3204的分解等轴测试图。如图32的实施例所示,CFA 3202被构造为Bayer滤波器3202。Bayer滤波器由RGB滤色器组成,其中,一半数目的滤波器是G滤波器,并且滤波器总数的四分之一是R滤波器和B滤波器。换句话讲,为了模仿人眼对绿光的更大分辨能力,R滤波器和B滤波器为G滤波器两倍那么多。滤色器以下述方式被配置,即,对于奇数行,交替R滤波器和G滤波器,并且对于偶数行,交替G滤波器和B滤波器。用光线3206-3208表征的光通过滤色器3210-3212中的每个到达下方的对应的传感器元件3214-3216。当曝光时,每个传感器元件累积与照在传感器元件上的光的照射强度成比例的信号电荷。为了将通过每个滤波器的光聚焦到对应的传感器元件上以减少损失,CFA在每个滤色器处还可以被构造有显微透镜(未示出)。注意的是,本发明的实施方案不限于具有Bayer CFA的传感器。Bayer CFA 3210是普遍使用的CFA,并且仅以实施例的方式被提供。在其他实施方案中,CFA可以由其他RGB滤色器配置或者不同类型的滤色器(例如,青色、品红和黄色滤色器)组成。
[0118] 在某些实施方案中,传感器元件阵列3104可以由电荷耦合器件(“CCD”)传感器元件阵列组成。CCD传感器元件是能够使电荷移动通过连续电容器级(capacitor stage)的模拟移位寄存器,由时钟信号控制,并且可以被用于使并行模拟信号串行化。在其他实施方案中,传感器元件阵列3104可以由互补金属氧化物半导体(“CMOS”)传感器元件阵列组成。典型地,每个CMOS传感器元件输出电压,并且包括放大电压的放大器。传感器元件的2 2
大小的范围可以为从大约1.6μm 到大约6μm。对于大小范围为从大约1兆像素到大约
9兆像素的传感器元件阵列,功耗范围为从大约100mW到大约600mW。本发明的实施方案不限于其中像素数目范围在从1兆像素到9兆像素之间的传感器元件阵列。传感器元件阵列可以被构造有更多数目的像素,并且可以包括高清晰度分辨率。
[0119] 图33图示说明根据本发明实施方案操作的传感器3300的示图。正方形3302表征传感器元件阵列3104的传感器元件。当一定时间段内的传感器曝光结束时,系统逻辑控制器3018驱动行驱动器3304和列驱动器3306,以使得每个CCD传感器元件将电荷包依次传送到正下方行中的传感器元件,直到到达底行3308为止,其中,底行中的每个CCD传感器元件被发送3310到输出结构,所述输出结构将每个电荷转换为电压,并且将它发送到模数转换器3312。通过CMOS传感器3300,电荷到电压转换可以在每个传感器元件处发生,并且电压还被逐行驱动到模数转换器。图33包括长方格序列3314,每个长方格表征对Bayer CFA从传感器发送到模数转换器3312的、与一行R滤波器和G滤波器中的传感器元件相关联的电压。长方格序列3316表征发送到模数转换器3312的、与交替同一Bayer CFA的G滤波器和B滤波器的下一行中的传感器元件相关联的电压。
[0120] 当传感器被构造有CMOS传感器元件时,增益控制器(例如图30中所示的增益控制器3012)可以被用于放大从每个传感器元件输出的电压,或者当传感器被构造有CCD传感器元件时,增益控制器3012可以被用于在电压到达模数转换器3010之前放大从传感器输出的模拟电压。此外,图30中示出的是将从传感器输出的模拟电压转换为离散电压的模数转换器3010。数字信号处理器3020可以执行白平衡和颜色相关,以确在保捕获图像中的合适的颜色逼真度。由于传感器3008不以与人眼相同的方式检测光,所以白平衡和相关对于确保最终图像表征原始捕获场景的颜色是必需的。白色对象对于RGB颜色值中的每个具有相等的反射率值。可以捕获白色对象的图像,并且对其直方图进行分析。具有最大级的颜色值被设置为目标均值,并且其余两个颜色值随增益乘数增加。数字信号处理器3020还可以执行滤波、帧裁剪(frame cropping)、去噪、消闪烁和其他合适的图像操纵功能。
[0121] 在某些实施方案中,传感器的每个传感器元件可以对应于从传感器获得的彩色图像的帧中的像素。然而,如以上参照图2所描述的,RGB像素由三个基本的R、G和B颜色值组成,并且如以上参照图33所描述的,传感器的读取传感器元件对每个传感器元件仅产生基色R、G和B之一。例如,如以上参照图33所描述的,从每个传感器元件输出的电压对应于通过对应的R滤波器、G滤波器或B滤波器之一的光的强度。因此,从图像传感器处理器输出的原始视频信号表征一系列颜色值,每个颜色值与一个传感器元件相关联,并且对对应的像素仅提供三个RGB颜色值之一。为了确定与每个像素相关联的其他两个颜色值,原始视频信号被发送到数字信号处理器3020,在数字信号处理器3020中,在也称为“去马赛克”的过程中可以对每个像素的其余两个颜色值进行插值。
[0122] 图34A图示说明根据本发明从最近的相邻像素的颜色值对R颜色值和B颜色值进行插值的四种可能的情况。3×3矩阵3401-3404中的正方形表征相邻像素,每个像素具有从传感器的对应传感器元件获得的一个原始颜色值。绿色像素3406和3407上丢失的R颜色值和B颜色值可以通过对相同颜色的两个最近的相邻像素的值进行平均来确定。例如,像素3406的R颜色值可以通过对最近的相邻R像素3410和3412的颜色值进行平均来确定,并且像素3406的B颜色值可以通过对最近的相邻B像素3414和3416的颜色值进行平均来确定。像素矩阵3403示出下述情况,即,像素3418的蓝色像素值可以通过对具有B颜色值的最近的相邻像素3420-3423的B颜色值进行平均来确定。图34B图示说明根据本发明从最近的相邻像素的颜色值对具有R颜色值和B颜色值的像素的G颜色值进行插值的两种情况。5×5矩阵3401-3404中的正方形表征相邻像素,每个像素具有从传感器的对应传感器元件获得的一个原始颜色值。可以根据自适应插值3428在具有R颜色值的像素3426上对G颜色值进行插值。可以根据自适应插值3432在具有B颜色值的像素3430上对G颜色值进行插值。
[0123] 在其他实施方案中,帧中的每个像素可以是相同颜色传感器上的相邻像素的数目的函数,并且不受传感器分辨率限制。换句话讲,对于给定的传感器,每个像素可以通过对传感器数据进行上采样或下采样来确定。因此,本发明的实施方案不限于如以上参照图34所描述的插值。插值是普遍使用的技术,并且存在用于确定常规的RGB的数种不同的插值技术。关于图34的插值描述仅作为可以根据本发明的实施方案执行的一种插值方法的实施例而提供。
[0124] 返回到图30,如以上参照图2和图3所描述的,在每个像素的RGB已经被确定之后,数字信号处理器3020可以将每个常规的RGB像素转换为用于供视频编解码器2710进行处理的另一种合适的颜色模型,包括(4:4:4)、(4:2:2)或(4:2:0)格式的YUV或Y′CrCb。图像数据然后可以被发送到图像输出接口3006。在其他实施方案中,数字信号处理器3020可以对图像进行处理,以以宏块形式到达图像输出接口3006。选择器3022包括用于临时储存图像数据的缓冲器,并且操作者可以预先选择输出,以通过将储存在选择器3022中的图像数据引导到DVP 3024或MIPI 3026来通过接口2802以并行或串行格式输出图像数据。图像输出接口3006然后可以以任何合适的格式(例如,宏块)将图像数据输出到视频编解码器。
[0125] 在其他实施方案中,不是如以上参照图33所描述的那样处理和检索储存在传感器3008的传感器元件逐行中的电荷或电压,而是可以在宏块行中检索和处理与每个传感器元件相关联的电荷或电压。图35图示说明根据本发明的实施方案被操作来检索宏块行的传感器3008的示图。正方形3500表征传感器元件阵列3104的宏块。当一定时间段内的传感器曝光结束时,系统逻辑控制器3018驱动行驱动器3302和列驱动器3304,以使得宏块行内的每个宏块的传感器元件输出到模数转换器3010。例如,宏块3502的传感器元件可以被发送到模数转换器,其后为同一行中的宏块3504,依此类推。可以以相同方式处理下一行宏块。图35还包括宏块3506的放大,其中,每个正方形(例如正方形3508)表征传感器元件阵列3104的传感器元件。通过检索每行传感器元件中的电荷或电压来分开处理每个宏块,并且在宏块内电荷或电压被逐行发送到模数转换器3010。图35仅仅表征可以检索宏块的一种方式。本发明的实施方案包括使用宏块检索原始视频信号的其他方式。
[0126] 本发明的实施方案包括感测模块,所述感测模块由与执行图像信号处理、视频压缩和解压缩及网络/传输的单个集成电路封装在一起的传感器组成。图36图示说明根据本发明构造的感测模块3600的示意性表征。如图36的实施例所示,感测模块包括传感器3602和被封装以作为单个集成电路工作的集成电路3604。集成电路3604执行图像信号处理3606的操作,包括存储器3608,执行视频压缩和解压缩3610,并且包括网络/传输功能
3612,为了减小引脚数、功耗、延迟和散热,所有这些完全被集成。传感器3602获取图像,并且将图像作为原始视频信号发送到集成电路3604,集成电路3604实时执行图像信号处理、视频压缩、图像数据储存,并且以并行结构3614或串行结构3616(例如以太网或USB)输出压缩视频数据流。感测模块允许大规模并行处理原始图像数据,来生成用于以任意串行或并行总线结构传输并且具有任意传输级别标准的压缩图像数据。
[0127] 表5表征感测模块3100关于各种加工技术特征大小的总引脚数和近似功耗的范围:
[0128] 表5
[0129]
[0130] 注意的是,具有完全集成的传感器、ISP、存储器和网络/传输的感测模块具有基本上与以上参照图28和30所描述的传感器/ISP模块的外形尺寸、引脚数和功耗匹配的外形尺寸、总引脚数和功耗。具体地讲,用于互连ISP、视频编解码器与存储器的引脚数是“0”。
[0131] (4:4:4)、(4:2:2)或(4:2:0)格式的Y′CrCb或YUV图像数据或者常规RGB格式的图像数据被发送到视频编解码器,以根据与图6-24相关联的描述进行压缩。图37图示说明视频压缩和解压缩过程的许多方面,当考虑这些方面时,这些方面提供对实现根据本发明的视频编解码器的计算效率高得多的新方法的深刻理解。首先,H.264标准已经提供服从并行处理解决方案的高级问题分解。如上所论述的,每个视频帧3702被分解为宏块3704-3713,并且为了在前向方向上对视频帧进行压缩,对宏块和宏块分区执行基于宏块的或者基于宏块分区的操作,并且反向地对宏块进行解压缩,以重构解压缩的帧。如上所论述的,在编码过程期间和解码过程期间帧之间和宏块之间肯定存在相关性。然而,如图37所示,宏块与宏块相关性和宏块分区与宏块分区相关性通常是前向相关性。序列3713的开始帧中的开始宏块不取决于后面的宏块,并且可以完全基于其自己的内容进行压缩。当通过宏块的光栅扫描处理,压缩逐帧地继续时,后面的宏块可以取决于先前压缩的帧中的宏块,特别是对于帧间预测,并且可以取决于同一帧内的先前压缩的宏块,特别是对于帧内预测。
然而,相关性受到很好的约束。首先,相关性受限于序列、空间和时间中的最大距离3720。换句话讲,只有当前帧内的相邻宏块和相对少量参考帧中以当前帧的位置为中心的搜索区域内的宏块可能对压缩任何给定的宏块有贡献。如果相关性在时间、空间和序列中没有受到很好的约束,则将需要非常大的存储器容量来容纳压缩连续宏块所需的中间结果。这样的存储器是昂贵的,并且随着存储器管理任务的复杂性和大小增大,快速开始消耗可用的计算带宽。另一种类型的约束是,对于给定的宏块3722,可能仅存在相对少的、最多数目的相关性。这种约束也有助于限制存储器的必要大小,并且有助于对计算复杂性的限制。随着相关性数目增长,计算复杂性可以成几何地或者成指数地增长。此外,当处理实体之间的必要通信被很好地限制时,对于复杂计算问题的并行处理解决方案才是可行的和可管理的。否则,结果在分离的处理实体之间的通信快速压垮可用的计算带宽。视频编解码器问题的另一个特点是,前向压缩方向或者反向解压缩方向的每个宏块的处理是逐步过程3724。如上所论述的,这些按顺序的步骤包括帧间和帧内预测、残余宏块的产生、主变换、量化、对象重排序和熵编码。这些步骤是分离的,并且一般来讲,一个步骤的结果被直接进给到后面的步骤。因此,正如可以以沿着组装线逐步制造汽车或电器的方式一样,视频编解码器可以按组装线方式处理宏块。
[0132] 在许多不同的问题域内,可以存在参照图37所论述的视频编解码器实现的激励根据本发明的视频编解码器的大规模并行处理实施方式的特点。在许多情况下,可以以以许多不同的方式分解计算问题。为了将本发明的方法应用于任何特定问题,作为所述方法的第一步,需要选择产生以上参照图37所论述的特点中的一些或全部的问题分解。例如,可以以可替换的、不利的方式分解视频数据流压缩问题。例如,可替换的分解将是分析整个视频数据流或者帧的大部分块,以在宏块处理之前进行运动检测。在某些方面,这种较大粒度方法可以对运动检测和基于运动检测的压缩提供显著的优点。然而,这种可替换的问题分解需要容量很大的内部存储器,并且运动检测步骤将会太复杂且计算效率太低,以至于不能容易地在易计算的和可管理的数据对象的逐步处理内适应。
[0133] 为了说明的目的,前面的描述使用特定的术语来提供本发明的充分理解。然而,本领域技术人员将明白的是,实施本发明不需要特定细节。为了图示说明和描述的目的,呈现本发明的特定实施方案的前面的描述。它们的意图不是穷举或者将本发明限于所公开的精确形式。鉴于以上教导,许多修改和改动是可以的。为了最佳地说明本发明的原理及其实践应用,示出并描述了实施方案,从而使得本领域技术人员能够最佳地利用本发明和具有适合于所考虑的特定用途的各种修改的各种实施方案。意图的是,本发明的范围由所附的权利要求及其等同形式限定。