编码结构的利记博彩app

文档序号:7915776阅读:201来源:国知局
专利名称:编码结构的利记博彩app
编码结构
背景技术
近来,由于消费者对显示器的沉浸式感觉和技术革新的要求,在工业上非常关注被称作UDTV (超高清电视)的大型墙壁尺寸的电视(大约70英寸至120英寸)。典型地,UDTV具有相对超高的分辨率(例如,384像素X 2160行(4K-UDTV)或7680像素X 4320行(8K-UDTV)),并且要求通过通信介质(有线/无线)或广播线路传输UDTV视频的大量带宽。用于编码UDTV视频的这种大带宽或大块数据会增加运动失配的可能性,导致在增加UDTV视频的空间编码和时间编码效率的同时产生过度的编码数据量。因此,关注于开发具有用于编码UDTV视频的最优可变块尺寸的自适应编码方案。

发明内容
问题的解决方案 提出了涉及编码UDTV视频的技术。在一个实施例中,一种编码设备包括运动编码模块,被配置为确定用于处理图像数据的编码块级别,并且还配置为根据编码块级别确定用于图像数据运动编码的块形成(block formation);纹理编码模块,被配置为根据块形成确定用于图像数据纹理编码的块尺寸,从而生成编码比特流。以上概要仅是示意性的并不意在以任何方式进行限制。除了上述示意性方面、实施例和特征以外,参照附图和以下详细描述其他方面、实施例和特征将变得显而易见。


