CN102572432B - 用于视频帧旋转的方法和装置 - Google Patents

用于视频帧旋转的方法和装置 Download PDF

Info

Publication number
CN102572432B
CN102572432B CN201110459156.2A CN201110459156A CN102572432B CN 102572432 B CN102572432 B CN 102572432B CN 201110459156 A CN201110459156 A CN 201110459156A CN 102572432 B CN102572432 B CN 102572432B
Authority
CN
China
Prior art keywords
pixel
rotated
tile
video
frame
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201110459156.2A
Other languages
English (en)
Other versions
CN102572432A (zh
Inventor
O·巴-沙洛姆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mawier International Trade Co Ltd
Original Assignee
Mawier International Trade Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mawier International Trade Co Ltd filed Critical Mawier International Trade Co Ltd
Publication of CN102572432A publication Critical patent/CN102572432A/zh
Application granted granted Critical
Publication of CN102572432B publication Critical patent/CN102572432B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformation in the plane of the image
    • G06T3/60Rotation of a whole image or part thereof

Abstract

本公开的各个方面提供了一种用于视频帧旋转的方法。该方法包括接收形成视频帧的多个瓦片中的第一瓦片。第一瓦片包括第一多个宏像素,其中每个宏像素交织在第一方向的至少一对相邻像素。此外,该方法包括将第一多个宏像素解交织成第一像素,将第一像素映射成在第二方向的第一经旋转的相邻像素;以及将第一经旋转的相邻像素交织成形成第一经旋转的瓦片的第一经旋转的宏像素。

Description

用于视频帧旋转的方法和装置
相关申请的交叉引用
本申请要求2010年12月23日提交的第61/427,028号美国临时申请“Method and Apparatus for Video Frame Rotation”的权益,其整体通过引用并入于此。
背景技术
在此提供的背景技术描述出于一般性地呈现本公开的上下文的目的。当前指定的发明人的工作,就在本背景技术部分中描述的工作的范围而言,以及在提交时可能不符合现有技术的描述的方面,既不明示也不暗示地被承认为其本公开的现有技术。
一般而言,视频捕获装置根据自然成像方向(native imagingoriention)来捕获并处理视频帧。当视频捕获装置位于不同于自然成像方向的方向时,所捕获的视频帧需要在显示之前被旋转,以避免旋转显示屏幕或者避免要求查看者倾斜他或她的头部。
发明内容
本公开的各个方面提供了一种用于视频帧旋转的方法。该方法包括接收形成视频帧的多个瓦片中的第一瓦片。第一瓦片包括第一多个宏像素,其中每个宏像素交织在第一方向的至少一对相邻像素。此外,该方法包括将第一多个宏像素解交织成第一像素,将第一像素映射成在第二方向的第一经旋转的相邻像素;以及将第一经旋转的相邻像素交织成形成第一经旋转的瓦片的第一经旋转的宏像素。
在一种实施方式中,该方法包括接收形成视频帧的多个瓦片中的第二瓦片。第二瓦片包括第二多个宏像素,其中每个宏像素交织在第一方向的至少一对相邻像素。继而,该方法包括将第二多个宏像素解交织成第二像素,将第二像素映射成在第二方向的第二经旋转的相邻像素,以及将第二经旋转的相邻像素交织成形成第二经旋转的瓦片的第二经旋转的宏像素。注意到,可以串行或者并行地处理第一瓦片和第二瓦片。
在一种实施方式中,该方法包括从按照根据将视频帧从第一方向旋转到第二方向的旋转角度的序列存储视频帧的存储装置中获取多个瓦片。在另一实施方式中,该方法包括将第一经旋转的瓦片写入存储装置中,以将经旋转的视频帧存储在根据将视频帧从第一方向旋转到第二方向的旋转角度的地址处。
根据本公开的一个方面,该方法包括检测被配置为根据第一方向生成视频帧的视频捕获装置位于第二方向。此外,在一个示例中,该方法包括在视频编码之前预览经旋转的视频帧。在另一示例中,该方法包括在视频帧旋转之后对经旋转的视频帧进行视频编码。在另一示例中,该方法包括在视频帧旋转之前对经编码的视频帧进行解码。在另一示例中,该方法包括在对经解码的视频帧进行视频帧旋转之后进行显示。
在一种实施方式中,为了将第一像素映射成在第二方向的第一经旋转的相邻像素,该方法包括将第一像素映射成在相对于第一方向旋转了90度、180度和270度之一的第二方向的、所述第一经旋转的相邻像素。
本公开的各个方面提供了一种电路。该电路包括输入缓冲器、第一瓦片旋转器和输出缓冲器。输入缓冲器被配置为缓冲来自形成视频帧的多个瓦片中的第一瓦片。第一瓦片包括第一多个宏像素,第一多个宏像素中的每个宏像素交织在第一方向的至少一对相邻像素。第一瓦片旋转器被配置为将第一多个宏像素解交织成第一像素,将第一像素映射成在第二方向的第一经旋转的相邻像素,并且将第一经旋转的相邻像素交织成第一经旋转的宏像素。输出缓冲器被配置为缓冲第一经旋转的宏像素以形成第一经旋转的瓦片。
本公开的各个方面提供了一种电子系统。该电子系统包括片上系统(SOC),该片上系统具有在该SOC上实现的所述电路。
附图说明
将参考以下附图详细描述作为示例提出的本公开的各个实施方式,其中相似的数字指代相似的元件,并且其中:
图1示出了根据本公开实施方式的系统示例100的框图;
图2A示出了根据本公开实施方式的视频帧旋转器示例220A的框图;
图2B示出了根据本公开实施方式的另一视频帧旋转器示例220B的框图;
图3示出了根据本公开实施方式的旋转流水线示例330的框图;
图4A-图4D示出了根据本公开实施方式的基于瓦片(tile)的视频帧旋转示例的绘图;
图5A-图5F示出了根据本公开实施方式的瓦片旋转示例;以及
图6示出了根据本公开实施方式的、列出视频帧旋转的处理示例的流程图。
具体实施方式
图1示出了根据本公开实施方式的系统示例100的框图。系统100包括实现为专用于视频帧旋转的集成电路模块的旋转模块120。根据本公开的实施方式,旋转模块120被配置为如下专用硬件模块,该专用硬件模块与针对更一般用途的处理单元(诸如中央处理单元(CPU)、图形处理单元(GPU)等)相比具有数量上小得多的晶体管。因而,使用旋转模块120用于视频帧旋转比使用CPU或GPU用于视频帧旋转消耗小得多的功率。此外,CPU或GPU例如在旋转模块120执行视频帧旋转时免于进行视频帧旋转,并且可以同时执行其他的功能。
根据本公开的实施方式,旋转模块120与其他适当电路一起集成在集成电路芯片上(诸如片上系统(SOC))。在图1的示例中,系统100包括具有旋转模块120的SOC 110。此外,在图1的示例中,SOC 110包括存储器控制器111、静态随机访问存储器(SRAM)112、CPU 113、显示控制器114、视频编码器/解码器115、相机控制器116以及系统总线118。在图1所见的实施方式中,旋转模块120被配置为与CPU 113和GPU 117分离的模块。如图1所示,在一种实施方式中,这些部件耦合在一起。
存储器控制器111控制对片上存储器和片外存储器(诸如SOC110上的SRAM 112、SOC 110外的同步动态随机访问存储器(SDRAM)102以及其他适当的存储器设备)的读访问和写访问。
在一种实施方式中,CPU 113被配置用于一般用途,并且能够执行适当的指令代码,以执行期望的功能,诸如系统100的系统控制、视频编辑等。在一种实施方式中,SOC 110包括被配置用于一般图形处理(诸如视频编辑等)的GPU 117等。
相机控制器116使得SOC 110能够与相机传感器101进行通信。在一种实施方式中,相机控制器116接收与相机传感器101所捕获的视频帧对应的数据流,并经由系统总线118向SOC 110的其他部分提供该数据流。在示例中,相机传感器101被配置为具有称之为自然成像方向的特定方向。在一种实施方式中,相机传感器101被配置为捕获视频帧,并在自然成像方向逐行地发送视频帧的像素数据。
在示例中,注意到,像素数据是处于压缩格式(诸如YUV(YCbCr)格式)等。在示例中,两个像素A和B是相邻(邻近)像素。像素A具有分量YAUAVA,并且像素B具有分量YBUBVB。像素A和像素B的分量交织以形成具有分量UABYAVABYB的宏像素AB。UAB是UA和UB的均值,并且VAB是VA和VB的均值。
显示控制器114使得SOC 110能够与显示装置(未示出)进行通信,以显示视频帧。在一种实施方式中,显示控制器114经由系统总线118,从SOC 110的其他部分接收与用于显示的视频帧对应的数据流。在示例中,显示装置被配置为具有被称为用于显示的显示方向的特定方向,并且在显示方向按照逐行的形式显示视频帧的数据流。
注意到,显示控制器114可以包括与显示装置兼容的任何适合的接口。在示例中,显示控制器114包括与高清显示装置兼容的高清多媒体接口(HDMI)。在另一示例中,当显示装置使用RGB格式时,显示控制器114包括将YUV格式的数据流转换成RGB格式的数据流的转换模块。
视频编码器/解码器115实施各种视频编码标准,并执行视频编码或解码操作。
根据本公开的一种实施方式,旋转模块120被配置为将视频帧旋转固定角度(诸如90度、180度和270度)。
此外,根据本公开的一个方面,旋转模块120被配置成基于瓦片的旋转模块,该旋转模块以瓦片为单元旋转视频帧。在示例中,视频帧被划分为多个瓦片。每个瓦片包括像素矩阵。根据本公开的一个方面,针对瓦片中的每个像素,瓦片还可以包括其在第一方向上的相邻像素,以及在相对于第一方向旋转诸如90度、180度和270度的角度的第二方向上的相邻像素。在示例中,每个瓦片包括用来旋转该瓦片的全部像素信息。因而,在示例中,视频帧的多个瓦片可以被独立地旋转。继而,适当地布置经旋转的瓦片以形成经旋转的视频帧。基于瓦片的旋转允许简单的硬件实施,并且使得能够并行地旋转多个瓦片,这显著地加快了视频帧的旋转。
在视频捕获期间,相机传感器101能够被放置在不同于自然成像方向的方向。在示例中,相机传感器101具有矩形形状,并且自然成像方向是横向方向。当相机传感器101位于横向方向时,按照在横向方向逐行的像素数据的数据流形式向SOC 110发送相机传感器101所捕获的视频帧。注意到,在示例中,可以按照交织了视频帧的相邻像素的宏像素的形式发送像素数据。在一种实施方式中,对与视频帧对应的数据流进行适当地编码并将其存储。此外,对与视频帧对应的、所存储的经编码的数据流进行解码,并将其发送到例如位于横向方向的矩形形状的显示装置。继而在横向方向显示横向方向的所捕获的视频帧。
当相机传感器101位于纵向方向时,尽管是在纵向方向捕获的图像,也按照在横向方向逐行的像素数据的数据流形式向SOC 110发送相机传感器101所捕获的视频帧。注意到,在示例中,可以按照交织了视频帧在横向方向的相邻像素的宏像素的形式发送像素数据。旋转模块120处理数据流,以将视频帧从横向方向旋转到纵向方向,从而经旋转的视频帧能够以纵向方向显示。
注意到,可以在不同的图像处理流水线中使用旋转模块120以旋转视频帧。在示例中,在捕获流水线中使用旋转模块120。在捕获流水线中,在捕获到视频帧并将其发送到SOC 110之后,旋转模块120在使用视频编码器/解码器115对视频帧进行之前旋转视频帧。在另一示例中,在回放流水线中使用旋转模块120。在回放流水线中,在视频编码器/解码器116对视频帧进行解码之后,旋转模块120旋转视频帧。将经旋转的视频帧发送到显示控制器114以用于显示。
在一种实施方式中,当SOC 110接收视频帧的在横向方向逐行的像素数据的数据流时,视频帧被存储在片上存储器中或适当的片外存储器中。当在纵向方向捕获视频帧时,SOC 110在捕获流水线中或在回放流水线中旋转视频帧。
在示例中,当在纵向方向捕获视频帧时,旋转模块120将视频帧旋转例如90度成纵向方向。对经旋转的视频帧进行适当地编码并将其存储。此外,经旋转的视频帧可以适当地被解码,并例如被发送到在横向方向放置的矩形形状的显示装置以显示纵向方向中的视频帧。注意到,在示例中,不经旋转,纵向方向的所捕获的视频帧将以横向方向显示,并且查看者可能需要倾斜他或她的头部来查看视频帧。
在另一示例中,当在纵向方向捕获视频帧时,对视频帧进行编码并将其存储到片上存储器或适当的片外存储器中。为了显示视频帧,对经编码的视频帧进行适当地解码。继而,旋转模块120将经解码的视频帧旋转例如90度成纵向方向。继而,将经旋转的视频帧例如发送到在横向方向放置的矩形形状的显示装置。继而,在显示装置处以纵向方向显示在纵向方向捕获的视频帧。注意到,在示例中,不经旋转,纵向方向的所捕获的视频帧将以横向方向显示,并且查看者可能需要倾斜他或她的头部来查看视频帧。
根据本公开的一种实施方式,旋转模块120使用基于瓦片的旋转技术来旋转视频帧。在示例中,每个视频帧被划分成多个瓦片,每个瓦片是N×M像素的矩阵(N和M是正偶数)。旋转模块120包括根据旋转角度分别旋转多个瓦片的瓦片旋转器。此外,旋转模块120根据旋转角度将经旋转的瓦片布置在一起以形成经旋转的视频帧。在示例中,旋转模块120将经旋转的瓦片存储在基于旋转角度而确定的存储器地址处以形成经旋转的视频帧。
注意到,在一种实施方式中,系统100包括方向传感器(未示出),该方向传感器被配置为检测在捕获视频帧时相机传感器101的方向。基于所检测的方向,旋转模块120适当地旋转视频帧或抑制旋转视频帧,以与查看设备的方向一致。
在图1的示例中,系统总线118将SOC 110中的各种部件耦合到一起,以允许在各种部件之间的数据传输。注意到,SOC 110可以使用其他适当架构来将各种部件耦合到一起。
图2A示出了根据本公开实施方式的旋转模块示例220A的框图。旋转模块220A包括存储器接口240、第一存储器221、第二存储器222和瓦片旋转器230。如图2A所示,在一种实施方式中,这些部件耦合到一起。
存储器接口240被配置为访问存储器(诸如SDRAM 102),以获取在视频帧内用于旋转的瓦片,并且被配置为访问存储器以存储经旋转的瓦片。在一种实施方式中,存储器接口240包括总线接口(未示出),该总线接口被配置为与系统总线(诸如系统总线118)进行通信。此外,在示例中,存储器接口240包括直接存储器访问(DMA)245以确定用于访问的存储器地址。
根据本公开的一个方面,存储器接口240被配置为访问存储器,以获取待根据基于旋转角度的序列进行旋转的瓦片。根据本公开的另一方面,存储器接口240被配置为访问存储器,以将已经被旋转的瓦片写入到基于旋转角度的合适地址。
根据本公开的另一方面,存储器接口240被配置为按照优化存储器访问速度的次序访问存储器。根据本公开的实施方式,SDRAM吞吐量和系统存储器访问延时取决于存储器事务的随机性。存储器接口240被配置为实施获取/写回策略,以按照优化存储器事务性能的次序访问存储器。
第一存储器221和第二存储器222被配置为缓冲瓦片的像素数据,并且减轻由于系统总线或存储器的延时、和与瓦片旋转器230一道竞争访问共享系统资源(诸如系统总线和存储器)的其他部件施加在瓦片旋转器230上的实时限制。在一种实施方式中,第一存储器221和第二存储器222是先进先出缓冲器。在示例中,第一存储器221和第二存储器222是在旋转模块220A内的本地存储器。第一存储器221被配置为缓冲待被旋转的多个瓦片的像素数据。第二存储器222被配置为缓冲已经被旋转的多个瓦片的像素数据。
根据本公开的一个方面,瓦片旋转器230被配置为旋转瓦片中的像素。在一种实施方式中,瓦片旋转器230所接收到的视频帧的像素数据处于压缩(交织)格式。在示例中,相机传感器101以YUV(YCbCr)格式发送像素数据。
在示例中,瓦片旋转器230接收到的瓦片包括交织了第一方向的相邻像素的宏像素。为将处于压缩格式的像素的瓦片旋转一旋转角度到第二方向,瓦片旋转器230首先将宏像素解交织成分离的像素或者像素分量。继而,瓦片旋转器230根据旋转角度来映射分离的像素,以形成在第二方向的相邻像素。继而,瓦片旋转器230将新形成的相邻像素交织,以生成第二方向的新的宏像素。
图2B示出了根据本公开实施方式的另一旋转模块示例220B的框图。旋转模块220B利用与在旋转模块220A中使用的某些部件相同或等同的特定部件;上文已经提供了对这些部件的描述,并且在此出于清楚的目的对其省略。然而,在该实施方式中,旋转模块220B包括多个瓦片旋转器231-234。在一种实施方式中,多个瓦片旋转器231-234中的每一个与瓦片旋转器230相似地进行配置,并且多个瓦片旋转器231-234被配置为以同步方式或以异步方式操作,以分别地旋转形成图像帧的多个瓦片。因而,旋转模块220B比旋转模块220A具有更高的吞吐量。
图3示出了根据本公开实施方式的旋转流水线示例330的框图。旋转流水线330包括五个阶段:瓦片获取阶段331、瓦片解交织阶段333、像素映射阶段335、瓦片抽取器/旋转器阶段337以及瓦片写回阶段339。这些阶段中的每一个可以由旋转模块220A和旋转模块220B中的适当组件执行。在一种实施方式中,组件被配置为使得五个流水线阶段能够同时对不同瓦片进行操作,并且由此提高旋转模块220A和旋转模块220B的吞吐量。
瓦片获取阶段331被配置为从视频帧源(诸如片上存储器、片外存储器等)中获取瓦片,并且将所获取的瓦片存储在适当的存储器(诸如本地存储器、缓冲器等)中。在一种实施方式中,按照根据将瓦片从第一方向旋转到第二方向的旋转角度的次序来获取瓦片。
瓦片处于压缩格式。在示例中,瓦片包括交织了在第一方向的相邻像素的宏像素。瓦片解交织阶段333将每个宏像素解交织成分离的像素。像素映射阶段335根据旋转角度将像素映射成第二方向的相邻像素。在示例中,旋转角度是90度、180度和270度中的一个。
瓦片抽取器/旋转器337交织在第二方向的相邻像素,以生成针对经旋转的瓦片的新的宏像素(经交织的像素)。新的宏像素包括在与原始交织方向不同的方向上交织的像素。瓦片写回逻辑339基于旋转角度将经旋转的瓦片写回到视频帧目的地,诸如片上存储器、片外存储器等。
图4A-图4D示出了根据本公开实施方式的基于瓦片的视频帧旋转示例的绘图。图4A示出了根据本公开的实施方式的视频帧的绘图410A。视频帧处于横向方向,并被划分成瓦片420T1-T35的5×7矩阵。在示例中,每个瓦片包括N×M个瓦片(N和M是偶数),诸如2×2个瓦片、4×4个瓦片等。
图4B示出了具有用于在视频帧中获取瓦片T1-T35的获取序列430的绘图410B。在一种实施方式中,根据旋转角度确定获取序列430,以允许有效的存储器访问,从而减少系统存储器访问延时。
图4C示出了经旋转的视频帧的绘图410C。注意到,根据旋转角度(诸如顺时针90度)旋转T1-T35中的每个瓦片以生成T1’-T35’。还根据旋转角度(诸如顺时针90度)布置经旋转的瓦片T1’-T35’。
图4D示出了根据本公开实施方式的具有存储器访问序列440的绘图410D。在一种实施方式中,每个瓦片包括4×4像素。按照与横向方向逐行对应的线性次序在存储器中存储像素数据。存储器访问序列440改进了存储器访问次序。例如,存储器访问序列440使得存储器访问的相对大部分是顺序存储器访问,并且因而减少了存储器事务的随机性,并减少了存储器访问延时。
图5A-图5F示出了根据本公开实施方式的瓦片旋转示例。
图5A示出了视频帧示例510A。根据本公开的一种实施方式,视频帧510A具有为横向方向的自然成像方向。视频帧510A被划分成瓦片。每个瓦片包括2×2像素的矩阵。在图5A的示例中,瓦片520A位于视频帧510A的左上角。瓦片520A包括像素A-D。此外,在横向方向的相邻像素被交织成宏像素521A和522A。例如,像素A和像素B被交织以形成宏像素AB,并且像素C和像素D被交织以形成宏像素CD。
图5B示出了与视频帧510A对应的按照YUV格式的数据流510B。数据流510B包括与宏像素AB对应的部分521B以及与宏像素CD对应的部分522B。
图5C示出了根据本公开实施方式的解交织示例510C。在图5A和图5B中的宏像素AB和宏像素CD被解交织成分离的像素或者像素分量。例如,宏像素CD被解交织成像素C和像素D,并且宏像素AB被解交织成像素A和像素B。在示例中,可以将解交织实施为寄存器和连接寄存器的导线。例如,寄存器511被配置为存储宏像素CD,并且寄存器513被配置为存储宏像素AB,寄存器512被配置为存储从宏像素CD解交织出的两个像素C和D,并且寄存器514被配置为存储从宏像素AB解交织出的两个像素A和B。此外,在图5C中的每个箭头实施为从寄存器511和513的输出到寄存器512和514的输入的一组导线路径。在示例中,当YUV分量的每一个包括8个比特时,图5C中的每个箭头线代表八条导线路径。
图5D示出了根据本公开实施方式的用于在纵向方向交织瓦片的像素的示例电路510D。在纵向方向彼此邻近的像素C和像素A被交织以形成新的宏像素CA,并且在纵向方向彼此邻近的像素D和像素B被交织以形成新的宏像素DB。在图5D的示例中,使用开关和交织电路550来交织在纵向方向的像素。在示例中,开关和交织电路550包括开关盒(未示出),该开关盒被配置为根据旋转角度将相邻像素从横向方向映射到纵向方向。此外,开关和交织电路550包括加法器A1-A4和除数为2的除法器D1-D4以交织相邻像素,从而生成新的宏像素。在示例中,使用将二进制表示右移一位的移位器来实施除数为2的除法器D1-D4。
注意到,还在下面的公式中描述电路510D的操作:
MPCA·YC=PC·YC MP CA . U CA = P C . U C + P A . U A 2 ;
MPCA·YA=PA·YA MP CA . V CA = P C . V C + P A . V A 2 ;
MPDB·YD=PD·YD MP DB . U DB = P D . U D + P B . U B 2 ;
MPDB·YB=PB·YB MP DB . U DB = P D . U D + P B . U B 2 ;
其中MPCA·YC表示宏像素CA的第一Y部,MPCA·YA表示宏像素CA的第二Y部,MPCA·UCA表示宏像素CA的U部,MPCA·VCA表示宏像素CA的V部,MPDB·YD表示宏像素DB的第一Y部,MPDB·YB表示宏像素DB的第二Y部,MPDB·UDB表示宏像素DB的U部,MPDB·VDB表示宏像素DB的V部,PA·YA,PA·UA和PA·VA表示像素A的Y部、U部和V部,PB·YB,PB·UB和PB·VB表示像素B的Y部、U部和V部,PC·YC,PC·UC和PC·VC表示像素C的Y部、U部和V部,PD·YD,PD·UD和PD·VD表示像素D的Y部、U部和V部。
图5E示出了与经旋转的视频帧对应的按照YUV格式的数据流510E。数据流510E包括与宏像素CA对应的部分521E以及与宏像素DB对应的部分522E。
图5F示出了经旋转的视频帧示例510F。在图5F的示例中,瓦片520F旋转自图5A中的瓦片520A,并且现在位于经旋转的视频帧510F的右上角。在瓦片520F中,像素C和像素A被交织以形成宏像素CA,并且像素D和像素B被交织以形成宏像素DB。
注意到,在图5A-图5F中的示例是2×2的瓦片的90度顺时针旋转的情形。针对其他的旋转情形(诸如180度顺时针、270度顺时针、4×4的瓦片、2M×2N的瓦片(M和N是正整数)等)可以适当地调整附图、公式和描述。
图6示出了根据本公开实施方式的、列出旋转模块(诸如旋转模块120)旋转视频帧中的像素瓦片的处理示例600的流程图。该处理从S601开始并前进至S610。
在S610,旋转模块120从形成视频帧的多个瓦片中获取瓦片。在示例中,根据基于旋转角度的次序获取瓦片。根据本公开的一个方面,瓦片包括处于压缩格式(诸如YUV格式)的像素数据。例如,将两个相邻像素的YUV分量交织成宏像素的YUYV分量。
在S620,旋转模块120将宏像素解交织成分离的像素。
在S630,旋转模块120根据旋转角度映射相邻的像素。在示例中,旋转模块120包括开关盒,该开关盒被配置为根据旋转角度映射相邻的像素。
在S640,旋转模块120将新映射的相邻像素交织成新的宏像素,以形成在新的旋转后的方向的经旋转的瓦片。
在S650,旋转模块120将经旋转的瓦片写回存储器。在示例中,旋转模块120在基于旋转角度确定的地址处将经旋转的瓦片写回存储器。
注意到,可以按照流水线的方式(诸如使用图3中的旋转流水线330)执行图6中的步骤。
尽管已经结合作为示例提出的本公开的具体实施方式描述了本公开的主题,但显然诸多备选、修改和变化对本领域技术人员将变得明显。因此,在此陈述的本公开的实施方式旨在为示例性的,而非限制性的。存在不脱离本公开的范围而可以进行的改变。

Claims (20)

1.一种用于视频帧旋转的方法,包括:
接收形成视频帧的多个瓦片中的第一瓦片,所述第一瓦片包括第一多个宏像素,其中每个宏像素交织在第一方向的至少一对相邻像素、并且所述交织形成数量少于相邻像素的宏像素;
将所述第一多个宏像素解交织成第一像素;
将所述第一像素映射成在第二方向的第一经旋转的相邻像素;以及
将所述第一经旋转的相邻像素交织成形成第一经旋转的瓦片的第一经旋转的宏像素。
2.根据权利要求1所述的方法,进一步包括:
接收形成所述视频帧的所述多个瓦片中的第二瓦片,所述第二瓦片包括第二多个宏像素,其中每个宏像素交织在所述第一方向的至少一对相邻像素;
将所述第二多个宏像素解交织成第二像素;
将所述第二像素映射成在所述第二方向的第二经旋转的相邻像素;以及
将所述第二经旋转的相邻像素交织成形成所述第二经旋转的瓦片的第二经旋转的宏像素。
3.根据权利要求2所述的方法,其中串行或者并行地处理所述第一瓦片和所述第二瓦片。
4.根据权利要求1所述的方法,进一步包括:
从存储所述视频帧的存储装置中按照根据将所述视频帧从所述第一方向旋转到所述第二方向的旋转角度的序列获取所述多个瓦片。
5.根据权利要求1所述的方法,进一步包括:
将所述第一经旋转的瓦片写入存储装置,以将经旋转的视频帧存储在根据将所述视频帧从所述第一方向旋转到所述第二方向的旋转角度的地址处。
6.根据权利要求1所述的方法,进一步包括:
检测被配置为根据所述第一方向生成所述视频帧的视频捕获装置位于所述第二方向。
7.根据权利要求5所述的方法,进一步包括以下中的至少一个:
在视频编码之前预览所述经旋转的视频帧;
在视频帧旋转之后对所述经旋转的视频帧进行视频编码;
在视频帧旋转之前对经编码的视频帧进行解码;以及
在对经解码的视频帧进行视频帧旋转之后进行显示。
8.根据权利要求1所述的方法,其中将所述第一像素映射成在所述第二方向的所述第一经旋转的相邻像素进一步包括:
将所述第一像素映射成在相对于所述第一方向旋转了90度、180度和270度之一的所述第二方向的、所述第一经旋转的相邻像素。
9.根据权利要求1所述的方法,其中接收处于交织格式的所述视频帧的所述第一瓦片进一步包括:
接收处于压缩YCbCr格式的所述视频帧的所述第一瓦片。
10.一种电路,包括:
输入缓冲器,被配置为缓冲来自形成视频帧的多个瓦片中的第一瓦片,所述第一瓦片包括第一多个宏像素,所述第一多个宏像素中的每个宏像素交织在第一方向的至少一对相邻像素、并且所述交织形成数量少于相邻像素的宏像素;
第一瓦片旋转器,被配置为将所述第一多个宏像素解交织成第一像素,将所述第一像素映射成在第二方向的第一经旋转的相邻像素,并且将所述第一经旋转的相邻像素交织成第一经旋转的宏像素;以及输出缓冲器,被配置为缓冲所述第一经旋转的宏像素以形成第一经旋转的瓦片。
11.根据权利要求10所述的电路,其中所述第一瓦片旋转器包括:
第一解交织电路,被配置为将所述第一多个宏像素解交织成所述第一像素;
第一开关电路,被配置为将所述第一像素映射成在所述第二方向的所述第一经旋转的相邻像素;以及
第一交织电路,被配置为将所述第一经旋转的相邻像素交织成所述第一经旋转的宏像素。
12.根据权利要求10所述的电路,其中:
所述输入缓冲器被配置为缓冲来自形成所述视频帧的所述多个瓦片中的第二瓦片,所述第二瓦片包括第二多个宏像素,所述第二多个宏像素中的每个宏像素交织在所述第一方向的至少一对相邻像素;
第二瓦片旋转器被配置为将所述第二多个宏像素解交织成第二像素,将所述第二像素映射成在所述第二方向的第二经旋转的相邻像素,并且将所述第二经旋转的相邻像素交织成第二经旋转的宏像素;以及
所述输出缓冲器被配置为缓冲所述第二经旋转的宏像素以形成第二经旋转的瓦片。
13.根据权利要求12所述的电路,其中所述第一瓦片旋转器和所述第二瓦片旋转器被配置为并行操作。
14.根据权利要求10所述的电路,进一步包括:
存储器接口,被配置为访问存储所述视频帧的存储器以获取在第一地址处的所述第一瓦片,并且访问所述存储器以将所述第一经旋转的瓦片写回在基于在所述第一方向和所述第二方向之间的旋转角度的第二地址处。
15.根据权利要求11所述的电路,其中所述第一开关电路被配置为根据90度、180度和270度的旋转角度之一将所述第一像素映射成所述第一经旋转的相邻像素。
16.一种电子系统,包括:
片上系统(SOC),具有视频旋转电路,所述视频旋转电路包括:
输入缓冲器,被配置为缓冲来自形成视频帧的多个瓦片中的第一瓦片,所述第一瓦片包括第一多个宏像素,所述第一多个宏像素中的每个宏像素交织在第一方向的至少一对相邻像素、并且所述交织形成数量少于相邻像素的宏像素;
第一瓦片旋转器,被配置为将所述第一多个宏像素解交织成第一像素,将所述第一像素映射成在第二方向的第一经旋转的相邻像素,并且将所述第一经旋转的相邻像素交织成第一经旋转的宏像素;以及
输出缓冲器,被配置为缓冲所述第一经旋转的宏像素以形成第一经旋转的瓦片。
17.根据权利要求16所述的电子系统,其中所述第一瓦片旋转器包括:
第一解交织电路,被配置为将所述第一多个宏像素解交织成所述第一像素;
第一开关电路,被配置为将所述第一像素映射成在所述第二方向的所述第一经旋转的相邻像素;以及
第一交织电路,被配置为将所述第一经旋转的相邻像素交织成所述第一经旋转的宏像素。
18.根据权利要求16所述的电子系统,其中:
所述输入缓冲器被配置为缓冲来自形成所述视频帧的所述多个瓦片中的第二瓦片,所述第二瓦片包括第二多个宏像素,所述第二多个宏像素中的每个宏像素交织在所述第一方向的至少一对相邻像素;
第二瓦片旋转器被配置为将所述第二多个宏像素解交织成第二像素,将所述第二像素映射成在所述第二方向的第二经旋转的相邻像素,并且将所述第二经旋转的相邻像素交织成第二经旋转的宏像素;以及
所述输出缓冲器被配置为缓冲所述第二经旋转的宏像素以形成第二经旋转的瓦片。
19.根据权利要求16所述的电子系统,进一步包括:
相机传感器,被配置为捕获所述视频帧,并且按照交织了在所述第一方向的相邻像素的宏像素的形式发送所述视频帧。
20.根据权利要求16所述的电子系统,其中所述SOC进一步包括以下中的至少一个:
视频编码器/解码器,被配置为在视频帧旋转之后对经旋转的视频帧进行编码,或者在视频帧旋转之前对经编码的视频帧进行解码;以及
显示控制器,被配置为接收所述经旋转的视频帧,并使得所述经旋转的视频帧能够被显示。
CN201110459156.2A 2010-12-23 2011-12-23 用于视频帧旋转的方法和装置 Expired - Fee Related CN102572432B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201061427028P 2010-12-23 2010-12-23
US61/427,028 2010-12-23

Publications (2)

Publication Number Publication Date
CN102572432A CN102572432A (zh) 2012-07-11
CN102572432B true CN102572432B (zh) 2016-12-14

Family

ID=46316276

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110459156.2A Expired - Fee Related CN102572432B (zh) 2010-12-23 2011-12-23 用于视频帧旋转的方法和装置

Country Status (2)

Country Link
US (1) US8718406B2 (zh)
CN (1) CN102572432B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9167272B2 (en) * 2012-04-25 2015-10-20 Omnivision Technologies, Inc. Method, apparatus and system for exchanging video data in parallel
US10531127B2 (en) * 2015-06-19 2020-01-07 Serious Simulations, Llc Processes systems and methods for improving virtual and augmented reality applications
WO2017032468A1 (en) * 2015-08-26 2017-03-02 Fotonation Limited Image processing apparatus
TWI616867B (zh) * 2016-09-26 2018-03-01 智原科技股份有限公司 視訊幀轉置裝置與方法
US10382767B2 (en) 2017-07-21 2019-08-13 Google Llc Video coding using frame rotation
US11094030B2 (en) * 2018-12-21 2021-08-17 Microsoft Technology Licensing, Llc Methods of transforming image misalignment
CN110191298B (zh) * 2019-04-17 2022-05-17 广州虎牙信息科技有限公司 移动终端及其录屏中的视频旋转方法、计算机存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1805548A (zh) * 2005-01-14 2006-07-19 微软公司 用于重叠双正交变换的可逆二维前置/后置滤波
US7576758B2 (en) * 2005-03-08 2009-08-18 Texas Instruments Incorporated Using super-pixels for efficient in-place rotation of images
CN101909181A (zh) * 2009-05-08 2010-12-08 晨星软件研发(深圳)有限公司 数字视频信号解调装置及其方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7062101B2 (en) * 2001-03-30 2006-06-13 Ricoh Co., Ltd. Method and apparatus for storing bitplanes of coefficients in a reduced size memory
US7215444B2 (en) * 2002-07-16 2007-05-08 Xerox Corporation Systems and methods for designing zero-shift supercell halftone screens
US7580578B1 (en) * 2003-02-03 2009-08-25 Canon Kabushiki Kaisha Method and device for forming a compressed transcoded digital image signal
US7535474B1 (en) * 2005-12-09 2009-05-19 Advanced Micro Devices, Inc. System and method for rotating rasterized image data
US7876977B2 (en) * 2006-02-15 2011-01-25 Conexant Systems, Inc. Image processor and method of image rotation

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1805548A (zh) * 2005-01-14 2006-07-19 微软公司 用于重叠双正交变换的可逆二维前置/后置滤波
US7576758B2 (en) * 2005-03-08 2009-08-18 Texas Instruments Incorporated Using super-pixels for efficient in-place rotation of images
CN101909181A (zh) * 2009-05-08 2010-12-08 晨星软件研发(深圳)有限公司 数字视频信号解调装置及其方法

Also Published As

Publication number Publication date
US8718406B2 (en) 2014-05-06
CN102572432A (zh) 2012-07-11
US20120162524A1 (en) 2012-06-28

Similar Documents

Publication Publication Date Title
CN102572432B (zh) 用于视频帧旋转的方法和装置
CN105580345B (zh) 成像器件和电子装置
US8890881B2 (en) Mapping method and video system for mapping pixel data included in the same pixel group to the same bank of memory
US9894371B2 (en) Video decoder memory bandwidth compression
US20140169693A1 (en) Streaming Wavelet Transform
CN1659595A (zh) 用于编码纹理信息的方法和设备
CN101958112B (zh) 手持设备屏幕画面同时实现90度和270度旋转的方法
JP2007034304A (ja) 画像の各データが画像マトリクスの特定の画像行および特定の画像列に対応している画像マトリクスにより定義される画像を効率的に回転する方法、グラフィックス・コントローラ及び画像表示システム
TW201205305A (en) Method and system for providing 1080p video with 32-bit mobile DDR memory
KR20180054797A (ko) 프리-페칭에 의한 효율적 디스플레이 프로세싱
WO2012172393A1 (en) Method and device for encoding and decoding an image
US20170372452A1 (en) Image rotation method and apparatus
US20080007807A1 (en) Image processor and image processing method
US8798386B2 (en) Method and system for processing image data on a per tile basis in an image sensor pipeline
CN106717000A (zh) 图像信号处理方法和装置
CN115190360A (zh) 视频接收器及用于生成显示数据的方法
US20070127570A1 (en) Image processor and image processing method
CN109146793B (zh) 一种流水线式图像色度格式转换缩放旋转叠加的系统
CN104618717B (zh) 行与块的整合转换方法及其计算机可读取存储介质
US7400683B2 (en) Device with virtual tilized image memory
EP1992162B1 (en) Memory organizational scheme and controller architecture for image and video processing
US20070046792A1 (en) Image compositing
US20120249345A1 (en) Data processing device and data processing method
US20080049035A1 (en) Apparatus and method for accessing image data
CN101847394B (zh) 用以解码及显示视讯文件的存储器映射方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20161214

Termination date: 20181223