用于数字视频记录器的视频编辑和重新格式化的制作方法

文档序号:6770650阅读:186来源:国知局
专利名称:用于数字视频记录器的视频编辑和重新格式化的制作方法
技术领域
本发明涉及视频记录。尤其是,本发明涉及用于数字视频记录器的视频格式。
背景技术
数字视频记录器一般被用于记录数字视频以供传送到计算机。当在计算机上时, 用户可编辑、增强和共享数字视频。但是,当前的数字视频记录器通过使用编码形式-其使用时间压缩-压缩数字视频。即,压缩的视频包括预测(P)和双向(B)帧,这些帧不是实际的图像,而仅是表示被编码为图像的索引(I)帧之间的差异的数学数据。时间压缩使得能够在照相机上将数字视频压缩成更小的文件尺寸,但是,对于为了用视频进行工作而希望将视频传送到自己的计算机的用户,产生多个问题。由于P和B仅通过参照其它帧被限定,因此,为了使得用户能够编辑它们,必须对它们进行代码转换。该代码转换一般发生在从照相机导入数字视频时。图1示出具有视频照相机105和计算机110的现有系统。视频照相机105捕获并存储具有尺寸X的视频文件115。通过使用时间压缩将该视频编码。在从照相机105向计算机110传送时,视频必须被转换代码(以去除时间压缩)并被存储。得到的文件120具有3X IOX的尺寸,并因此远大于照相机上的原始文件。由于这些扩展,所以对于这种文件的尺寸,大量视频对于大多数的用户来说是不能承受的。此外,代码转换是时间和计算密集过程。由于代码转换,传送30分钟的视频可花费90分钟。因此,视频照相机需要记录在不牺牲质量或产生过大的文件尺寸的情况下未被时间压缩的视频的能力。

发明内容
本发明的一些实施例提供以非时间压缩的格式捕获并存储数字视频的视频记录设备(例如,视频照相机)。在保持希望的视频质量的同时以希望的特定的分辨率和/或位率存储捕获的数字视频。当从记录装置向计算机导出数字视频(例如,用于编辑、共享等)时,视频在不必代码转换的情况下被迅速传送。代码转换在一些实施例中包括在导入时解码视频以去除任何时间压缩并然后在没有时间压缩的情况下将视频重新编码。因而,当不需要代码转换视频时,数字视频以其原本格式被存储于计算机上。在一些实施例中,视频记录设备向用户提供存储被时间压缩或不被时间压缩的视频的选项。时间压缩的视频包括至少部分地参照一个或多个其它视频图片编码的帧间编码视频图片(例如,帧)。非时间压缩视频仅包括在不参照任何其它视频图片的情况下被编码的帧内编码视频图片(例如,帧)。一些实施例包括在可管理的位率下非时间压缩增强清晰度和/或高清晰度格式。 各种视频格式通过数字视频记录器的用户接口被呈现。在一些实施例中,各种不同的视频格式均使用相同的编码标准。即,时间压缩和非时间压缩格式使用相同的编码标准。
一些实施例提供具有识别到来的视频的格式的能力的媒体编辑应用。当到来的数字视频(例如,来自上述的视频记录设备)被时间压缩时,媒体编辑应用代码转换数字视频。当数字电压未被时间压缩时,媒体编辑应用在不代码转换或扩展视频的尺寸的情况下存储视频。由于不存在代码转换,因此,可以非常迅速地导入非时间压缩的数字视频。