图I示出了图像处理设备的示意性实施例的示意框图。图2示出了图I中示意的编码器的示意性实施例的示意框图。图3a和3b示出了用于视频图像数据的可变尺寸运动编码的编码块级别的块形成的示意性实施例。图4a和4b示出了用于视频图像数据的可变尺寸纹理编码的编码块尺寸的示意性实施例。图5示出了图3的编码形成与图4的编码块尺寸之间的关系示例。图6示出了用于确定编码结构的方法的示意性实施例的示例流程图。图7示出了用于图6的第一块级别判定的操作的示意性实施例的流程图。图8示出了用于图6的第二块级别判定的操作的示意性实施例的流程图。图9示出了用于图6的第三块级别判定的操作的示意性实施例的流程图。
具体实施例方式在以下详细说明中,参考了作为详细说明的一部分的附图。在附图中,类似符号通常表示类似部件,除非上下文另行指明。
具体实施方式
部分、附图和权利要求书中记载的示例性实施例并不是限制性的。在不脱离在此所呈现主题的精神或范围的情况下,可以利用其他实施例,且可以进行其他改变。应当理解,在此一般性记载以及附图中图示的本公开的各方案可以按照在此明确和隐含公开的多种不同配置来设置、替换、组合、分割和设计。应当理解,可以各种形式(包括硬件、软件、固件、专用处理器或其组合)来实现根据本公开示意性实施例的装置和方法。例如,可以将本公开的一个或多个示例实施例实现为具有程序或其它适合的计算机可执行指令的应用程序,这些程序或指令具体实现在诸如程序存储设备(例如,硬盘、磁盘、RAM、ROM、CD-ROM等)等至少一个计算机可读介质上,并且由具有适合配置的任何设备或机器(包括计算机和计算机系统)可执行。通常,可以是程序模块形式的计算机可执行指令包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、部件、数据结构等。程序模块的功能可以根据各个实施例中需要组合和分布。还应当理解,由于在附图中示出的一些构成系统组分和过程操作可以以软件来实现,系统单元/模块之间的连接(或方法操作的逻辑流程)可以根据编程本公开的各个实施例的方式而不同。图I示出了图像处理设备100的示意性实施例的示意框图。在一个实施例中,图像处理设备100可以包括接收输入视频的输入模块110,每个视频具有由诸如摄像机、可携式摄像机等图像捕获设备(未示出)所捕获的至少一个图像帧。输入模块110可以将接收 到的视频的一个或多个图像帧变换成数字图像数据。输入模块110可以使用任何各种公知数据处理技术(例如模数转换、量化等)来将视频的图像帧变换成数字图像数据。数字图像数据可以表示图像帧的各个像素位置处图像帧的特征,例如,强度、颜色、亮度等。在一些实施例中,可选地输入模块110可以包括接口(未示出)。该接口可以使图像处理设备100的操作符进入或输入指令。可以经由接口进入的指令的一些非限制类型可以包括接收一个或多个视频的指令作为输入、显示先前输入视频的指令、显示一个或多个操作结果的指令、或者另外操作图像处理设备100的指令。适合接口的示例包括但不限于键区、键盘、鼠标、触摸板、触摸屏、指针设备、跟踪球、光笔、操纵杆、语言识别设备、触控笔设备、眼睛和头部移动跟踪器、数字化平板、条码读取区。图像处理设备100还可以包括控制器120,控制器120被配置为控制图像处理设备100的部件或单元/模块的操作。控制器120可以根据预定处理序列/流来操作输入模块110以接收来自一个或多个图像捕获设备(例如,摄像机、可携式摄像机等)的具有图像帧的视频。在一个实施例中,控制器120可以包括处理器、微处理器、数字信号处理器(DSP)、微控制器等。控制器120可以包括至少一个嵌入式系统存储器,以存储和操作软件应用(包括操作系统)、至少一个应用程序或其它程序模块。控制器120便于适合的操作系统的运行,适合的操作系统被配置为管理和控制图像处理设备100的操作。这些操作可以包括到相关软件应用程序/模块和来自相关软件应用程序/模块的数据的输入和输出。操作系统可以提供在控制器120上执行的软件应用程序/模块与例如图像处理设备100的硬件部件之间的接口。适合的操作系统示例包括Microsoft Windows Vtsta %Microsoft Windows 、Apple Macintosh Operating System( “MacOS” ) 'UNIX 操作系统、LINUX 操作系统等。图像处理设备100还可以包括存储器130,存储器130可以用于存储在图像处理设备100的部件或单元/模块之间通信的数据(例如,数字图像数据)。图像处理设备100的各个部件或单元/模块可以利用数据处理的存储器130 (包括易失和非易失)。例如,存储器130可以存储经由输入模块110获取用于由编码器140处理的数字图像数据。编码器140可以获取和处理来自存储器130的数字图像数据。存储器130可以包括任何计算机可读介质,例如,只读存储器(ROM)、EPROM(可擦除ROM)、EEPROM (电EPR0M)等。此外,存储器130可以是允许根据需要和/或在需要时(例如,当变满时)替换的可拆卸可分离存储器。因此存储器13还可以包括一个或多个其他类型的存储设备,例如,SmartMedi’a P、CompactF丨ash 卡、]VlemoryStick 、MultiMediaCard 、DataPlay 盘、和 ^SecureDigital0 h,.图像处理设备100还可以包括编码器140。在一个实施例中,编码器140可以处理输入模块110根据图像捕获设备(例如,摄像机)捕获的图像帧所生成或产生的数字图像数据(例如,输入模块110所生成的数字图像数据)。例如,作为处理数字图像数据的一部分,编码器140可以通过使用可变尺寸编码方案(例如,可变尺寸运动编码和可变尺寸纹理编码)来压缩数字图像数据。
编码器140还可以将图像数据划分成一个或多个基本处理单元(例如,64X64极大块(ultra block))。每个基本处理单元包括要作为批次尺寸和处理的一组图像数据。编码器140可以将每个基本图像处理单元四等分成子块(例如,32X32超块(super block))以确定用于处理每个子块中包括的图像数据的编码块级别。编码块级别可以被定义为例如对用于编码图像数据的编码信息(例如,相关领域中已知的运动编码技术中,用于运动编码的块形成以及用于纹理编码的块尺寸)加以指示的级别索引。编码块级别可以包括超块级别、宏块级别、以及中间块级别。对于每个子块而言,编码器140可以在子块中的多于一个图像数据单元中执行运动估计,以确定图像数据子块的编码块级别(“第一块级别判定”)。例如,对于32X32超块而言,编码器140可以在第一图像数据单元(32X32超块)中执行运动估计,以生成第一度量(例如,绝对差和(SAD)、平均绝对差(MAD)、或者平方差(MSE)),并且在第二图像数据单元中执行运动估计(例如,32X32超块中16X16宏块中的一个),以生成第二度量。编码器140还可以将第一度量与第二度量进行比较,从而确定是否处理(例如,压缩、编码等)子块(即,32X32超块)的图像。如果编码器140确定不对子块进行处理(例如,当第二度量小于第一度量时),则编码器140可以以与上述第一块级别判定类似的方式来对子块中的四个16X 16宏块中的每个执行第二块级别判定。如果编码器140确定对子块进行处理(例如,当第一度量小于或等于第二度量),则编码器140可以确定超块级别作为编码块级别,并且以32X32超块来处理图像数据。根据确定的编码块级别,编码器140可以确定块形成(例如,32X32块形成、32X16块形成、16X32块形成等),用于确定了块级别的块中图像数据的运动编码。块形成可以被限定为例如可以用于执行运动编码的块类型。编码器140然后可以根据块形成来确定用于图像数据纹理编码的块尺寸。编码器140可以根据块形成来执行运动编码(例如,运动估计、运动补偿等),从而输出运动信息,例如,运动矢量、残差图像、块形成等。编码器140可以根据块尺寸来执行诸如离散余弦变换(DCT)等纹理编码,以生成编码比特流。在一些实施例中,编码器140可以通过软件、硬件、固件或其任何组合来实现。应当认识到,尽管将编码器140示为与图I中控制器130分离的单元,在一些实施例中,编码器140可以通过在控制器130上执行的应用之一来实现。可选地,图像处理设备100可以包括提供用于操作员观看的视觉输出(例如,视频和/或数字图像数据处理的结果等)的显示器(未示出)。显示器可以包括但不限于包括CRT显示器的平板显示器以及其他适合的输出设备。可选地,图像处理器设备100还可以包括其他外围输出设备(未不出),例如扬声器或打印机。在一些实施例中,可选地图像处理设备100还可以包括通信模块150。通信模块150可以经由有线或无线通信协议向至少一个外部设备(未示出)传输编码比特流(例如,纹理比特流)和运动信息。通信协议(例如,有线或无线)可以通过采用数字接口协议来实现,数字接口协议例如串行端口、并行端口、PS/2端口、通用串行总线(USB)链路、火警线或IEEE 1394链路、无线接口连接(例如红外接口、蓝牙牙 )、ZigBee、高清多媒体接口(HDMI)、高带宽数字内容保护(HDCP)、无线保真(Wi-Fi)、局域网(LAN)、广域网(WAN)等。在一些实施例中,通信模块150可以包括通过移动通信系统进行通信的调制解调器(未示出),移动通信系统例如针对移动通信定位系统(GSM)、全球定位系统(GPS)、数字移动多媒体(DMB)、码分多址(CDMA)、高速下行链路分组接入(HSDPA)、无线宽带(Wi-Bro)等。应当认识到,本公开中描述的连接方法仅是示例,并且在设备/计算机之间建立通信链路的其
他方法。图I的图像处理设备100仅是适合的操作环境的一个示例,但并不意在限制。可以适合于本公开中描述的图像处理的其他公知计算系统、环境和/或配置包括但不限于,个人计算机、诸如蜂窝电话等便携式设备、服务计算机、手持或膝上型设备、多处理器系统、给予微处理器的系统、可编程消费电子产品、网络个人计算机、迷你计算机、大型计算机、包括图I中示意的任何单元或设备的分布式计算环境等。图2示出了图中示意的编码器140的示意性实施例的示意框图。在一个实施例中,编码器140可以从存储器130中获取根据视频的一个图像帧或多个图像帧产生或生成的数字图像数据。编码器140可以对数字图像数据执行图像数据压缩(例如,运动编码、纹理编码等)。如图2所示,编码器140可以包括运动编码模块210和纹理编码模块220。在一些实施例中,可选地编码器140可以包括复用器(MUX)320。运动编码模块210可以确定用于处理图像数据的编码块级别,并且还根据编码块级别来确定用于图像数据运动编码(例如,运动估计、运动补偿等)的块形成,从而生成诸如运动矢量等运动信息。纹理编码模块220可以根据块形成来确定用于执行运动编码图像数据的纹理编码(例如,DCT)的块尺寸,以生成编码比特流。如所述,MUX 230可以对运动信息和编码比特流进行复用,以生成要传输至解码器(未示出)的比特流。在一个实施例中,运动编码模块210可以接收来自输入模块100的数字图像数据(例如,像素值),并且对图像数据单元中的数字图像数据进行处理。例如,运动编码模块210可以将数字图像数据划分成一个或多个尺寸为64X64(像素X行)的极大块作为基本图像处理单元。运动编码模块210可以将基本图像处理单元划分成一个或多个子块(例如,32X32超块)。例如,运动编码模块210可以将64X64极大块四等分成32X32超块。运动编码模块210可以确定基本图像处理单元(例如64X64极大块)的每个子块(例如,每个32 X 32超块)的编码块级别。对于32 X 32超块而言(S卩,64 X 64极大块的四个32X32超块中的每一个),运动编码模块210可以确定是否要在超块级别处理(例如,压缩、编码等)图像数据的32X32超块,其中超块尺寸或宏块尺寸可以用于根据诸如块形成、估计的比特流等因素来处理(例如纹理编码)图像数据。例如,如果确定块形成是32X32块形成,则可以使用超块尺寸,或者如果确定块形成是16X32或32X16块形成,则可以使用宏块尺寸。对于每个32X32超块而言,运动编码模块210可操作于执行针对32X32超块单元的运动估计(ME)操作(基于超块的ME)和针对四个16X16宏块(即,32X32超块的四等分)之一的运动估计操作(基于宏块的ME),以分别生成基于超块ME的一个或多个度量(例如,SAD、MAD、MSE)以及对应的基于宏块ME的度量。应当理解,本领域中公知的各种任何ME技术可以用于执行超块级别判定。运动编码模块210可以将基于超块ME的度量与基于宏块ME的对应度量相比较,来确定是否要在超块级别处理图像数据的32X32超块。如果运动编码模块210确定基于超块ME的SAD小于基于宏块ME的SAD,则运动编码模块210确定要在超块级别处理图像数据的32X32超块。否则,如果运动编码模块210确定不在超块级别处理32X32超块(例如,当基于宏块ME的SAD大于或等于基于超块ME的SAD),则运动编码模块210还可以确定对16 X 16宏块进行处理。运动编码模块210可以将32X32超块划分成32X32超块的一个或多个子块。例如,运动编码模块210可以将32X32超块四等分成四个16X16宏块。对于每个16X 16宏块而言,运动编码模块210可以确定是否要在宏块级别处理图像数据的宏块,其 中宏块尺寸或中间块尺寸可以用于根据诸如块形成、估计的比特流等因素来处理(例如,纹理编码)图像数据。例如,如果确定块形成是16X16块形成,则可以使用宏块尺寸,或者如果确定块形成是8 X 16或16 X 8块形成,则可以使用中间块尺寸。对于32 X 32超块的每个四等分(16X16宏块)而言,运动编码模块210可以执行针对16X16宏块单元的ME操作(基于宏块的ME)和针对四个8X8中间块(S卩,16X 16宏块的四等分)单元的ME操作(基于中间块的ME),以确定要在宏块级别处理宏块。运动编码模块210可以将基于宏块ME的度量(例如,SAD)与基于中间块ME的对应度量相比较。基于比较结果,运动编码模块210可以确定编码块级别是在宏块级别。如果运动编码模块210确定基于宏块ME的SAD小于基于中间块ME的SAD,则运动编码模块210确定要在宏块级别处理宏块。否则,如果运动编码模块210确定不在宏块级别处理16X 16宏块(S卩,不应当处理16 X 16宏块),则运动编码模块210还可以确定对中间块进行处理。运动编码模块210可以将16X16宏块划分成四个8X8中间块,并且针对每个8X8中间块,对8X8中间块单元和4X4宏块(即,8X8宏块的四等分)执行ME操作,以确定是否对中间块进行处理。运动编码模块210可以将基于中间块ME的SAD与基于宏块ME的SAD相比较,从而确定在中间块级别还是在宏块级别处理中间块(即,确定应当处理8X8中间块还是4X4宏块)。如果运动编码模块210确定基于中间块ME的SAD小于基于宏块ME的SAD,则运动编码模块210确定编码块级别在中间块级别。否则,运动编码模块210确定编码块级别在宏块级别。根据以上确定的编码块级别,运动编码模块210可以可操作于对用于确定了块级别的图像数据块的运动编码的块形成进行确定。每个编码块级别可以与一个或多个块形成相关联,由此,运动编码模块210可以对确定的块形式的图像数据进行运动编码。图3示出了用于图像数据可变尺寸运动编码的相应编码块级别的块形成的示意性实施例。如图3a中所示,(i)超块级别与包括三个块形成32X32、32X16和16 X 32块形成的块形成组301相关联;(ii)宏块级别与包括三个块形成16X16、16X8和8X16形成的块形成组302相关联;(iii)中间块级别与包括三个块形成8X8、8X4和4X8块形成的块形成组303相关联;以及(iv)宏块级别与包括4X4块形成的块形成组304相关联。这样,运动编码模块210可以根据块级别的确定来确定用于图像数据运动编码的块形成之一。例如,如果运动编码模块210确定编码块级别在超块级别,则运动编码模块210可以确定32X32超块形成、32X16子超块形成、和16X32子超块形成之中的块形成。图3b示出了根据运动编码模块210所确定的块级别与块形成相映射的极大块的示例。运动编码模块210可以确定极大块305的子块的块级别。例如,运动编码模块210可以确定极大块305的左上四分之一部306、左下四分之一部307、右下四分之一部308是超块级别,并且右上四分之一部309在低于超块级别的块级别。如所述,基于这种对编码块级别的确定,运动编码模块210在超块级别301 (图3a)中包括的块形成之中确定针对左上四分之一部306的32X32块形成。对于极大块305的左下四分之一部307而言,运动编码模块210确定两个16X32块形成。对于极大块305的右下四分之一部308而言,运动编码模块210确定两个32 X 16块形成。对于极大块305的右上四分之一部309而言,运动编码模块210确定通过上述块级别判定过程来确定块形成。例如,运动编码模块210可以确定超块(即,右上四分之一部309)的左上四分之一部、左下四分之一部和右下四分之一部在 宏块级别,并且右上四分之一部在低于宏块级别的块级别。应当认识到,上述块级别和块形成仅是一个示例,并且可以根据设计需要使用其他块级别和块形成。运动编码模块210可以使用各种公知运动编码算法中的任一算法基于以上确定的编码块级别和块形成来利用图像数据进行估计和补偿。例如,运动编码模块210可以应用以上确定的块形成,以执行视频相关标准(例如,MPEG2、MPEG4、H. 263、H. 264等)中指定的运动估计(ME)和运动补偿(MC)算法。这样,运动编码模块210可以可操作于生成运动补偿图像数据(例如,生成残差图像数据)并且输出运动信息(例如,运动矢量、编码块级另U、块形成等),如图2所示。在一个实施例中,纹理编码模块220可以接收来自运动编码模块210的运动补偿图像数据和运动信息,并且根据运动编码模块210所确定的编码块级别和块形成来确定用于图像数据纹理编码(例如DCT)的块尺寸(例如,DCT块尺寸)。图4a示出了用于图像数据可变块尺寸纹理编码的编码块尺寸的示意性实施例。根据块级别和块形成,纹理编码模块220可以选择用于图像数据可变尺寸纹理编码的编码块尺寸(例如,32X32U6X16、8X8 和 4X4DCT|fe)之一。图5示出了图3的编码块形成与图4a的编码尺寸之间的关系示例。如所示,(i)如果运动编码模块210确定块级别是超块级别,502所指示,则纹理编码模块220可以选择用于纹理编码(例如,DCT变换)的32X32块尺寸或16X16块尺寸(例如,DCT块尺寸);
(ii)如果运动编码模块210确定块级别是宏块级别,504所指示,则纹理编码模块220可以选择16X 16块尺寸或8X8块尺寸;以及(iii)如果运动编码模块210确定块级别是中间块或微块级别,506所指示,则纹理编码模块220可以选择8X8块尺寸或4X4块尺寸。纹理编码模块220可以进一步参照编码形成来确定编码块尺寸。当块级别是超块级别时,如果运动编码模块210确定块形成是32X32超块,则纹理编码模块220确定用于运动编码模块210所确定的32X 32超块中图像数据的纹理编码(例如,DCT)的32X 32和16X16块尺寸之一。否则,如果运动编码模块210确定块形成是32X 16或16X32子超块,则纹理编码模块220确定用于纹理编码的16X16块尺寸。应当认识到,可以参照以上编码形成来确定每个块级别的块尺寸。
图4b示出了通过对图3b的块形成应用图5所示块形成与块尺寸之间的关系被映射到极大块(例如,图3b的极大块305)的块尺寸的示例。如图4b所示,对于图3b中极大块305的左上四分之一部306(32X32块形成)而言,在32X32块尺寸和16X16块尺寸的候选块尺寸之中确定32X32块尺寸。对于极大块305的左下和右下四分之一部307和308 (相应地16X32块形成和32X 16块形成)而言,确定16X16块尺寸。对于右上四分之一部309而言,根据16X16、16X8、8X16、8X8、8X4、4X8、4X4块形成中的每一个来映射块尺寸。应当认识到,纹理编码模块220可以使用各种公知纹理编码算法中的任一算法,使用以上确定的块尺寸来压缩图像数据(例如,与参考帧中运动补偿图像数据和目标帧中图像数据之间的差相对应的残差图像数据)。例如,纹理编码模块220可以对视频相关标准(例如,MPEG2、MPEG4、H. 263、H. 264等)中指定的纹理编码算法应用以上确定的块尺寸。参照图1、2、6、7、8和9,描述了一种用于确定编码结构的方法的不意性实施例。图6示出了用于确定编码结构的方法的示意性实施例的示例流程图。编码器140可以通过输入模块110接收图像数据(方框620)。编码器140可以从存储器130获取根据视频的一 个或多个图像帧产生或生成的数字图像数据(例如,使用图像捕获设备捕获的数字图像数据)。编码器140的运动编码模块210可以将数字图像数据(例如,像素值)划分成一个或多个基本图像处理单元,基本图像处理单元是要成组处理的图像数据块。例如,运动编码模块210可以将数字图像数据划分成具有64像素X64行尺寸的极大块单元。运动编码模块210还可以将每个基本图像处理单元划分成子块(例如,32X32超块)。运动编码模块210可以执行第一块级别判定,以确定用于处理每个子块的编码块级别(方框640)。运动编码模块210可以确定是否在第一块级别(例如,超块级别)处对基本图像处理单元的每个子块(例如,作为64 X 64极大块的四分之一部分的32 X 32超块)进行处理。在一个实施例中,对于每个32X32超块,运动编码模块210可以在第一单元中(例如,在32X32超块单元中)执行ME操作,以生成基于超块ME的一个或多个度量(例如,SAD、MAD、MSE)。运动编码模块210可以在第二单元中(例如,在四个16X 16宏块的单元中)执行ME操作以生成基于宏块ME的度量。运动编码模块210可以将基于超块ME的度量与基于宏块ME的对应度量相比较。如果运动编码模块210确定基于超块ME的度量(例如,SAD)小于基于宏块ME的度量,则运动编码模块210确定要在超块级别处理超块。如果运动编码模块210确定要在超块级别处理超块,则运动编码模块210进行至方框642,以根据确定的编码块级别来确定用于每个子块中图像数据运动编码的块形成。运动编码模块210可以选择第一块级别(超块级别)中包括的块形成(例如,32X32、32X16和16X32块形成)之一,如图3a所示。纹理编码模块220可以根据方框642中确定的块形成来确定用于每个子块中图像数据的纹理编码的块尺寸(方框644)。纹理编码模块220可以参照图5中示出的块形成和块尺寸之间的关系,来选择用于纹理编码(例如DCT变换)的32X32块尺寸或16X16块尺寸。在方框640中如果运动编码模块210确定不在超块级别对超块进行处理(例如,当基于宏块ME的SAD大于基于超块ME的SAD),则运动编码模块210前进至方框660,以执行第二块级别判定,从而确定图像数据的编码块级别是否是第二块级别(例如,宏块级别)。如果运动编码模块210确定编码块级别是宏块级别,则运动编码模块210前进至方框662,以根据确定的编码块级别来确定用于图像数据运动编码的块形成。运动编码模块210可以选择第二块级别(宏块级别)中包括的块形成(16\16、16\8和8父16块形成)之一,如图3a所示。纹理编码模块220可以根据在方框662中确定的块形成来确定用于图像数据纹理编码的块尺寸(方框664)。纹理编码模块220可以参照图5中示出的关系来选择用于纹理编码的16 X 16块尺寸或8 X 8块尺寸。在方框660中如果运动编码模块210确定不是在宏块级别处理宏块,则运动编码模块210前进至方框680,以执行第三块级别判定,从而确定图像数据的编码块级别是否是第三块级别(例如,中间块级别)。如果运动编码模块210确定编码块级别是中间块级别,则运动编码模块210前进至方框682,以根据编码块级别来确定用于图像数据运动编码的块形成。运动编码模块210可以选择第一块级别(超块级别)中包括的块形成(16X16、16X8和8X16块形成)之一,如图3a所示。纹理编码模块220可以根据方框682中确定的块形成来确定用于图像数据纹理编码的块尺寸(方框684)。纹理编码模块220可以参照 图5中示出的关系来选择用于纹理编码的8X8块尺寸或4X4块尺寸。在方框680中如果运动编码模块210确定编码块级别不是中间块级别,则运动编码模块210前进至方框686,以选择用于运动编码的4X4块形成,并且纹理编码模块220可以选择用于纹理编码的4X4块形成。这样,运动编码模块210可以确定(i)超块级别、宏块级别和中间块级别之中的编码块级别;(ii)用于图像数据运动编码的块形成;以及(iii)用于图像数据纹理编码的块尺寸。运动编码模块210可以利用确定的块形成中的图像数据来执行ME操作,从而输出诸如运动矢量等运动信息。纹理编码模块220可以根据确定的块尺寸来执行纹理编码,以生成编码比特流。应当理解,上述编码块级别、块形成和块尺寸仅是制定编码结构的一个示例,并不意在限制。应当认识到,尽管使用三个编码级别来描述以上编码结构制定方法,但是根据编码格式和结构的实现方式/应用要求可以考虑各种编码结构。对于不同编码级别可以考虑各种编码形成和编码块尺寸。应当理解,本领域中公知的各种任何ME技术可以用于执行块级别判定。还应当认识到可以在各种应用中使用根据本公开准备的编码器。图7示出了用于图6的第一块级别判定的操作的示意性实施例的详细流程图。对于64X64极大块的每个四分之一部,运动编码模块210可以在32X32超块单元中执行ME操作,并且在四个16 X 16宏块的单元中执行ME操作,以确定是否要在超块级别处理64 X 64极大块的四分之一部(32X32超块)(方框710)。运动编码模块210可以将基于超块ME的度量(例如,SAD、MAD、MSE)之一与基于宏块ME的对应度量之一相比较,从而确定编码块级别是否在超块级别(方框720)。如果运动编码模块210确定基于超块ME的SAD小于基于宏块ME的SAD,则运动编码模块210确定要在超块级别处理32 X 32超块,并且前进至方框740。否则,运动编码模块210前进至图8的方框810,以执行图6的第二块级别判定(方框730)。运动编码模块210可以在包括两个32X 16子超块的单元中以及在包括两个16X31子超块的单元中执行ME操作,以分别生成基于32 X 16子超块的SAD和基于16X32子超块的SAD(方框740)。运动编码模块210可以基于以下三个SAD的比较来确定用于运动编码的块形成(i)基于32X16子超块到的SAD,(ii)基于16X32子超块的SAD,以及
(iii)方框710中生成的基于32X 32超块的SAD (方框750)。运动编码模块210可以选择生成最小SAD的32 X 32块形成、32 X 16块形成和16 X 32块形成。如果运动编码模块210确定基于32 X 32超块的SAD是上述三个SAD中最小的,则运动编码模块210可以确定32 X 32块形成作为用于运动编码的块形成。否则,运动编码模块210可以根据两个基于子超块的SAD中哪个更小来选择32 X 16块形成或16X32块形成作为块形成。在方框760中,在检查是否将32 X 32块形成确定为块形成时,如果是,则纹理编码模块220前进至方框770,以根据确定的32X32块形成来确定用于纹理编码的块尺寸。纹理编码模块220可以在确定了 32X32块形成的32X32超块中执行32X32纹理编码和16 X 16纹理编码。纹理编码可以包括但不限于执行DCT变换、Hadamard变换等。纹理编码模块220可以执行各种熵编码操作,以生成用于32X32纹理编码和16X 16纹理编码的估计比特流。在一个实施例中,纹理编码模块220可以执行仿真熵编码,以提高效率和操作速度。纹理编码模块220可以根据对估计的比特流量的比较来确定使用32X32块尺寸还是16X16块尺寸(方框770)。纹理编码模块220可以将用于32X32纹理编码的比特流量与用于16 X 16纹理编码的比特流相比较,从而选择32 X 32块尺寸或者16X16块尺寸。纹理编码模块220可以例如基于RD最优化(速率失真最优化)和仿真的比特流试验来确定可 以产生最小比特流量的块尺寸。如果32X32纹理编码产生比16X16纹理编码的比特流量更小的比特流量,则纹理编码模块220选择用于纹理编码的32X32块尺寸。如果纹理编码模块220在方框760中确定将16 X 16块形成确定为块形成,则纹理编码模块220前进至方框780,以选择16X16块尺寸作为用于实际纹理编码(例如,DCT变换)的块尺寸。纹理编码模块220可以基于确定的块尺寸来执行实际纹理编码,并且执行熵编码(例如,哈夫曼编码、行程编码等),以生成要传输的实际比特流。应当理解,本领域中公知的特征纹理编码技术可以用于执行以上纹理编码。图8示出了用于图6的第二块级别判定的操作的示意性实施例的详细流程图。如上所述,在图7的方框720中,如果运动编码模块210针对32X32超块确定基于超块ME的SAD不小于基于宏块ME的SAD,则运动编码模块210前进至图8的方框810。运动编码模块210可以针对确定不在超块级别处理的32 X 32超块,以与以上参照图7描述的超块级别判定类似的方式来执行宏块级别判定(方框810)。运动编码模块210可以将32 X 32超块四等分成16X 16宏块。对于每个16X 16宏块,运动编码模块210可以在16X 16宏块的单元中执行ME操作,并且在四个8X8中间块(即,16X16宏块的四个四分之一部)的单元中执行ME操作,以确定16X 16宏块的编码块级别是否在宏块级别。运动编码模块210将基于宏块ME的SAD与基于中间块ME的SAD相比较(方框820)。如果基于宏块ME的SAD小于基于中间块ME的SAD,则运动编码模块210前进至方框840,以执行两个基于子宏块的ME(16X8和8X16)。运动编码模块210可以将以下三个SAD相比较⑴基于16X8子宏块的SAD以及(ii)方框840中生成的基于子8X16宏块的SAD;以及(iii)方框810中确定的基于16X16子宏块的SAD (方框850)。运动编码模块210可以基于方框850的比较结果来确定用于运动编码的块形成(方框860)。运动编码模块210可以选择具有最小SAD的16 X 16块形成、16 X 8块形成或8 X 16块形成。在方框860中如果纹理编码模块220选择16X 16块形成作为用于运动编码的块形成,则纹理编码模块220前进至方框870,以执行16X16纹理编码和8X8纹理编码,从而生成用于16X16纹理编码和8X8纹理编码中每一个的估计比特流。纹理编码模块220可以以与以上参照图7描述的方框770中的方式类似的方式,来确定使用16X16块尺寸还是8X8块尺寸用于纹理编码(方框870)。在方框860中如果纹理编码模块220选择16X8块形式或8 X 16块形式作为块形成,则纹理编码模块220前进至方框880,以选择8X8块尺寸作为用于纹理编码(例如,DCT变换)的块尺寸。纹理编码模块220可以基于确定的块尺寸来执行实际纹理编码,并且执行熵编码(例如,哈夫曼编码、行程编码等)以生成要传输的实际比特流。在方框820中,如果对于16 X 16宏块而言基于宏块ME的SAD不小于基于中间块ME的SAD,则运动编码模块210前进至图9的方框910 (方框830)。运动编码模块210可以以与以上参照图7描述的超块等级判定类似方式,针对确定不在宏块级别处理的16 X 16宏块执行中间块级别判定(方框910)。运动编码模块210可以将16X 16宏块划分成一个或多个子块(例如,16X16宏块的四个四分之一部分,每个四分之一部分是8X8中间块)。运动编码模块210可以在8 X 8中间块单元中执行ME操作,并且在4X4微块单元中执行ME操作,以确定是否要在中间块级别处理8X8总结块。运动编码模块210可以将基于8X8中间块ME的SAD与基于4X4微块ME的SAD相比较(方框920)。如果基于中间块ME的SAD小于基于微块ME的SAD,则运动编码模块210前进至方框940以执行两个基于子中间块(8X4和4X8)的ME。否则运动编码模块210前进至方框930以将运动形成选择为4X4块形成,并且将块尺寸选择为4X4块尺寸。运动编码模块210可以比较以下三个SAD :基于8X4子中间块的SAD,(ii)在方框940中生成的基于4X8子中间块的SAD,以及(iii)在方框910中确定的基于8X8中间块的SAD(方框950)。运动编码模块210可以基于方框950的比较结果来确定用于运动编码的块形成(方框960)。运动编码模块210可以选择具有最小SAD的8X8块形成、8X4块形成或者4X8块形成。在方框960中如果纹理编码模块220选择8 X 8块形成作为用于运动编码的块形成,则纹理编码模块220前进至方框970,以执行8X8仿真纹理编码和4X4仿真纹理编码,从而生成用于8 X 8纹理编码和4X4纹理编码中的每一个的估计比特流。纹理编码模块220可以以与以上参照图7描述的方框770中的方式类似的方式,来确定使用8 X 8块尺寸还是4 X 4块尺寸用于纹理编码(方框970)。在方框960中如果纹理编码模块220选择8X4块形成或4X8块形成作为块形成,则纹理编码模块220前进至方框980,以选择4X4块尺寸作为用于纹理编码(例如,DCT变换)的块尺寸。纹理编码模块220可以基于确定的块尺寸来执行实际纹理编码,并且执行熵编码(例如,哈夫曼编码、行程编码等),以生成要传输的比特流。本领域技术人员将认识到,对于本文所公开的该和其他过程和方法,在过程和方法中执行的功能可以以不同顺序执行。此外,在不背离所公开实施例的本质的前提下,仅提供概括的步骤和操作作为示例,并且一些步骤和操作是可选的,可以组合成少数步骤和操作,或者可以扩展成附加步骤和操作。本公开不限于本申请中描述的用作说明各个方面的特定实施例方面。在不背离本公开的精神和范围的前提下,可以对进行对于本领域技术人员而言显而易见的许多修改和变型。除了那些在本文中列举的方法和装置以外,根据上述描述本公开范围内功能等同的 方法和装置对于本领域技术人员是显而易见的。这样的修改和变型应落在所附权利要求的范围内。本公开仅有所附权利要求的各项以及这样的权利要求所给予权利的等同物的全部范围来限定。应当理解,本公开不限于当然可以变化的特定方法、反应物、组合成分或生物系统。还应当理解,本文所使用的术语的目的在于仅描述特定实施例,并不应视为限制。
至于本文中任何关于多数和/或单数术语的使用,本领域技术人员可以从多数形式转换为单数形式,和/或从单数形式转换为多数形式,以适合具体环境和应用。为清楚起见,在此明确声明单数形式/多数形式可互换。本领域技术人员应当理解,一般而言,所使用的术语,特别是所附权利要求中(例如,在所附权利要求的主体部分中)使用的术语,一般地应理解为“开放”术语(例如,术语“包括”应解释为“包括但不限于”,术语“具有”应解释为“至少具有”等)。本领域技术人员还应理解,如果意在所引入的权利要求中标明具体数目,则这种意图将在该权利要求中明确指出,而在没有这种明确标明的情况下,则不存在这种意图。例如,为帮助理解,所附权利要求可能使用了引导短语“至少一个”和“一个或多个”来引入权利要求中的特征。然而,这种短语的使用不应被解释为暗示着由不定冠词“一”或“一个”引入的权利要求特征将包含该特征的任意特定权利要求限制为仅包含一个该特征的实施例,即便是该权利要求既包括引导短语“一个或多个”或“至少一个”又包括不定冠词如“一”或“一个”(例如,“一”和/或“一个”应当被解释为意指“至少一个”或“一个或多个”);在使用定冠词来引入权利要求中的特征时,同样如此。另外,即使明确指出了所引入权利要求特征的具体数目,本领域 技术人员应认识到,这种列举应解释为意指至少是所列数目(例如,不存在其他修饰语的短语“两个特征”意指至少两个该特征,或者两个或更多该特征)。另外,在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。本领域技术人员还应理解,实质上任意表示两个或更多可选项目的转折连词和/或短语,无论是在说明书、权利要求书还是附图中,都应被理解为给出了包括这些项目之一、这些项目任一方、或两个项目的可能性。例如,短语“A或B”应当被理解为包括“A”或“B”、或“A和B”的可能性。另外,在以马库什组描述本公开的特征或方案的情况下,本领域技术人员应认识至IJ,本公开由此也是以该马库什组中的任意单独成员或成员子组来描述的。本领域技术人员应当理解,出于任意和所有目的,例如为了提供书面说明,这里公开的所有范围也包含任意及全部可能的子范围及其子范围的组合。任意列出的范围可以被容易地看作充分描述且实现了将该范围至少进行二等分、三等分、四等分、五等分、十等分等。作为非限制性示例,在此所讨论的每一范围可以容易地分成下三分之一、中三分之一和上三分之一等。本领域技术人员应当理解,所有诸如“直至”、“至少”、“大于”、“小于”之类的语言包括所列数字,并且指代了随后可以如上所述被分成子范围的范围。最后,本领域技术人员应当理解,范围包括每一单独数字。因此,例如具有I 3个单元的组是指具有1、2或3个单元的组。类似地,具有I 5个单元的组是指具有1、2、3、4或5个单元的组,以此类推。尽管已经在此公开了多个方案和实施例,但是本领域技术人员应当明白其他方案和实施例。这里所公开的多个方案和实施例是出于说明性的目的,而不是限制性的,本公开的真实范围和精神由所附权利要求 表征。
权利要求
1.一种编码设备,包括 运动编码模块,被配置为确定用于处理图像数据的编码块级别,并且还配置为根据编码块级别来确定用于图像数据运动编码的块形成;以及 纹理编码模块,被配置为根据块形成来确定用于图像数据纹理编码的块尺寸,从而生成编码比特流。
2.根据权利要求I所述的编码设备,其中,运动编码模块还被配置为在运动编码模块所确定的块形成的单元中执行运动估计(ME)操作,从而输出运动信息。
3.根据权利要求2所述的编码设备,还包括MUX,被配置为对运动信息和编码比特流进行复用。
4.根据权利要求I所述的编码设备,其中,运动编码模块还被配置为将图像数据划分成一个或多个基本图像处理单元,并且将每个基本图像处理单元四等分成子块,以确定针 对每个子块的编码块级别。
5.根据权利要求4所述的编码设备,其中,运动编码模块还被配置为针对每个子块在第一单元中执行第一 ME操作,并且在第二单元中执行第二 ME操作。
6.根据权利要求5所述的编码设备,其中,运动编码模块还被配置为将第一单元中第一 ME操作的度量与第二单元中第二 ME操作的度量相比较,从而基于度量的比较结果来确定每个子块的编码块级别是否在第一块级别。
7.根据权利要求6所述的编码设备,其中,如果运动编码模块确定编码块级别在第一块级别,则运动编码模块被配置为将块形成确定为32X32超块形成、32 X 16子超块形成和16X32子超块形成之一。
8.根据权利要求7所述的编码设备,其中,如果运动编码模块确定块形成是32X32超块形成,则纹理编码模块被配置为针对32 X 32超块形成中的图像数据执行32 X 32DCT编码和16X16DCT编码。
9.根据权利要求8所述的编码设备,其中,纹理编码模块还被配置为将32X32DCT编码所生成的第一比特流的量与16X16DCT编码所生成的第二比特流的量相比较,以确定用于32 X 32超块形成中的图像数据的纹理编码的块尺寸。
10.根据权利要求7所述的编码设备,其中,如果运动编码模块确定块形成是32X 16子超块形成和16X32子超块形成之一,则纹理编码模块被配置为针对确定的块形成中的图像数据执行16X 16DCT编码。
11.根据权利要求6所述的编码设备,其中,如果运动编码模块确定每个子块的编码块级别不在第一块级别,则运动编码模块被配置为将每个子块四等分成宏块,并且针对每个宏块,在宏块单元和中间块单元中执行ME操作,以确定每个宏块的编码块级别是否在宏块级别。
12.—种图像处理系统,包括 输入模块,被配置为接收具有至少一个图像帧的输入视频,并且被配置为将所述图像帧变换成图像数据; 编码器,包括 运动编码模块,被配置为确定用于处理图像数据的编码块级别,并且还配置为根据编码块级别来确定用于图像数据运动编码的块形成;以及纹理编码模块,被配置为根据块形成来确定用于图像数据纹理编码的块尺寸,从而生成编码比特流; 控制器,被配置为控制输入模块和编码器的操作;以及 存储器,存储图像数据。
13.根据权利要求12所述的图像处理系统,还包括通信模块,被配置为经由有线或无线通信协议向至少一个外部设备传输编码比特流。
14.一种方法,包括 接收图像数据; 将图像数据划分成一个或多个基本图像处理单元,并且将每个基本图像处理单元划分成子块,以确定用于处理每个子块的编码块级别; 根据编码块级别来确定用于每个子块中图像数据的运动编码的块形成;以及 根据块形成来确定用于每个子块中图像数据的纹理编码的块尺寸。
15.根据权利要求14所述的方法,还包括在确定的块形成的单元中执行ME操作,从而输出运动信息。
16.根据权利要求14所述的方法,其中,确定编码块级别包括针对每个子块,在第一单元和第二单元中执行ME操作,从而确定每个子块的编码块级别是否在第一块级别。
17.根据权利要求16所述的方法,其中,当将编码块级别确定为第一块级别时,在32X32超块形成、32 X 16子超块形成、和16 X 32子超块形成之中确定块形成。
18.根据权利要求17所述的方法,其中,当将块形成确定为32X 32超块形成时,确定块尺寸还包括针对32X32超块形成中的图像数据执行32X32DCT编码和16X 16DCT编码。
19.根据权利要求18所述的方法,其中,确定块尺寸包括将32X32DCT编码所生成的第一比特流的量与16X 16DCT编码所生成的第二比特流的量相比较。
20.根据权利要求17所述的方法,其中,所述方法还包括当将块形成确定为32X16超块形成和16X32超块形成之一时,针对确定的块形成中的图像数据执行16X16DCT编码。
全文摘要
提出了涉及编码视频的设备和技术。编码设备包括运动编码模块,被配置为确定用于处理图像数据的编码块级别,并且还配置为根据编码块级别确定用于图像数据运动编码的块形成;纹理编码模块,被配置为根据块形成确定用于图像数据纹理编码的块尺寸,从而生成编码比特流。
文档编号H04N7/26GK102763412SQ201080064028
公开日2012年10月31日 申请日期2010年12月13日 优先权日2010年2月17日
发明者朴光勋 申请人:庆熙大学校产学协力团
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1