在所附的权利要求中阐述了本发明的新颖特征。但是,出于解释的目的,在以下的图中阐述了本发明的数个实施例。图1示出具有视频照相机和计算机的现有系统。图2示出包括数字视频照相机和计算机的一些实施例的系统。图3示出通过使用时间压缩编码的数字视频图片序列。图4示出在不使用时间压缩的情况下编码的数字视频图片序列。图5示出允许用户为捕获的视频选择视频格式选项的一些实施例的视频照相机的用户接口。图6示出允许用户为捕获的视频规定位率设置的一些实施例的视频照相机的用户接口。图7示出用于捕获、编码和存储数字视频的一些实施例的数字视频照相机的软件架构。图8概念性地示出用于在具有存储时间压缩视频或非时间压缩视频的能力的数字视频照相机上捕获和存储视频的一些实施例的过程。图9A概念性地示出一些实施例的视频分辨率宽度降低的例子。图9B概念性地示出一些实施例的视频分辨率宽度增加的例子。图10概念性地示出一些实施例的在视频编码中对8 X 8宏块执行变换。图11概念性地示出一些实施例的内部预测模式的预测方向。图12A概念性地示出一些实施例的逐个片段地编码的视频图像。图12B概念性地示出一些实施例的逐个片段地解码的视频图像。图13示出用于执行非时间编码视频的一些实施例的过程。图14概念性地示出一些实施例的用于为视频记录设备限定不同的视频格式的过程。图15示出一些实施例的利用图8的视频捕获、编码和存储过程的视频照相机的框图。图16示出一些实施例的用于导入和编辑数字视频的媒体编辑应用,所述媒体编辑应用具有区分到来的数字视频的不同格式的能力。图17概念性地示出一些实施例的用于存储从数字视频源导入到计算机中的视频片段的过程。图18示出实现本发明的一些实施例的计算机系统。
具体实施例方式在以下的描述中,出于解释的目的,阐述了大量的细节。但是,本领域技术人员可
7以理解,可以在不使用这些特定的细节的情况下实现本发明。例如,例子中的一些示出特定的编码模块。本领域技术人员可以理解,在不背离本发明的情况下,不同的编码模块是可能的。本发明的一些实施例提供以不被时间压缩的格式捕获和存储数字视频的视频记录设备。在保持希望的视频质量的同时,以希望的特定的分辨率和/或位率存储捕获的数字视频。当数字视频从照相机被导出到计算机时,数字视频在没有代码转换的情况下以其原本的格式被存储于计算机上。图2示出包括数字视频照相机205和计算机210的系统。数字视频照相机捕获并存储具有尺寸Y的视频文件215。视频文件215不被时间压缩。即,在不参照其它数字视频图片的情况下将视频文件中的每个数字视频图片(即,帧或场)编码。以下描述的图3 和图4示出不同的帧类型。非时间压缩的视频片段从视频照相机205被传送(例如,通过 USB、FireWire或其它的有线或无线连接)到计算机210。如下所述,计算机210可包括用于编辑和增强视频的媒体编辑应用。计算机210以其原本格式将视频片段存储为视频文件 220。该视频文件220具有与照相机上的视频文件215相同的尺寸Y。由于不存在要去除的时间压缩,因此在导入时不需要执行代码转换。这不仅导致具有相同尺寸的文件,而且传送时间仅受文件的尺寸和照相机205和计算机210之间的连接速度限制。当需要执行代码转换时,慢的代码转换过程抵消掉对于被假定为伴随随机存取照相机存储装置(即,硬盘、闪存等)发生的更快传送的承诺。如上所述,一些实施例的视频记录设备以不被时间压缩的格式存储数字视频。非时间压缩的视频仅包括在不参照任何其它数字视频图片的情况下编码的帧内编码数字视频图片(即,帧)。通过比较,图3示出被时间压缩的数字视频图片的序列300。时间压缩视频包括至少部分地参照一个或多个其它视频图片编码的帧内编码数字视频图片(例如, 帧)。图3示出I帧(不参照任何其它帧编码的内部帧)、P帧(参照前面的帧编码的预测帧)和B帧(参照以前和以后的帧编码的双向帧)。序列300包括I巾贞,然后是两个B巾贞,然后是P巾贞,然后是另外两个B帧等等。在一些实施例中,从I帧305到总第15帧的序列被称为图片组(G0P)。在这种情况下,GOP尺寸为15。每个GOP从I帧开始。一些实施例不是将I、P和B帧用于时间压缩,而是将I、P和B片段用于时间压缩。 一些实施例的每个数字视频图片(例如,帧)包括大量的宏块,这些宏块中的每一个为像素值的16X16阵列。片段是一组连续的宏块。在一些实施例中,不是逐个图片地确定如何将宏块编码,而是逐个片段地进行这种决定。并且,当将逐个片段地编码的视频图像解码时, 可以相互独立地将每个片段解码。图4示出未时间压缩视频图片序列400的情况。替代地,序列400中的每个视频图片是在不参照其它帧的情况下限定的I帧。虽然该格式没有如序列300那样在照相机上被压缩,但是,序列400不需要在传送到计算机时被代码转换,并且可比时间压缩的序列更容易地被编辑。一些实施例提供具有识别到来的数字视频的格式的能力的媒体编辑应用。如果视频被时间压缩,那么媒体编辑应用仅将数字视频代码转换。当数字视频不被时间压缩时,媒体编辑应用在不代码转换或扩大视频的尺寸的情况下存储视频。
I.数字视频照相机如上所述,一些实施例提供以不时间压缩的格式捕获并存储数字视频的视频记录设备(例如,数字视频照相机)。一些实施例向用户提供记录时间压缩或未时间压缩的视频的选项。在一些实施例中,在视频照相机的用户接口上呈现该选项。A.用户接口图5示出允许用户为捕获的视频选择视频格式选项的视频照相机的用户接口。特别地,该图表示两个不同的阶段上的视频照相机的用户接口 用户选择iFrame视频格式选项之前的第一阶段和其选择之后的第二阶段。如所示的那样,视频照相机500包括具有用于显示包括菜单515的图形用户接口(⑶I)的显示屏510的用户接口 505。图形用户接口可以为完全文本的、完全图形的或者它们的组合。用户接口 505还包括数个用户可选择的控件520和525。菜单515显示视频格式选项的列表。这些选项包括不同分辨率(即,iFrame 960X540, iFrame 1280X720)的数个iFrame ( S卩,非时间压缩)选项和数个时间压缩格式选项。菜单范围内的格式选项从高清晰度到增强清晰度;但是,菜单可排除一个或多个选项或者包括其它的选项(例如,iFrame 640X480)。一些实施例仅包括一个非时间压缩选项 (例如,1280X720)。如上所述,一些实施例提供960X540iFrame记录格式选项。该记录格式具有540p 的垂直分辨率。出于多种原因该分辨率是有利的,其中的一个是,分辨率常常与照相机的传感器的原本分辨率对应,并且可很容易地被上转换(例如,通过用于编辑视频的计算机)为诸如720p、1080i或1080p的HD标准。视频照相机上的用户可选择控件520和525允许用户导航菜单515。特别地,控件520用于垂直导航菜单515,而控件525用于水平导航菜单。在图5所示的例子中,这些控件被提供为视频照相机上的物理控件。但是,在一些实施例中,这些导航控件可被提供为在显示屏上显示的图形用户接口的一部分。作为替代方案,或者相结合地,视频照相机500 可配有触摸屏,该触摸屏允许用户通过使用触摸屏直接选择视频格式选项而不必使用诸如控件520和525的这种物理控件。现在参照图5所示的两个不同阶段描述用户接口的动作。在第一阶段中,显示屏 510显示菜单515。当前选择的记录格式是时间压缩选项(1080p)。视频照相机的用户通过控件520和525与菜单515交互。特别地,用户为了在菜单中将所选选项向上移动一条并且将视频格式选项从时间压缩格式变为iFrame格式,选择了控件520的顶部控件。如阶段2如所示,一旦用户选择控件520的顶部控件,菜单515就突出显示iFrame 格式选项(即,iFrame960X540)。该突出显示向用户提供iFrame格式选项的选择的视觉指示。既然用户选择了 iFrame格式选项,将以特定的分辨率在没有时间压缩的情况下记录随后捕获的视频片段。在前面的例子中,菜单515显示用于使用不同的编码方案和分辨率将捕获的视频帧序列编码的不同视频格式选项的列表。在一些实施例中,菜单515显示用于规定其它编码格式的一个或多个其它选项。图6示出允许用户不仅规定分辨率和编码方案而且规定位率的用户接口 505。该用于视频的位率在一些实施例中是每个回放时间的视频文件的尺寸。 一般地,如果分辨率保持相等,那么较高的位率将导致更高质量的视频。但是,较高的位率还意味着较大的文件,这对于用户来说使用起来是麻烦的。该图与前面的图类似;但是,菜单515通过不同的位率设置以相同的分辨率显示多个iFrame格式选项。特别地,菜单515为两个iFrame分辨率(即,iFrame 960X540、 iFrame 1280X720)中的每一个显示两个不同的位率设置(即,24Mbps、20Mbps或16Mbps 中的两个)。如所示的那样,在不改变iFrame分辨率的情况下,用户选择控件520的底部控件以将位率设置从24Mbps变为16Mbps。在一些实施例中,照相机将视频最终传送到的媒体编辑应用具有最大特定位率(例如24Mbps)。在一些实施例中,视频照相机的菜单515 可允许用户选择其它视频编码选项。例如,菜单515可显示可选择的帧率选项(例如,每秒 25或30帧)。B.架构图7示出用于捕获、编码和存储数字视频的数字视频照相机700的软件架构。数字视频照相机700包括用户接口 705、视频压缩控制器710、离散余弦变换(DCT)单元715、 量化器单元760、熵编码器725、逆量化器单元730、逆余弦变换(IDCT)单元735、运动补偿、 运动估计和帧内预测单元740、加法器745和图像捕获单元750。照相机还包括用于压缩设置的存储装置755和视频存储装置760。在一些实施例中,两个存储装置是相同的物理存储装置。在其它的实施例中,两个存储装置是照相机中的单独的物理存储装置或相同物理存储装置的不同部分。在一些实施例中,视频存储装置760是数字带。在其它的实施例中,视频存储装置760是诸如磁盘存储装置(例如,硬盘)或固态存储器(例如,闪存)的非易失性存储装置。在一些实施例中,视频存储装置 760是闪存那样的随机存取存储装置。闪存的例子包括安全数码卡(Secure Digital, SD), CompactFlash(CF)、记忆棒(Memory Stick, MS)和其它类型的闪存。当存储装置760是随机存取存储装置时,即使在第一视频片段之后记录第二视频片段,用户(例如,附接到视频照相机的计算机的用户)也可在第一视频片段之前选择存取第二视频片段。视频存储装置 760的不同实施例可被配置为通过使用诸如文件分配表(FAT)、分层文件系统(HFS)、扩展文件分配表(exFAT)和其它不同类型的文件系统之类的不同文件系统来存储数据(例如, 捕获的数字视频)。照相机700的用户接口 705包括在前面的图中在显示器510上示出的图形用户接口以及相同的图所示的诸如控件520和525的用户输入控件。图形用户接口可以是仅文本界面,或者也可包括图形。如上所述,用户通过用户接口 705输入格式选择信息。通过选择压缩类型(时间或非时间)、分辨率和/或位率,用户确定随后记录视频的格式。该格式选择信息765从用户接口被传送到视频压缩控制器710。视频压缩控制器710指示各种压缩和编码模块如何针对特定格式执行编码。视频压缩控制器基于选择的格式从存储装置755提取压缩设置。这些压缩设置然后被传送到各种压缩和编码模块,以使得它们可适当地以规定的格式将视频编码。图7示出视频压缩控制器指示DCT单元715、量化器单元720、熵编码器725和运动估计、运动补偿和帧内预测单元740。在一些实施例中,与给予DCT单元715和量化器单元720的信息类似的信息也被转送到逆量化器单元730和IDCT单元735。图像捕获单元750捕获视频。对于关于视频捕获过程的更多细节,以下参照图15给出。在一些实施例中,以每秒25或30帧的速率捕获视频。这在一些实施例中为用户选项并且在其它的实施例中为不可变设置。每个捕获帧基本上是通过视频照相机捕获的图像。 捕获的帧从成像器被发送到压缩和编码模块715 745,以使得帧可被编码。DCT单元715对于源自在加法器745上执行的加法或减法的图像数据块执行离散余弦变换。离散余弦变换运算通过去除存在于图像数据块内的一些空间冗余实现压缩。该运算将图像数据块变换成DCT系数的二维阵列,在该二维阵列中,块的能量中的大多数一般集中于几个低频系数中。量化器单元720对通过DCT单元715产生的DCT系数应用量化。量化运算通过将值的范围压缩成单一量值,实现DCT系数的压缩。量化导致质量的损失,因此,一些实施例使用量化矩阵,以通过向DCT系数的某些频率分配更小的量化步长而将图像质量的损失最小化。熵编码器725将输入数据转换成可变长度代码。在一些实施例中,输入数据直接源自量化器单元720。在其它实施例中,在量化器单元720和熵编码器725之间执行诸如 Z字形扫描和游程长度编码之类的中间运算。一些实施例的熵编码器725通过与具有较低的出现概率的值相比向具有较高的出现概率的值分配较短的长度代码字来实现压缩(例如,基于上下文的自适应可变长度编码)。一些实施例使用诸如逐个符号地执行熵编码的 Huffman或UVLC之类的编码方案。其它的实施例使用诸如将整个数据块编码成单个数的算术编码之类的编码方案(例如,基于上下文的自适应二值算术编码)。熵编码器输出可存储于视频存储装置760中的编码帧。一些实施例执行空间或时间预测以实现视频图像的进一步压缩。为了便利于此, 一些实施例包括视频解码路径,因此,编码器可使用由解码器使用的相同的解码基准帧以执行预测。解码路径包括逆量化器单元730和逆DCT单元735 ;这些单元执行上述的量化器单元720和DCT单元715的逆运算。运动估计、运动补偿和帧内预测单元740执行运动估计、运动补偿和帧内预测运算。运动补偿运算是解码路径的一部分;为了重构和解码视频图像,它使用时间预测信息以补偿逆DCT单元735的输出。运动估计运算是编码路径的一部分;它为了获得匹配的像素块而搜索其它的解码帧以产生用于时间预测的运动矢量。帧内预测具有编码分量和解码分量。帧内预测运算的解码分量使用空间预测信息以重构并解码视频图像。帧内预测运算的编码分量为了获得用于空间预测的匹配的像素块而搜索当前解码帧。在一些实施例中,单元740将只在被指示不执行时间压缩时才执行空间帧内预测。加法器745计算来自图像捕获单元750的图像与运动估计、运动补偿和帧内预测单元740的输出之间的差异。得到的差异(或总和)然后被发送到DCT单元715以如上所述的那样被编码。通过大量的不同变量,确定DCT、量化器和熵编码器单元715 725中的每一个的运算。可根据规定的视频格式不同地设置这些变量中的每一个。因此,DCT运算在一些实施例中不是被一个特定的设置控制,而是由多个不同的选择控制。在一些实施例中,这些是由希望在特定的分辨率和位率上使视频质量最大化的照相机制造商做出的设计选择。类似地,在一些实施例中,量化器和熵编码器运算也受多个不同的选择一其是希望在特定的分辨率和位率上使视频质量最大化的针对每个特定格式的设计选择一控制。例如,可基于视
11频格式修改由量化器使用的量化矩阵。当视频压缩控制器710为非时间压缩视频规定设置时,运动估计、运动补偿和帧内预测单元740被指示仅执行帧内预测,而不是作为时间压缩的一部分的运动估计和运动补偿运算。另一方面,当视频压缩控制器为时间压缩视频规定设置时,单元740除了帧内预测以外还执行运动估计和运动补偿。此外,在一些实施例中,除了给不同的模块规定编码变量以外,视频压缩控制器 710在编码过程中执行速率控制。为了执行速率控制,控制器710在每个帧的编码之后计算编码的视频图片与目标位率(即,为视频格式规定的位率)的接近度。控制器710然后即时地(on-the-fly)调整压缩变量(例如,DCT单元725和量化器单元720的变量)以调整要被编码的帧的尺寸。在一些实施例中,进行这些改变的方式是由所选视频格式规定的压缩设置的一部分。虽然照相机700的特征中的许多被描述为由一个模块(例如,视频压缩控制器 710)执行,但是,本领域技术人员可以理解,功能会被分成多个模块,并且,一个特征的性能甚至会需要多个模块。类似地,在一些实施例中,可通过一个模块执行被示为由各单独的模块执行的特征。图8概念性地示出了一些实施例的用于在具有存储时间压缩视频或非时间压缩视频的能力的数字视频照相机(例如,照相机700)上捕获并存储视频的过程800。过程800 从为捕获的视频识别(在805)规定特定的分辨率和/或位率的所选视频格式开始。在一些实施例中,如图5和图6所示,由用户通过用户接口选择该视频格式。过程800确定(在810)是否对于当前正在捕获的视频片段执行时间压缩。基于所选视频格式进行该确定。当用户选择了 iFrame记录模式时,不执行时间压缩。另一方面, 当用户选择了不同的记录模式(例如,AVC HD 1080p)时,需要时间压缩。当需要时间压缩时,过程接收(在815)下一捕获视频图片。该过程然后在空间和时间上压缩(在820)视频图片,并且编码(在820)视频图片。在一些实施例中,由各编码模块715 745执行该操作。该过程然后在照相机的存储装置中存储(在825)编码的视频图片。然后,过程800确定(在830)照相机是否仍在捕获视频(即,是否存在要压缩和编码的任何更多的帧)。当照相机不再捕获视频时,该过程结束。否则,过程返回815以接收下一捕获视频图片。在当前捕获的视频片段不需要时间压缩时,过程接收(在835)下一捕获视频图
片。该过程然后在空间上压缩(在840)视频图片。在一些实施例中,虽然仅使用内部预测,
但是该操作由单元740执行。当视频图片不被时间压缩时,不需要执行运动估计或运动补 m
te ο然后,过程800使用根据所选格式的变量,对视频图片执行(在845)离散余弦变换。即,在一些实施例中,通过使用由视频压缩控制器710发送到离散余弦变换单元715的变量执行离散余弦变换。它们是被选择(在一些实施例中,作为由照相机制造商做出的设计选择)为在不对视频执行时间压缩的情况下以希望的分辨率和/或位率产生高质量视频的变量。该过程然后使用根据所选格式的变量,量化(在850)视频图片(DCT单元的输出)。即,在一些实施例中,通过使用由视频压缩控制器710发送到量化器单元720的变量执行量化。它们是被选择(在一些实施例中,作为由照相机制造商做出的设计选择)为在不对视频执行时间压缩的情况下以希望的分辨率和/或位率产生高质量视频的变量。过程然后使用根据所选格式的变量,熵编码(在855)视频图片(量化器单元和诸如游程长度编码器的任何中间模块的输出)。即,在一些实施例中,通过使用由视频压缩控制器710发送到熵编码器725的变量执行熵编码。它们是被选择(在一些实施例中,作为由照相机制造商做出的设计选择)为在不对于视频执行时间压缩的情况下以希望的分辨率和/或位率产生高质量视频的变量。过程800然后在照相机的存储装置中存储(在860)编码的视频图片。然后,过程800确定(在865)照相机是否仍在捕获视频(即,是否存在要压缩和编码的任何更多的帧)。当照相机不再捕获视频时,过程结束。否则,过程返回到835以接收下一捕获视频图片。C.示例性视频处理配置以上部分描述了一些实施例的以不被时间压缩的格式捕获并存储数字视频的视频记录设备的许多方面。以下部分描述一些实施例的非时间压缩视频处理配置和通过这种配置执行的各种过程的各方面。在一些实施例中,基于由希望以特定的分辨率和位率使视频质量最大化并减少视频的解码时间的照相机制造商做出的设计选择以及其它的设计目的确定该配置。可以使用不同的视频处理技术以增加非时间压缩视频的视频质量(或减少位率)。一种这样的技术是从编码视频之前的所选分辨率(例如,iFrame 1280X720)减小视频分辨率的宽度。因此,为了增加编码视频的视频质量和/或减小其位率,示例性配置的一些实施例减少视频分辨率宽度减小。图9A概念性地示出了一些实施例的视频分辨率宽度减小的例子。在本例子中,假定所选记录选项是iFrame 1280X720。图9A表示由缩放器905和编码器910执行的视频处理操作的各种阶段上的视频图像(例如,图像925和图像910)。在一些实施例中,可通过以下描述的图15的视频编码器1520实现编码器910。如所示的那样,具有1280X720的分辨率的未编码的视频图像(例如,图像925)被输入到缩放器905中。缩放器905减小(即, 缩放)视频图像的分辨率的宽度,该视频图像现在具有960X720的分辨率(如图像930所示),并且将视频图像输出到编码器910以将其编码。在一些实施例中,当缩放器905减小视频图像的分辨率的宽度时,它也沿宽度方向伸展像素,以使得保持视频的纵横比。通过将图像925的像素示为正方形并将图像930的像素示为矩形,在图9A中示出这一点。示例性配置的一些实施例也增加被解码之后的视频分辨率的宽度。例如,一些这样的实施例将视频分辨率宽度重新增加到初始捕获的视频的宽度。图9B概念性地示出这种实施例的视频分辨率宽度增加的例子。图9B表示由解码器915和缩放器920执行的视频处理操作的各阶段上的视频图像(例如,图像935和图像940)。在一些实施例中,可通过后面描述的图15的视频解码器1540实现解码器915。继续图9A所示的例子,当图9A中的编码视频图像要被解码(例如,通过后面描述的媒体编辑应用1600)时,它们被发送到解码器915。在视频图像被解码之后,缩放器920 在视频图像被存储和/或显示之前增加(即,缩放)视频图像的分辨率的宽度。如图像935 所示,解码的视频图像在被缩放器920处理之前具有960X720的分辨率。由于视频图像初始以1280X720的分辨率被捕获,因此,如图像940所示,缩放器920重新将解码的视频图像的分辨率的宽度增加到1280 X 720分辨率。在一些实施例中,当缩放器920增加视频图像的分辨率的宽度时,它还沿宽度方向收缩像素,以使得保持视频的纵横比。通过将图像935 的像素示为矩形并将图像940的像素示为正方形,图9B示出这一点。以上的例子描述了以全部所选记录分辨率捕获的视频(即,视频记录设备的图像传感器以1280X720的分辨率捕获视频图像)。在一些实施例中,视频记录设备不捕获全部所选记录分辨率。而是,这些实施例以比所选记录分辨率低的分辨率捕获视频,并且,在视频被解码之后执行视频分辨率宽度增加。例如,参照以上的例子,一些这样的实施例以960X720的分辨率捕获视频。当视频被解码时,如图9B所示,视频分辨率增加到 1280X720。虽然图9A和图9B所示的例子表示在编码视频图像之前将以1280X720的分辨率捕获的视频图像缩放到960 X 720并在解码视频图像之后重新将视频图像从960 X 720缩放到1280X720,但是,不同的实施例将视频图像缩放到不同的尺寸。例如,一些实施例可以以 1920X1080的分辨率捕获视频,在编码视频图像之前将视频图像缩放到960X720,并且在视频图像被解码之后将视频图像缩放到1280X720。其它实施例可以在视频图像被解码之后不缩放视频图像。另外,一些实施例不仅缩放视频图像的分辨率的宽度,而且缩放视频图像的分辨率的高度。一些实施例成比例地缩放视频图像,而其它的实施例变形地缩放视频图像。在一些实施例中,关于是否在编码之前以及在解码之后缩放视频图像、视频图像在被编码之前被缩放到什么分辨率、视频图像在被解码之后被缩放到什么分辨率(例如,在视频记录设备自身上播放视频时)的确定是由希望以特定的分辨率和位率使视频质量最大化的照相机制造商提出的设计选择。并且,一些实施例将元数据插入指示其原始的缩放前分辨率的视频图像中,使得视频回放设备(例如,计算机、智能电话等)可在缩放视频图像以供回放时使用该信息。用于降低非时间压缩视频的位率(或增加视频质量)的其他方法是在视频的编码中在8X8宏块的基础上执行变换。如以上的图7所示以及如相关的部分描述的那样,逐个图片地(即,逐帧地)处理由图像捕获单元750捕获的视频。特别地,DCT 715逐帧地处理视频的图像。即,DCT 715从加法器715接收整个帧的图像数据,并且对图像数据执行离散余弦变换,该图像数据然后被输出到量化器720。在示例性配置的一些实施例中,DCT 715被配置为对8X8尺寸的宏块执行离散余弦变换。图10概念性地示出在视频的编码中对8X8宏块执行变换。如所示的那样,DCT 715从加法器715接收8X8矩阵形式的8X8宏块的图像数据,对于图像数据执行离散余弦变换,并且将变换后的数据输出到量化器720 (未示出)。但是,示例性配置的其它实施例可对于诸如16X16的不同宏块尺寸执行离散余弦变换。降低非时间压缩视频的位率(或增加视频质量)的又一方法是在编码视频时执行所有内部预测模式。示例性配置的一些实施例将常规的H. 264编解码器标准用于视频图像的内部预测编码,而示例性配置的其它实施例根本不执行任何内部预测编码。替代地,这些实施例仅使用内部模式编码将视频编码。在一些实施例中,内部模式编码在不使用任何内部预测模式的情况下进行编码。
14
如上所述,在一些实施例中,视频包括视频帧序列,其中每个帧包括多个宏块。宏块一般为像素的16X 16阵列(虽然其它尺寸的宏块也是可能的,诸如以上讨论的8X8宏块),并且被分成分区(诸如4X4像素阵列的分区)。根据H. 264编解码器标准,当对帧进行内部预测编码时,存在9种不同的方式将4X4阵列编码(S卩,存在9个内部4X4预测模式)。9个模式为0. Intra_4X4_Vertical1. Intra_4X4_Horizontal2. Intra_4X4_DC3. Intra_4 X 4_Diagonal_Down_Left4. Intra_4X 4_Diagonal_Down_Right5. Intra_4 X 4_Vertical_Right6. Intra_4X 4_Horizontal_Down7. Intra_4X4_Vertical_Left8. Intra_4X4_Horizontal_Up仅以一个预测模式编码每个4X4阵列。一般地,将选择导致最低成本的预测模式。成本一般等于失真(这里,失真反映原始像素值与编码预测值之间的差异)或者由预测模式产生的失真和位数的加权平均(这里,失真和/或位数的增加增加成本)。可以执行所有9个预测模式中的穷举搜索,以确定具有最低成本的最佳预测模式(所选预测模式)。一些实施例应用搜索启发法以选择内部预测模式而不是在9个预测模式之间执行穷举搜索。图11概念性地示出上述9个内部预测模式的预测方向。对于当前处理的4X4阵列,根据H. 264标准的预测模式指示另一 4X4阵列(这里,称为预测阵列)的位置(相对于当前处理的4X4阵列),其将是为当前处理的阵列编码的预测信息的基础。例如,预测模式0(垂直)表示当前处理的阵列的预测阵列位于当前处理的阵列之上,并且,预测模式 1 (水平)表示当前处理的阵列的预测阵列位于当前处理的阵列的左侧。此外,存在减少非时间压缩视频的解码时间的各种方式。如上所述,当逐个片段地将视频图像编码时,可以与其它片段无关地解码视频图像的每个片段。因此,减少非时间压缩视频的解码时间的一种方式是要逐个片段地将视频图像编码,以使得具有多个处理器的计算设备可以独立且同时地将视频图像的各片段解码。图12A概念性地示出一些实施例的逐个片段地编码的视频图像。如所示的那样, 该图表示尚未由编码器1205处理的视频图像1200。在一些实施例中,可通过后面描述的图15的视频编码器1520实现编码器1205。在本例子中,编码器1205被配置为将视频图像分成4个片段并且逐个片段地将视频图像编码。图像1210概念性地示出被分成4个片段的视频图像。如所示的那样,图像1210被分成4个部分1215 1230。但是,分割部分 1215 1230的方式仅出于解释的目的。编码器1205的其它实施例可将图像1210分成任意数量的部分和任意数量的不同形状和尺寸。由于逐个片段地编码的视频图像的每个片段可被独立地解码,因此,具有多个处理器的计算设备(例如,计算机、智能电话等)可同时将多个片段解码。图12B概念性示出一个这种计算设备的解码硬件。该图表示包括处理系统1240和解码控制器1290的解码硬件1235。在一些实施例中,可通过后面描述的图15的视频解码器1540实现解码硬件1235。
处理系统1240包括4个处理单元1245 1260 (处理器、内核、处理内核等)。在一些实施例中,处理单元1245 1260被实现为单一裸片上的内核,而在其它的实施例中处理单元1245 1260被实现为单一封装中的芯片。在其它的实施例中,处理单元1245 1260被实现为单一系统中的多个封装。一些实施例的解码控制器1290负责将视频图像的片段分配或指派给处理单元1245 1260以便解码。因而,当解码硬件1240识别出视频帧逐个片段地被编码并且识别出视频帧的片段时,解码控制器1290向处理单元1245 1260 中的一个或多个分配或指派识别的片段以便解码。在一些实施例中,可由处理单元1245 1260中的一个或多个实现解码控制器1290,而在其它的实施例中,可通过单独的硬件部件实现解码控制器1290。继续图12A所示的例子,被分成4个片段并且逐个片段地被编码的视频图像被发送到用于解码的解码硬件1235。每个视频图像的片段被识别并被指派给处理系统1240的处理单元以便解码。如所示的那样,视频图像1265包括4个片段1270 1225。解码控制器1290向处理单元1245指派片段1270、向处理单元1250指派片段1275、向处理单元1255 指派片段1220并且向处理单元1260指派片段1225。由于可以相互独立地将每个片段解码,因此,向片段1270 1225中的每一个指派处理系统1240的不同处理单元允许独立且同时地将视频图像1265的片段1270 1225解码。因此,在一些实施例中,该解码技术导致解码时间减少。在图12B中,通过处理系统1240的单个处理器同时并独立地将视频图像中的每个片段解码。但是,不同的实施例可分配或指派不同数量的处理器,以将视频图像的片段解码。例如,一些实施例可指派处理系统1240的两个处理单元,以将视频图像的每个片段解码。因而,可通过示出的处理系统1240在给定的时间上同时将视频图像的至多两个片段解码。其它实施例可分配处理系统1240的所有处理单元1245 1260,以将视频图像的每个片段解码。在这些实施例中,一次仅可解码一个片段。确定视频图像被分割成的片段的数量和片段的形状和尺寸是由希望减少视频的解码时间的照相机制造商提出的设计选择。图13示出一些实施例的用于非时间编码视频的示例性配置的过程1300。在一些实施例中,上述的运动估计、运动补偿和帧内预测单元740执行过程1300的至少一部分。在一些实施例中,可通过后面描述的视频编码器1520执行过程1300。对于视频中的视频图像,该过程从减小(在1305)视频图像的分辨率的宽度开始。 参照图9A,可如上面描述的那样执行动作1305。然后,参照图12A,过程1300如上面讨论的那样将视频图像分割(在1310)成多个片段。过程1300然后选择(在1315)片段之一的宏块。然后,过程1300为所选的宏块选择(在1320)内部预测模式并且执行(在1325)所选的预测模式。过程1300然后计算(在1330)上述的所选内部预测模式的成本。然后,过程确定(在1335)是否留下任何未被选择的内部预测模式。如果剩有未被选择的内部预测模式,那么过程返回操作1320以继续执行其它未被选择的内部预测模式。 如果没有留下未被选择的内部预测模式,那么,过程1300选择(在1340)具有最低计算成本的内部预测模式。在1345,过程1300确定所选的内部预测模式是否足够好。在一些实施例中,当使用所选的内部预测模式编码宏块的间接成本(overhead cost)比使用内部模式编码宏块的成本低时,所选的内部预测模式就足够好。使用所选的内部预测模式编码宏块的成本包括不包括于内部模式中的间接成本。在一些实施例中,使用内部模式编码宏块在不使用任何内部预测模式的情况下将宏块编码。如果过程1300确定所选的内部预测模式不够好,那么过程1300选择(在1350) 内部模式作为用于宏块的编码模式。但是,如果过程1300确定所选的内部预测足够好,那么过程1300选择(在1355)所选的内部预测模式作为宏块的编码模式。在确定宏块的编码模式之后,过程1300如上面参照图10描述的那样对宏块执行(在1360)8X8变换。最终,过程确定(在1365)片段中是否剩有任何未被选择的宏块。如果片段中留下未被选择的宏块,那么过程返回操作1315,并且处理片段中的另一宏块。因此,过程1300重复操作1315 1360,直到在片段中不再留下宏块,在该点上,该过程结束。虽然过程1300描述了视频图像的一个片段的宏块处理,但是,对于视频图像中的每个片段执行操作1315 1365。图14概念性地示出一些实施例的用于为视频记录设备限定不同的视频格式的过程。在一些实施例中,视频记录设备提供时间压缩视频格式和非时间压缩视频格式二者。过程1400从为捕获的视频识别(在1405)规定特定的分辨率和/或位率的视频格式开始。然后,过程1400确定(在1410)格式是否规定时间压缩。如果格式规定时间压缩,那么过程1400限定(在1415)视频格式的时间压缩参数。在一些实施例中,参数基于由希望针对特定的分辨率和/或位率将视频质量最大化的视频记录设备的制造商作出的设计选择。如果格式没有规定时间压缩,那么该过程前进到操作1420。在1420上,过程1400为视频格式限定变换块尺寸为8X8。过程1400然后为视频格式限定(在1425)多个片段编码。在一些实施例中,4个片段被定义为片段的数量。但是, 其它的实施例可为使用视频格式编码的视频图像限定不同数量的片段。然后,过程1400限定(在1430)视频格式以检查所有内部预测模式。在限定视频格式的参数之后,过程1400 确定(在1435)是否存在要限定的任何更多的视频格式。如果存在要限定的附加的视频格式,那么过程1400返回操作1405并且限定另一视频格式。过程1400重复操作1405 1430,直到不再存在要限定的视频格式,然后,过程结束。上述部分描述了以特定次序执行的过程1400的操作。但是,本领域技术人员可以理解,可以以任意的次序或者同时地执行过程1400的操作中的一些或全部。例如,可以同时执行操作1420、1426、1430,可以在操作1420之前执行操作1425和1430,或者,可在操作 1425之前执行操作1420和1430。D.系统图15示出一些实施例的利用上述的视频捕获、编码和存储过程的视频照相机 1500的框图。视频照相机1500可以与视频照相机700相同,或者可以在一个或多个方面不同。如图15所示,视频照相机1500包括光学入口 1505、图像感测电路1510、视频编码器 1520和存储设备1530。一些实施例中的视频照相机还包括数据传送端口 1535、视频解码器 1540、数字取景器1545和用户输入控制1550。外部世界的光学图像通过光学入口 1505进入视频照相机1500。在一些实施例中, 光学入口 1505包括孔径和一个或多个光学透镜。透镜对于光学图像执行聚焦、光学变焦或其它的光学处理。来自光学入口 1505的光学图像被投影到图像感测电路1510上,该图像感测电路1510将光学图像转换成电信号。在一些实施例中,图像感测电路1510是电荷耦合器件 (CCD)。CCD包括包括二维电容器阵列的光活性区域,在该光活性区域中,电容器蓄积与接收到的光的强度成比例的电荷。一旦阵列被暴露于光学图像,控制电路就使得每个电容器将其内容传送到将电荷转换成电压的其邻居或电荷放大器。通过重复该过程,CCD将光学图像采样和数字化。视频编码器1520将数字化的光学图像编码。一些实施例将视频编码器1520实现为执行一组指令的微处理器。其它的实施例通过使用诸如专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它类型的电路之类的一个或多个电子器件实现视频编码器1520。在一些实施例中,视频编码器1520是使用预测和离散余弦变换以从图像中去除冗余的H. 264MPEG-4编码器。一些实施例去除空间和时间冗余,而其它的实施例仅去除空间冗余或者不去除任何冗余。视频编码器的一些实施例进一步使用熵编码以从编码的图像产生压缩的位流。存储设备1530存储编码的图像。在一些实施例中,存储设备1530是闪存设备、硬盘或能够存储诸如编码图像的数字信息的其它类型的非易失性存储设备。在一些实施例中,存储设备是可去除的(例如,可去除闪存驱动器)。存储的编码图像可通过使用数据传送端口 1535被传送到视频照相机1500外面。数据传送端口 1535在视频照相机1500的存储设备1530和诸如计算机的外部设备之间传送图像或其它数据。在一些实施例中,数据传送端口 1535使用诸如通用串行总线 (USB)或IEEE 1394接口(FireWire)之类的高通信量协议,以与计算机通信。数据传送端口 1535还可通过使用任何其它有线或无线数据通信协议与计算机通信。用户输入控制1550允许用户调整视频照相机1500的各种部件的设置。在一些实施例中,用户输入控制1550被实现为视频照相机上的物理按钮。作为替代方案,或者相结合地,一些实施例包括允许用户图形地导航通过视频照相机的各种设置的GUI。在一些实施例中,用户输入控制1550允许用户调整视频编码器1520的各种设置。例如,用户可设置视频解码器以通过使用包括于H. 264标准中的任何编码模式将图像编码,或者,用户可设置视频编码器1520以仅使用I帧或H. 264标准的其它子集。一些实施例包括视频解码器1540,因此,用户可观察编码图像。视频解码器1540 能够解码通过视频编码器1520编码并存储于存储设备1530上的图像。在一些实施例中, 由于视频编码器1520的一些实施例为了产生兼容H. 264的编码视频序列而包括视频解码器,因此,视频解码器1540是视频编码器1520的一部分。数字取景器1545显示由视频解码器1540解码的视频图像。在一些实施例中,数字取景器实现为与用户输入控制1550相关的⑶I的一部分。II.媒体编辑应用一些实施例提供用于导入和编辑数字视频的具有区分到来的数字视频的不同格式的能力的媒体编辑应用。当导入时间压缩数字视频时,媒体编辑应用代码转换数字视频并且在存储装置中存储代码转换的视频。当导入非时间压缩数字视频时,媒体编辑应用识别该格式并且在没有代码转换的情况下直接将到来的视频存储到存储装置中。图16示出一些实施例的这种媒体编辑应用1600。这些媒体编辑应用的一些例子包括均由Apple Inc. 销售的iMovie 和Final Cut Pro 。媒体编辑应用1600处于计算机1605上。在一些实施例中,计算机1605可以是专用于媒体编辑的计算机,或者可以是包括大量其它程序(例如,字处理器、网络浏览器、计算机游戏应用等)的计算机。除了媒体编辑应用1600以外,计算机1605还包括接口管理器1610和捕获模块 1615以及存储装置1620。接口管理器1610从数字视频源接收数字视频流。以下描述的照相机1625是这种数字视频源的一个例子。在一些实施例中,接口管理器是通过与数字视频源连接(例如,通过FireWire或USB电缆、直接通过USB端口、以无线的方式等)的计算机的端口(例如,FireWire端口、USB端口等)接收视频流的输入驱动器(例如,FireWire输入驱动器、USB输入驱动器等)。接口管理器1610将接收的视频流转发到捕获模块1615,该捕获模块1615在一些实施例中将视频流从低级端口管理器(接口管理器1610)传输到媒体编辑应用1600。在一些实施例中,该捕获模块1615是Apple inc. 的QuickTime Engine的一部分。在一些实施例中,捕获模块1615实际上是媒体编辑应用1600的一部分。存储装置1620存储从数字视频源接收的视频片段。存储装置1620在一些实施例中是媒体编辑应用1600的一部分。例如,存储装置1620可以是媒体编辑应用的库。在其它的实施例中,存储装置如所示的那样为计算机1605的一部分。在一些实施例中,存储装置1620可不仅存储视频片段。 例如,存储装置1620还可存储与媒体编辑应用1600相关的可执行或其它文件或驻留于计算机1605上的其它应用。媒体编辑应用1600包括格式识别模块1630、代码转换器1635和缩略图产生器 1640。本领域技术人员可以理解,一些实施例的媒体编辑应用将包括该图中没有示出的其它模块,诸如编辑模块、呈现引擎等。格式识别模块I630在导入时从捕获模块1615接收数字视频片段并且识别数字视频的格式。在一些实施例中,该识别确定数字视频是否被时间压缩。为了识别格式,在一些实施例中,格式识别模块1630检查数字视频片段的元数据(对于元数据的进一步描述,参见以下对视频片段的结构的描述)。在一些实施例中,元数据表示数字视频是iFrame (非时间压缩)格式还是使用时间压缩的不同格式。在一些实施例中,一旦照相机与计算机1605 连接,格式识别模块就能够识别各种视频片段的格式。当格式识别模块1630识别出到来的数字视频片段不被时间压缩并因此不需要被代码转换时,格式识别模块1630直接将视频片段路由到存储装置1620。如上所述,它可以是媒体编辑应用1600的库,或者,它可以是计算机1605上的被多个应用共享的存储装置。 在一些实施例中,导入这种数字视频片段的速度与视频片段文件的尺寸和照相机和计算机之间的连接速度相关,并且不与片段的代码转换或片段的回放速度相关。特别地,由于不存在代码转换,因此,导入速度不与解码和/或编码所需要的处理功率相关。此外,当数字视频片段被存储于照相机上的随机存取存储装置上时,导入速度与由于从基于带的存储装置一其需要回放带一进行读取而导致的视频片段的任何回放速度无关,从而导入30分钟的视频需要30分钟。一些实施例不是直接将视频片段路由到存储装置1620,而是为了去除空间压缩将到来的视频片段解码。当格式识别模块1630识别出到来的数字视频被时间压缩时,数字视频被路由到代码转换器1635。代码转换器1635在一些实施例中仅通过空间压缩将数字视频解码并重新编码。因此,代码转换器1635的输出是非时间压缩视频。该代码转换过程一般将花费明显比用于相等长度的非时间压缩视频片段的时间长的时间。在一些实施例中,代码转换器将视频解码并且不对于其重新编码。在一些实施例中,代码转换器输出(非时间压缩视频)被发送到缩略图产生器 1640。缩略图产生器1640为视频片段中的每个数字视频图片产生缩略图。缩略图连同视频片段一起被存储于存储装置1620中。一些实施例还作为存储之前的中间步骤,将非时间压缩的到来的视频片段从格式识别模块1630发送到缩略图产生器1640。并且,一些实施例不包括缩略图产生器并由此不存储具有视频片段的缩略图。如上所述,在一些实施例中,从照相机1625接收数字视频流。在一些实施例中,照相机1625可以是诸如数字视频照相机700的照相机。照相机1625包括传送模块1645和视频片段存储装置1650。视频片段存储装置包括以不同的格式存储的大量视频片段。例如, 以非时间压缩格式存储片段1651,以720p时间压缩格式中存储片段1652,并且,以1680p 时间压缩格式存储片段1653。如上面在部分I中所示,一些实施例允许用户选择由照相机捕获的每个视频片段的记录格式。如该图所示以及如后面描述的那样,一些实施例存储视频格式作为元数据。传送模块1645在一些实施例中为与照相机1625的输出端口(例如,FireWire或 USB端口)相关的输出驱动器。在一些实施例中,通过照相机的用户接口或媒体编辑应用 1600的用户接口(当照相机与计算机605连接时)与视频照相机交互的用户指示照相机 1625向媒体编辑应用1600传送特定的视频片段。片段然后通过传送模块1645被传送到计算机1605。图16还示出一些实施例的在照相机1625上存储的视频文件1655的格式。视频文件1655是非时间压缩视频片段的例子。视频文件1655包括视频图片数据1660、高级音频编码(AAC)音频数据1665和元数据1670。在本例子中,视频图片数据包括非时间压缩视频帧,并且,在片段1652的情况下会包括时间压缩视频帧数据。在一些实施例中,AAC音频数据1665是媒体编辑应用所需要的音频的特定格式。例如,其它的实施例允许诸如线性脉冲代码调制(LPCM)音频之类的不同形式的编码音频数据。如所示的那样,元数据1670包括视频格式类型1675、ge0tag数据1680、"coir”原子1685和其它元数据1690。视频格式类型1675表示视频的编码格式。S卩,格式类型1675 表示视频是否为iFrame格式(非时间压缩),并且还可表示视频的分辨率和/或位率。在一些实施例中,媒体编辑应用1600要求在将特定的阈值质量维持在给定的分辨率的同时使得位率对于iFrame格式数据(例如,24Mbps)低于特定的阈值。geotag数据1680在一些实施例中表示GPS坐标或关于拍摄视频片段之处的其它地理位置信息。该信息基于照相机中的地理定位器模块(例如,GPS接收器)。在一些实施例中,“coir”原子1685被用于适当地在不同的显示装置的颜色空间之间转换。特别地, "coir"原子表示应使用软件gamma颜色空间转换。在一些实施例中使用“coir”原子中的 “nclc”标签以识别颜色空间转换可通过软件或硬件路径(例如,在视频片段的回放时)。一些实施例还存储具有视频片段的其它元数据1690。该元数据可包括关于捕获视频片段时的照明的照明信息、关于视频片段的节奏(cadence)和帧率(例如,每秒25、30帧等)信息、位深(例如,8位)信息等。在一些实施例中,当视频片段被传送到媒体编辑应用 1600时,元数据1670与其一起被传送并被媒体编辑应用使用。例如,格式识别模块1630的
20一些实施例根据元数据1670确定视频格式类型。媒体编辑应用的一些实施例规定对于可接受的非时间压缩视频的要求。例如,一些实施例规定视频编码和压缩符合使用最低(Baseline)、主要(Main)或高端(High)简档 (Profile)编码的H.264编码方案。在一些实施例中,不同简档是不同的能力集合。一些实施例还规定照相机上的熵编码器(例如,图7的单元725)使用基于上下文的自适应变长编码(Context-based Adaptive Length Coding, CAVLC)或基于上下文的二值算术编码 (Context-based Adaptive Binary Arithmetic Coding,CABAC)。一些实施例规定其它的要求,诸如帧率(例如,仅25或30fps)、位深(例如,8位)、文件格式(例如,· mp4或· mov)、 颜色标注(例如,必须存在具有“nclc”颜色参数类型的“coir”原子)、最大位率(例如, 24Mbps)等。图17概念性地示出一些实施例的用于存储从诸如照相机1625的数字视频源导入到计算机中的视频片段的过程1700。在一些实施例中,过程1700由媒体编辑应用(例如, 应用1600)执行。该过程从从数字视频源接收(在1705)视频片段开始。可由计算机的用户通过选择用户接口中的导入选项或将视频片段图标从照相机文件夹拖动到计算机文件夹启动视频片段的接收。例如,当在照相机上在随机存取存储装置(例如,硬盘、闪存等) 中存储视频时,用户可为视频照相机打开计算机上的文件夹并且观看照相机上的视频文件中的每一个的图标。为了启动传送,用户可使用光标控制器以将希望的视频片段的图标拖动到计算机上的文件夹。也可通过将照相机附接于计算机的输入端口等上而自动启动视频片段的接收。过程然后识别(在1710)视频片段的视频格式。如上所述,在一些实施例中,视频照相机以多种不同格式编码和存储视频片段。例如,视频照相机可通过仅执行空间压缩编码视频片段,或者通过执行空间和时间压缩编码视频片段。在一些实施例中,该过程基于存储于照相机上并与视频片段一起被传送的指示视频格式的元数据识别视频格式。其它的实施例通过检查视频图片数据识别编码的类型。过程1700然后确定(在1715)视频是否被时间压缩。这基于视频格式的识别。当视频不被时间压缩时,过程以其原本格式存储(在1720)视频片段。即,当视频不被时间压缩时,不需要代码转换,并且,可以在没有任何处理的情况下即时地存储视频片段。当视频被时间压缩时,过程代码转换(在1725)视频以去除时间压缩。如上所述, 一些实施例的代码转换过程将视频解码并然后仅通过使用空间压缩将视频重新编码。该代码转换操作是计算密集和时间密集的。该过程然后存储(在1730)代码转换的视频。在存储视频(以原本格式或代码转换后的格式)之后,然后过程1700结束。III.计算机系统上述的特征和应用中的许多被实现为软件过程,该软件过程被规定为在计算机可读存储介质(也称为计算机可读介质)上的一组指令。当这些指令由一个或多个计算元件 (诸如处理器或象ASIC和FPGA那样的其它计算元件)执行时,它们导致计算元件(一个或多个)执行在指令中指示的动作。计算机是广义的,并且可包括具有处理器的任何电子器件。计算机可读介质的例子包括但不限于CD-ROM、闪存驱动器、RAM芯片、硬驱动、EPROM 等。计算机可读介质不包括以无线的方式或者在有线连接上通过的载波和电子信号。在本说明书中,术语“软件”意味着包括驻留于只读存储器中的固件或存储于磁存
21储装置中的可被读入存储器中以供处理器处理的应用。并且,在一些实施例中,多个软件发明可在保持为明显不同的软件发明的同时被实现为较大程序的子部分。在一些实施例中, 多个软件发明也可实现为单独的程序。最后,一起实现这里描述的软件发明的各单独程序的任意组合在本发明的范围内。在一些实施例中,软件程序在被安装以在一个或多个计算机系统上操作时限定运行和执行软件程序的操作的一个或多个特定机器实现。图18示出实现本发明的一些实施例的计算机系统。这种计算机系统包括各种类型的计算机可读介质和用于各种其它类型的计算机可读介质的接口。本领域技术人员还应注意,一些实施例的数字视频照相机还包括各种类型的计算机可读介质。计算机系统1800 包括总线1805、处理器1810、图形处理单元(GPU) 1820、系统存储器1825、只读存储器1830、 永久存储设备1835、输入设备1840和输出设备1845。总线1805统一代表与计算机系统1800的多个内部器件通信连接的所有系统、夕卜设和芯片集总线。例如,总线1805通信连接处理器1810与只读存储器1830、GPU 1820、系统存储器1825和永久存储设备1835。为了执行本发明的过程,处理器1810从这些各种存储器单元检索要执行的指令和要处理的数据。在一些实施例中,处理器包括现场可编程门阵列(FPGA)、ASIC或用于执行指令的各种其它电子部件。一些指令被转送到GPU 1820并由它执行。GPU 1820可卸载各种计算或者补充由处理器1810提供的图像处理。在一些实施例中,可通过使用Corelmage 的内核遮蔽语言提供这种功能。只读存储器(ROM) 1830存储处理器1810和计算机系统的其它模块所需要的静止数据和指令。另一方面,永久存储设备1835是读写存储装置。该装置是即使当计算机计算 1800为关时也存储指令和数据的非易失性存储单元。本发明的一些实施例使用大规模存储设备(诸如磁盘或光盘及其对应的盘驱动)作为永久存储设备1835。其它的实施例使用可去除存储装置(诸如软盘、闪存驱动器或ZIP 盘及其对应的盘驱动)作为永久存储装置。与永久存储设备1835类似,系统存储器1825是读写存储设备。但是,与存储设备1835不同,系统存储器是诸如随机存取存储器的易失性读写存储器。系统存储器存储处理器在运行时需要的指令和数据中的一些。在一些实施例中,本发明的过程被存储于系统存储器1825、永久存储设备1835和/或只读存储器1830中。例如, 根据一些实施例,各种存储器单元包括用于处理多媒体项目的指令。从这些各种存储器单元,为了执行一些实施例的过程,处理器1810检索要执行的指令和要处理的数据。总线1805还连接输入和输出设备1840和1845。输入设备使得用户能够传送信息并选择对于计算机系统的命令。输入设备1840包括数字字母键盘和指示装置(也称为“光标控制设备”)。输出设备1845显示由计算机系统产生的图像。输出设备包括打印机和显示设备,诸如阴极射线管(CRT)或液晶显示器(LCD)。最终,如图18所示,总线1805还通过网络适配器(未示出)耦合计算机1800与网络1865。以这种方式,计算机可以是计算机的网络(诸如局域网络(“LAN”)、广域网络 (“WAN”)或内联网或诸如因特网的网络的网络)的一部分。可与本发明结合使用计算机系统1800的任一个或所有部件。一些实施例包括诸如微处理器的电子部件、在机器可读或计算机可读介质(也称为计算机可读存储介质、机器可读介质或机器可读存储介质)中存储计算机程序指令的存储装置和存储器。这种计算机可读介质的一些例子包括RAM、R0M、只读紧致光盘(CD-ROM)、 可记录紧致盘(⑶-R)、可写入紧致盘(⑶-RW)、只读数字万用盘(例如,DVD-ROM、双层 DVD-ROM)、各种可读 / 可写 DVD (例如,DVD-RAM、DVD-RW、DVD+RW 等)、闪存(例如,SD 卡、 mini-SD卡、micro-SD卡等)、磁和/或固态硬驱动、只读和可记录Blu- Ray 盘、超密度光盘、任何其它光或磁介质和软盘。计算机可读介质可存储可由至少一个处理器执行的计算机程序,并且包括用于执行各种操作的多组指令。被配置为存储并执行各组指令的硬件装置的例子包括但不限于专用集成电路(ASIC)、现场可编程门阵列(FPGA)、可编程逻辑器件(PLD)、ROM和RAM器件。计算机程序或计算机代码的例子包括诸如由编辑器产生的机器代码和包括通过使用解译器由计算机、电子部件或微处理器执行的更高级代码的文件。如在本说明书和本申请书的任何权利要求中使用的那样,术语“计算机”、“服务器”、“处理器”和“存储器”均指的是电子或其它技术器件。这些术语不包括人或人的组。 出于说明书的目的,术语显示器或显示装置意味着在电子装置上显示。如在本说明书和本申请书的任何权利要求中使用的那样,术语“计算机可读介质”和“计算机可读介质”完全限于以计算机可读的形式存储信息的可触知的物理物体。这些术语不包括任何无线信号、 有线下载信号和任何其它瞬息信号。虽然参照大量的特定的细节描述了本发明,但是,本领域技术人员可以理解,在不背离本发明的精神的情况下,可以以其它特定的形式体现本发明。另外,大量的图(包括图8和图11)概念性地示出过程。可以不以示出和描述的确切次序执行这些过程的特定操作。可以不以操作的一个连续系列执行特定操作,并且,可以在不同的实施例中执行不同的特定操作。并且,可通过使用数个子过程或者作为更大的宏过程的一部分实现该过程。
权利要求
1.一种用于在计算机上编辑视频的视频编辑应用,所述应用包括第一模块,用于识别存储于视频照相机上并且根据多种不同的编码格式被编码的不同视频片段;第二模块,用于(i)接收存储于所述视频照相机上的视频片段并且(ii)在所述计算机的存储装置中存储第一组视频片段,所述第一组视频片段在所述视频照相机上仅被帧内编码;第三模块,用于(i)代码转换在所述视频照相机上至少部分地以帧间格式被编码的第二组视频片段并且(ii)在所述存储装置中存储代码转换后的第二组视频片段。
2.如权利要求1所述的应用,其中,所述第一模块以相同的仅帧内格式在所述计算机的存储装置中存储帧内编码的视频片段。
3.如权利要求2所述的应用,其中,所述仅帧内格式是所述视频照相机初始编码所述视频片段中的序列的原本格式。
4.如权利要求2所述的应用,其中,所述仅帧内格式是所述视频编辑应用允许用户在不执行任何解码的情况下编辑所述视频片段的格式。
5.如权利要求1所述的应用,其中,帧内编码格式是由规定960X540和1280X720中的至少一个的分辨率设置和规定最大24Mbps的位率设置限定的。
6.如权利要求1所述的应用,还包括导入模块,用于(i)检测所述视频照相机与所述计算机耦合并且(ii)导入存储于所述视频照相机中的视频片段。
7.如权利要求6所述的应用,其中,当用户指示所述视频编辑应用导入特定的视频片段时,所述第一模块自动识别所述特定的视频片段作为帧内编码视频片段或帧间编码视频片段。
8.一种存储有指令的计算机可读介质,所述指令用于将视频片段导入到包括所述计算机可读介质的设备中,并且所述指令包括执行以下动作的多组指令检测视频照相机与所述设备的连接;识别存储于所述视频照相机中的至少部分地被帧间编码的第一视频片段;在将所述视频片段传送到所述设备中的同时将所述第一视频片段从第一格式代码转换成第二格式;识别存储于所述视频照相机中并且仅被帧内编码的第二视频片段;在不修改所述第二视频片段的编码的情况下将所述第二视频片段传送到所述设备中。
9.如权利要求8所述的计算机可读介质,其中,所述第一格式是初始编码所述视频片段中的图像序列的原本格式,并且,所述第二格式是与所述第一格式不同的非原本格式。
10.如权利要求8所述的计算机可读介质,其中,所述用于代码转换的一组指令包括用于将所述第一视频片段从时间压缩格式转换成非时间压缩格式的一组指令。
11.如权利要求8所述的计算机可读介质,其中,所述用于代码转换的一组指令包括用于解码帧间编码的视频片段的一组指令;和用于仅使用帧内编码将解码后的视频片段编码的一组指令。
12.如权利要求8所述的计算机可读介质,其中,至少部分地被帧内编码的所述第一视频片段包括通过参照不同的视频图片而被编码的至少一个视频图片,并且,仅被帧内编码的所述第二视频片段仅包括在不参照其它视频图片的情况下被编码的视频图片。
13.如权利要求8所述的计算机可读介质,其中,传送所述第二视频片段的时间仅与所述第二视频片段的尺寸和所述视频照相机和所述设备之间的连接速度有关。
14.如权利要求8所述的计算机可读介质,其中,传送所述第二视频片段的时间与所述第二视频片段的尺寸和所述视频照相机和所述设备之间的连接速度有关,并且与所述设备的代码转换速度和所述视频片段的回放速度无关。
15.一种视频照相机,包括图像感测电路,用于捕获视频图片序列;用户接口,用于允许用户从包括时间压缩编码格式和非时间压缩编码格式的多个视频编码格式中选择视频编码格式;和编码电路,用于根据所述用户通过所述用户接口选择的格式将所述视频图片编码。
16.如权利要求15所述的视频照相机,其中,所述非时间压缩编码格式是在不参照所述视频片段的任何其它帧的情况下将所述视频片段的每一帧编码的编码方案,并且所述时间压缩编码格式是参照所述视频片段的至少一个其它帧将所述视频片段的至少一个帧编码的编码方案。
17.如权利要求15所述的视频照相机,其中,所述用户接口包括照相机上的用于从所述多个视频编码格式中选择特定的视频编码格式的一个或多个用户可选择控件。
18.如权利要求15所述的视频照相机,其中,所述用户接口包括图形用户接口,所述图形用户接口包括显示供用户选择的多个视频编码格式的菜单。
19.如权利要求18所述的视频照相机,其中,所述图形用户接口包括用于显示所述菜单的基于文本的用户接口。
20.如权利要求15所述的视频照相机,其中,所述用户接口包括用于从所述多个视频编码格式中选择特定的视频编码格式的触摸屏菜单。
21.如权利要求15所述的视频照相机,其中,所述编码电路包括ASIC。
22.如权利要求15所述的视频照相机,其中,所述编码电路包括FPGA。
23.如权利要求15所述的视频照相机,其中,所述编码电路包括微处理器和软件。
24.—种视频照相机,包括用户接口,用于接收从包括至少一个仅内部编码方案和至少一个非仅内部编码方案的多个不同编码方案对编码方案的用户选择,所述用户接口包括 用于显示所述不同编码方案的列表的显示器;用于接收用户交互以便选择所述不同编码方案中的一个的用户输入控件; 至少一个存储装置,用于存储所述多个不同编码方案并存储通过所述不同编码方案中的一个编码的捕获视频;视频编码器,用于根据所选编码方案编码视频,所述视频编码器包括 用于根据所述所选编码方案对图像数据块执行DCT运算的离散余弦变换(DCT)单元; 用于根据所述所选编码方案对DCT系数执行量化动作的量化器单元,所述DCT系数是所述DCT单元的输出;和用于根据所述所选编码方案将输入数据编码成位流的熵编码器;和视频压缩控制器,用于识别所述所选编码方案,根据所述所选编码方案检索用于编码的一组设置,并向用于执行DCT、量化和熵编码操作的视频编码器发送所检索的一组设置。
25.如权利要求24所述的视频照相机,其中,所述视频编码器还包括预测单元,用于(i)对所述图像数据块执行空间压缩和(ii)当所述所选编码方案是非仅内部编码方案时,对所述图像数据块执行时间压缩。
26.如权利要求24所述的视频照相机,其中,所述存储装置包括硬盘。
27.如权利要求24所述的视频照相机,其中,所述存储装置包括闪存。
28.如权利要求24所述的视频照相机,还包括 用于将所捕获的视频片段传送到外部设备的输出端口。
29.如权利要求28所述的视频照相机,其中,所述外部设备是包括媒体编辑应用的计算机。
30.一种为视频记录设备限定多个视频格式的方法,所述方法包括为至少部分地以帧间格式编码视频片段的第一视频格式规定多个参数; 为以仅帧内格式编码视频片段的第二视频格式规定多个参数;和规定使用所述第二视频格式编码的多个视频图像中的每一个视频图像被编码为多个片段,特定视频图像的多个片段要由视频解码设备的多个处理单元进行解码。
31.如权利要求30所述的方法,还包括限定所述视频记录设备的图形用户接口,所述图形用户接口用于使得用户能够在所述第一视频格式和所述第二视频格式之间进行选择。
32.如权利要求30所述的方法,其中,使用所述第二视频格式编码的视频图像中的每一个被编码为多个片段。
33.如权利要求30所述的方法,其中,所述第二视频格式具有1280X720的分辨率。
34.一种视频记录设备的计算机可读介质,所述计算机可读介质存储计算机程序,所述计算机程序在被所述视频记录设备的至少一个处理器执行时捕获视频片段,所述计算机程序包括用于执行以下动作的多组指令接收从用于编码所述视频片段的多个不同编码方案中对于非时间压缩编码方案的选择,所述不同编码方案包括至少一个时间压缩编码方案,并且至少包括所选择的非时间压缩编码方案;捕获所述视频片段作为多个帧;将帧中的每一个非时间编码为多个片段,特定帧的多个片段要由视频解码设备的多个处理单元进行解码;和在所述视频记录设备的存储装置中存储所述视频片段。
35.如权利要求34所述的计算机可读介质,其中,所述时间压缩编码方案是参照所捕获的视频片段的至少一个其它帧将所述所捕获的视频片段的至少一个帧编码的编码方案, 并且所述非时间压缩编码格式是在不参照所捕获的视频片段的任何其它帧的情况下将所述所捕获的视频片段的每一帧编码的编码方案。
36.如权利要求34所述的计算机可读介质,还包括对于所述视频片段附加指示捕获所述视频片段的位置的地理定位元数据。
37.一种视频解码设备的计算机可读介质,所述视频解码设备具有多个处理单元,所述计算机可读介质存储计算机程序,所述计算机程序在被所述视频解码设备的至少一个处理单元执行时将视频片段解码,所述计算机程序包括用于执行以下动作的多组指令 接收包括多个视频图像的非时间编码视频片段;确定所述视频片段被非时间编码,并且所述多个视频图像被编码为多个片段; 对于特定视频图像的每个片段,向所述视频解码设备的特定处理单元分配所述片段以供解码。
38.如权利要求37所述的计算机可读介质,还包括通过使用视频回放设备的两个不同的处理单元同时解码所述片段中的至少两个片段。
39.如权利要求37所述的计算机可读介质,其中,特定视频图像被编码为四个片段,并且,所述视频解码设备具有四个处理单元,所述四个片段中的每一个被分配给不同的处理单元以供同时解码。
40.如权利要求37所述的计算机可读介质,其中,所述计算机程序还包括用于在解码所述特定视频图像之后增加所述特定视频图像的宽度的一组指令。
41.如权利要求40所述的计算机可读介质,其中,所述计算机程序还包括用于识别以其捕获所述视频图像的特定宽度的一组指令,其中,所述宽度被增加到所述特定宽度。
42.如权利要求37所述的计算机可读介质,其中,所述视频解码设备是视频回放设备。
43.如权利要求37所述的计算机可读介质,其中,所述处理单元是单一处理器的内核。
44.如权利要求37所述的计算机可读介质,其中,所述处理单元是单一封装中的芯片。
45.一种视频记录设备的计算机可读介质,所述计算机可读介质存储计算机程序,所述计算机程序在被所述视频记录设备的至少一个处理器执行时捕获视频片段,所述计算机程序包括用于执行以下动作的多组指令接收由所述视频记录设备捕获的视频片段作为一组视频图像,每个视频图像具有特定的宽度;减小所述视频图像的宽度;在不参照任何其它视频图像的情况下编码宽度减小的视频图像中的每一个;和在所述视频记录设备的存储装置中存储所述视频图像。
46.如权利要求45所述的计算机可读介质,其中,用于编码宽度减小的视频图像中的每一个的一组指令包括用于对于所述视频图像的每个4X4阵列执行所有内部预测模式的一组指令。
47.如权利要求46所述的计算机可读介质,其中,用于对于特定4X4阵列执行内部预测模式的一组指令包括用于将所述特定4X4阵列与先前编码的4X4阵列比较的一组指令。
48.如权利要求45所述的计算机可读介质,其中,用于编码宽度减小的视频图像的一组指令包括用于执行以下动作的多组指令将每个视频图像分成多个8X8宏块;和对于8X8宏块中的每一个执行离散余弦变换。
49.如权利要求45所述的计算机可读介质,其中,所述存储装置包括闪存。
50.如权利要求45所述的计算机可读介质,其中,所述存储装置包括硬盘。
全文摘要
一些实施例提供用于捕获视频片段的视频记录设备。视频记录设备接收从用于编码视频片段的数个不同的编码方案中对于非时间压缩编码方案的选择。不同的编码方案包括至少一个时间压缩编码方案,并至少包括所选择的非时间压缩编码方案。视频记录设备捕获视频片段作为数个帧。视频记录设备将帧中的每一个帧非时间编码为数个片段。特定帧的片段要由视频解码设备的数个处理单元进行解码。视频记录设备在存储装置中存储视频片段。
文档编号G11B27/00GK102484712SQ201080040065
公开日2012年5月30日 申请日期2010年9月9日 优先权日2009年9月10日
发明者C·科尼迪, G·姆林斯, G·瓦拉侧, P·乔, P·汤纳, R·乌比洛斯, 童歆 申请人:苹果公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1