CN102088610B - 视频编解码器及运动估计方法 - Google Patents

视频编解码器及运动估计方法 Download PDF

Info

Publication number
CN102088610B
CN102088610B CN2011100559892A CN201110055989A CN102088610B CN 102088610 B CN102088610 B CN 102088610B CN 2011100559892 A CN2011100559892 A CN 2011100559892A CN 201110055989 A CN201110055989 A CN 201110055989A CN 102088610 B CN102088610 B CN 102088610B
Authority
CN
China
Prior art keywords
macro block
reference frame
search window
data
frame data
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.)
Active
Application number
CN2011100559892A
Other languages
English (en)
Other versions
CN102088610A (zh
Inventor
陈志沖
周锦锋
何建彬
杨柳
李强
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.)
Intel Corp
Original Assignee
KY WIRE ELECTRIC 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 KY WIRE ELECTRIC CO Ltd filed Critical KY WIRE ELECTRIC CO Ltd
Priority to CN2011100559892A priority Critical patent/CN102088610B/zh
Publication of CN102088610A publication Critical patent/CN102088610A/zh
Priority to US13/406,185 priority patent/US9648338B2/en
Application granted granted Critical
Publication of CN102088610B publication Critical patent/CN102088610B/zh
Priority to US15/584,572 priority patent/US9961354B2/en
Priority to US15/661,539 priority patent/US10021408B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • H04N19/433Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation

Abstract

一种视频编解码器及运动估计方法。该视频编解码器耦接至储存一参考帧数据的一外部存储器,包括一接口电路、一片内存储器、一运动估计电路、以及一控制器。该接口电路自该外部存储器的该参考帧数据取得一片内存储数据。该片内存储器储存该片内存储数据,其中该片内存储数据包含该参考帧数据的三行宏块。该运动估计电路以一搜索窗自该片内存储数据撷取一搜索窗数据,并依据该搜索窗数据进行一当前宏块的运动估计。当该当前宏块变动时,该控制器对应地移动该搜索窗于该片内存储数据中的位置,将该片内存储数据中自该搜索窗移出的一宏块标记为一空宏块,并控制该接口电路自该外部存储器的该参考帧数据取得一更新宏块以替换该片内存储器中的该空宏块。

Description

视频编解码器及运动估计方法
技术领域
本发明涉及视频编解码器(video codec),特别是涉及视频编解码器的运动估计(motion estimation)。
背景技术
视频编解码器(video codec)用来对视频信号进行编码及解码。无论是视频编码过程或视频解码过程,都必须对视频信号进行运动估计(motionestimation)。运动估计在视频编解码过程中占有相当大的计算量。一般来说,运动估计过程所需的计算量约占视频编解码过程的总体计算量的40%~70%,因此若能提升运动估计过程的速度,则可大大地提升视频编解码器的整体效能。
视频信号是由多个帧(frame)所组成,而每一帧又由多个宏块(macroblock)所组成。一个宏块包含了16×16个像素(pixel)。当视频编解码器进行运动估计时,一般是以一个宏块为单位以进行估计。图1A为视频编解码器对一个当前帧进行运动估计的示意图。当前帧150包含多个行160~190,每一行包括多个宏块,每一宏块包括16×16个像素。举例来说,当前帧150的行160包括宏块161~16N,而当前帧150的行170包括宏块171~17N。当视频编解码器对当前帧150进行运动估计时,首先将行160的第一个宏块161设为当前宏块,并对当前宏块161进行运动估计。
当产生当前宏块161的运动估计数据后,视频编解码器接着对将行160的第二个宏块162设为当前宏块,并对当前宏块162进行运动估计。接着,视频编解码器依序分别将行160的第三个宏块163、第四个宏块164、第五个宏块165、...、第N个宏块16N设为当前宏块,并对当前宏块163、164、165、...、16N进行运动估计。当视频编解码器对当前帧150的行160进行运动估计完毕后,视频编解码器继续对当前帧150的第二行170的宏块171~17N进行运动估计。如此反复上述步骤,直到当前帧150的最后一行190的宏块191~19N进行运动估计完毕为止。
图1B为视频编解码器对一当前宏块进行运动估计的示意图。假设当前宏块位于当前帧,而视频编解码器以一参考帧的数据为依据对当前帧进行运动估计,且参考帧包括一同位宏块(collocated macroblock)105具有与当前宏块于当前帧中相同的位置。当视频编解码器对当前宏块进行运动估计时,需要参考帧中以同位宏块105为中心的多个宏块的数据作为依据。于一实施例中,对当前宏块进行运动估计所需要的数据包括参考帧中的同位宏块105、位于该同位宏块上方的一上方宏块102、位于该同位宏块下方的一下方宏块108、位于该同位宏块左方的一左方宏块104、位于该同位宏块右方的一右方宏块106、位于该同位宏块左上方的一左上方宏块101、位于该同位宏块右上方的一右上方宏块103、位于该同位宏块左下方的一左下方宏块107、以及位于该同位宏块右下方的一右下方宏块109。
由于视频编解码器需要参考帧中的多个宏块的数据以对当前宏块进行运动估计,因此视频编解码器会以一搜索窗100自参考帧撷取所需的宏块的数据。一般而言,参考帧数据具有较高的数据量,因此皆储存于视频编解码器以外的存储器中。每当视频编解码器对一当前区块进行运动估计时,视频编解码器便由存储器中取得当前宏块所对应的搜索窗100内的宏块数据,并将该搜索窗数据储存入一片内存储器,以供进行当前区块的运动估计。
然而,上述运动估计过程存在许多缺点。首先,每次视频编解码器更换当前宏块,搜索窗数据必须进行对应的更换,而视频编解码器便需要重新存取一次存储器中的参考帧数据以取得搜索窗数据。由于存取外部存储器中的参考帧数据会导致运动估计过程的延迟,因此以高频率存取存储器中的参考帧数据会使系统的效能降低。
然而,相邻的区块对应的搜索窗数据彼此间有大部分的宏块为重迭的。图2A为水平相邻的两搜索窗210及220的示意图。搜索窗210包含以同位宏块201为中心的9个宏块,而搜索窗220包含以同位宏块202为中心的9个宏块。由图2A中可见,搜索窗210与220有六个宏块相重迭,如阴影区域所示。图2B为垂直相邻的两搜索窗260及270的示意图。搜索窗260包含以同位宏块206为中心的9个宏块,而搜索窗270包含以同位宏块207为中心的9个宏块。由图2B中可见,搜索窗260与270亦有六个宏块相重迭,如着色区域所示。由于邻近的搜索窗的大部份宏块为重迭,对于传统的视频编解码器更换当前进行区块时,需要更换搜索窗内的所有巨集块的数据,即一次读取图1A中的三行数据,或者当每次读取一行时分为三次读取,而造成读取数据的重迭和冗余。若能妥善的利用搜索窗的重迭性质以安排搜索窗数据的读取,便可减少运动估计过程之中对外部次存储器的存取频率并节省读取数据所使用的带宽,从而减少运动估计过程的延迟,而提高系统效能。
发明内容
有鉴于此,本发明的目的在于提供一种视频编解码器(video codec),以解决现有技术存在的问题。于一实施例中,该视频编解码器耦接至储存一参考帧数据的一外部存储器,包括一接口电路、一片内存储器、一运动估计电路、以及一控制器。该接口电路自该外部存储器的该参考帧数据取得一片内存储数据。该片内存储器储存该片内存储数据,其中该片内存储数据包含该参考帧数据的三行宏块。该运动估计电路以一搜索窗自该片内存储数据撷取一搜索窗数据,并依据该搜索窗数据进行一当前宏块的运动估计。当该当前宏块变动时,该控制器对应地移动该搜索窗于该片内存储数据中的位置,将该片内存储数据中自该搜索窗移出的一宏块标记为一空宏块,并控制该接口电路自该外部存储器的该参考帧数据取得一更新宏块以替换该片内存储器中的该空宏块。
本发明提供一种运动估计方法。于一实施例中,一视频编解码器(videocodec)耦接至储存一参考帧数据的一外部存储器,包括一接口电路、一片内存储器、一运动估计电路、以及一控制器。首先,以该接口电路自该外部存储器的该参考帧数据取得一片内存储数据。接着,以该片内存储器储存该片内存储数据,其中该片内存储数据包含该参考帧数据的三行宏块。接着,以一搜索窗自该片内存储数据撷取一搜索窗数据。接着,以该运动估计电路依据该搜索窗数据进行一当前宏块的运动估计。当该当前宏块变动时,以该控制器对应地移动该搜索窗于该片内存储数据中的位置,并将该片内存储数据中自该搜索窗移出的一宏块标记为一空宏块。接着,以该接口电路自该外部存储器的该参考帧数据取得一更新宏块以替换该片内存储器中的该空宏块。
为了使本发明的上述和其他目的、特征、和优点能更明显易懂,下文特举数个较佳实施例,并结合附图详细说明如下。
附图说明
图1A为视频编解码器对一个当前帧进行运动估计的示意图;
图1B为视频编解码器对一当前宏块进行运动估计的示意图;
图2A为水平相邻的两搜索窗的示意图;
图2B为垂直相邻的两搜索窗的示意图;
图3为依据本发明的视频编解码器的区块图;
图4A为依据本发明的片内存储器所储存的片内存储数据的示意图;
图4B~图4H为依据本发明的控制器依据运动估计过程更新片内存储器所储存的片内存储数据的示意图;
图5为依据本发明自外部存储器下载数据至片内存储器的方法的流程图;以及
图6为依据本发明的使用片内存储器中储存的数据的方法的流程图。
具体实施方式
图3为依据本发明的视频编解码器302的区块图。视频编解码器302可对视频数据进行编码及解码。该视频数据可为MPEG4视频数据或H.263视频数据。该视频数据包括多个帧(frame),每一帧包括多个宏块(macro block)。当视频编解码器302对视频数据进行编码及解码时,视频编解码器302会依序对该视频数据的多个帧的各宏块进行运动估计(motion prediction)。其中视频编解码器302正进行运动估计的帧称为当前帧(current frame),而视频编解码器302正进行运动估计的宏块称为当前宏块(current macro block)。
于一实施例中,视频编解码器302耦接至一外部存储器304,其中该外部存储器304包括一参考帧数据310。该参考帧数据310供视频编解码器302对当前帧进行运动估计的参考用,因此视频编解码器302在对当前帧进行运动估计前必须先自外部存储器304下载部份参考帧数据310。于一实施例中,视频编解码器302包括一控制器312、一接口电路314、一片内存储器316、以及一运动估计电路318。控制器312为视频编解码器302的核心,控制接口电路314、片内存储器316、以及运动估计电路318的运作。接口电路314可依据控制器312的指示自外部存储器304读取部份参考帧数据310以得到一片内存储数据320,并将片内存储数据320储存于片内存储器316。于一实施例中,片内存储器316中储存的片内存储数据320包含参考帧数据310的三行宏块。片内存储器316可由片内存储器316读取片内存储数据320,根据一搜索窗得到一搜索窗数据,其中搜索窗为在存储器316中选取一定的连续数据例如窗形区域内的数据,并且这些连续的数据可以按照数据的排列方式例如数据阵列方向进行移动。最后,运动估计电路318依据搜索窗数据针对当前宏块进行运动估计,以得到当前宏块的运动估计数据。
图4A为依据本发明的片内存储器316所储存的片内存储数据的示意图。于一实施例中,当运动估计电路318欲开始进行当前帧的运动估计时,控制器312控制接口电路314自外部存储器304读取参考帧数据310的完整前三行数据。参考帧310的前三行数据在片内存储器316中储存的范围包括宏块412~41(N-1)、422~42(N-1)、432~43(N-1)。其中,参考帧310的第一行数据包括宏块412~41(N-1),参考帧310的第二行数据包括宏块422~42(N-1),而参考帧310的第三行数据包括宏块432~43(N-1)。除了参考帧数据310的完整前三行数据外,图4A左侧的宏块411、421、431为参考帧往左侧扩展的一列数据,而图4A右侧的宏块41N、42N、43N为参考帧往右侧扩展的一列数据。因此,片内存储器316中储存的片内存储数据400的行数目为三行,列数目为参考帧310的列数目加二列。在一个实施例中,可以进行列扩展,即向左侧扩展和右侧扩展,例如将参考帧每行的第一个巨集块和最后一个巨集块分别复制到图4A左侧的宏块411、421、431和图4A右侧的宏块41N、42N、43N,在其他实施例中也可以采用预设的数值补充到上述宏块中。
图4A中的片内存储数据下载至片内存储器316中储存的过程如下。首先,控制器312控制接口电路314自外部存储器304读取参考帧往左侧扩展的三个宏块411、421、431,然后将宏块411、421、431储存至片内存储器316。接着,控制器312控制接口电路314自外部存储器304读取参考帧数据310的前三行的第一列宏块412、422、432,然后将宏块412、422、432储存至片内存储器316。接着,控制器312控制接口电路314自外部存储器304读取参考帧数据310的前三行的第二列宏块413、423、433,然后将宏块413、423、433储存至片内存储器316。同样的,控制器312控制接口电路314依次读取参考帧数据310的各行宏块并储存至片内存储器316,直到参考帧数据310的最后一行宏块41(N-1)、42(N-1)、43(N-1)储存至片内存储器316为止。最后,控制器312控制接口电路314自外部存储器304读取参考帧往右侧扩展的三个宏块41N、42N、43N,然后将宏块41N、42N、43N储存至片内存储器316。
图4B~图4H为依据本发明的控制器312依据运动估计过程更新片内存储器316所储存的片内存储数据的示意图。于图4B中,假设进行运动估计的当前宏块于当帧前中位于同位宏块422的相同位置。首先,控制器312将搜索窗移至位置410以由片内存储器316读取宏块411~413、421~423、431~433的数据作为搜索窗数据,并将搜索窗数据传送至运动估计电路318进行当前宏块的运动估计。搜索窗410包含以同位宏块422为中心位置的九个宏块。当当前宏块的运动估计执行完毕,运动估计电路318将当前宏块右移一个宏块,而控制器312亦将搜索窗右移一个宏块宽度至位置420,以由片内存储器316读取宏块412~414、422~424、432~434的数据作为供当前宏块的运动估计的搜索窗数据,如图4C所示。
此时,图4B中的宏块411、421、431已由图4C的搜索窗420中移除。其中,宏块421、431的数据仍旧会在后续移动估计过程中运用,但宏块411的数据已不再被运用。因此,控制器312将宏块411标示为一空宏块,接着控制接口电路314自外部存储器304读取参考帧第4行往左侧扩展的一个宏块441的数据,并将宏块441的数据储存在片内存储器316中原本存放宏块411的空间,如图4C所示。
同样的,于图4D中,当当前宏块的运动估计执行完毕,运动估计电路318将当前宏块再右移一个宏块,而控制器312亦将搜索窗对应地右移至位置430,以由片内存储器316读取宏块413~415、423~425、433~435的数据作为供当前宏块的运动估计的搜索窗数据。此时,图4C中的宏块412、422、432已由图4D的搜索窗430中移除。其中,宏块422、432的数据仍旧会在后续移动估计过程中运用,但宏块412的数据已不再被运用。因此,控制器312将宏块412标示为一空宏块,接着控制接口电路314自外部存储器304读取参考帧数据的第4行的第一个宏块442的数据,并将宏块442的数据储存在片内存储器316中原本存放宏块412的空间,如图4D所示。
同样的,控制器312将依据前述的过程随着搜索窗的移动反复自外部存储器304读取参考帧数据,以更新片内存储器316中储存的片内存储数据320。于图4E中,搜索窗已移动至440的位置,而片内存储器316中原本存放第一行的宏块411~41(N-4)的空间已更新为参考帧数据的第4行的宏块441~44(N-4)。于图4F中,进行运动估计的当前宏块再度右移一个宏块,而搜索窗对应地移动至450的位置。控制器312控制接口电路314将宏块41(N-3)标示为空宏块,接着自外部存储器304读取参考帧数据的第4行的宏块44(N-3)的数据,并将宏块44(N-3)的数据储存在片内存储器316中原本存放宏块41(N-3)的空间。
由于图4F中进行运动估计的当前宏块是位于当前帧中该行的最后一个宏块,因此当运动估计电路318对当前宏块进行运动估计完毕后,会将当前宏块移至当前帧中的下一行开头。于图4G中,控制器312将搜索窗对应地移动至460的位置。此时片内存储器316中原本存放第1行宏块的空间已完全被替换为参考帧第4行的数据,因此运动估计电路318可直接依据搜索窗460包含的宏块数据对当前宏块进行运动估计。同样的,由于之前自图4F的搜索窗450移出的共有9个宏块41(N-2)~41N、42(N-2)~42N、43(N-2)~43N,其中三个宏块41(N-2)、41(N-1)、41N已不再为后续运动估计过程所运用,因此控制器312将宏块41(N-2)、41(N-1)、41N标示为空宏块,接着控制接口电路314自外部存储器304读取参考帧数据的第4行的宏块44(N-2)、44(N-1)、44N的数据,并将宏块44(N-2)、44(N-1)、44N的数据储存在片内存储器316中原本存放宏块41(N-2)、41(N-1)、41N的空间。
于图4H中,进行运动估计的当前宏块再度右移一个宏块,而搜索窗对应地移动至470的位置。此时,图4G中的宏块441、421、431已由图4H的搜索窗470中移除,其中,宏块421的数据已不再被后续移动估计过程中运用。因此,控制器312将宏块421标示为空宏块,接着控制接口电路314自外部存储器304读取参考帧第5行往左侧扩展的一个宏块451的数据,并将宏块451的数据储存在片内存储器316中原本存放宏块421的空间。控制器312将随着进行运动估计的当前宏块的移动,继续进行搜索窗的对应移动及片内存储器316中片内存储数据320的更新,直到运动估计电路318将当前帧中所有宏块的运动估计皆已执行完毕为止。
图5为依据本发明自外部存储器304下载数据至片内存储器316的方法500的流程图。首先,控制器312检查是否参考帧数据310的前三行宏块已加载至片内存储器316完毕(步骤502)。若参考帧数据310的前三行宏块尚未完全加载至片内存储器316,则控制器312控制接口电路314自外部存储器304加载一个48×16大小的数据至片内存储器316,其中该48×16大小的数据包含位于同一列的三个宏块(步骤504)。亦即,控制器312控制接口电路314持续自外部存储器304下载数据(步骤504),直到参考帧数据310的前三行宏块已完全加载至片内存储器316为止(步骤502)。接着,控制器312检查是否片内存储器316中有一个16×16的单一宏块的空位(步骤508)。若片内存储器316中有一个空宏块,则控制器312控制接口电路314自外部存储器304读取参考帧数据310以加载一个16×16的宏块的数据至片内存储器316中用以存放空宏块的空间(步骤510)。步骤508及510将持续进行以更新片内存储器316中储存的片内存储数据320,直到参考帧数据310的所有的宏块皆已加载完毕为止(步骤506)。在本实施例中一个宏块的大小为16×16个像素,本领域的技术人员可以理解宏块的大小亦可采用例如8×8等其他规格。
图6为依据本发明的使用片内存储器316中储存的数据的方法600的流程图。首先,控制器312检查是否片内存储器316已载入搜索窗中的数据(步骤602)。若片内存储器316已载入搜索窗中的数据,则运动估计电路318便可由片内存储器316读取搜索窗中的数据,以供当前宏块的运动估计之用。接着,控制器312检查是否当前宏块的运动估计执行完毕(步骤604)。若运动估计电路318已对当前宏块执行运动估计完毕,则控制器312继续检查是否当前宏块为本行的最后一个宏块(步骤606)。若当前宏块不为本行的最后一个宏块,则控制器312仅将片内存储数据320中的一个宏块标示为空宏块(步骤608),如图4C、图4D、图4F、图4H所示。若当前宏块为本行的最后一个宏块(步骤606),则控制器312一次将片内存储数据320中的三个宏块标示为空宏块,如图4F与图4G所示。片内存储器316中被标示为空宏块的空间将被控制器312用来储存接口电路314自参考帧数据310读取的更新宏块数据。最后,控制器312检查是否当前宏块为本帧的最后一个宏块(步骤612)。若当前宏块不为本帧的最后一个宏块,则上述步骤602~612重复执行。
以上对本发明的介绍均基于搜索窗包含3×3,即9个巨集块,根据9个巨集块进行中心巨集块的运动估计,本领域的普通技术人员可以理解,上述搜索窗的尺寸并不限于3×3,亦可采用4×4,5×5,6×6,N×N等尺寸,而N取决于运动估计演算法的精度,在每次计算下一个中心宏块的运动估计时,同样可以采用本发明中标志移出的巨集块为空,仅更新移入的巨集块数据。而采用较大的搜索窗相比于传统技术减少的冗余越多,带来的效果越好。当然,如果搜索窗的尺寸N为奇数时,可以确定中心宏块为1个,位置为搜索窗中第(N+1)/2行,第(N+1)/2列,如果搜索窗的尺寸N为偶数时,中心宏块为4个,位置为N/2,N/2+1行和N/2,N/2+1列围成的4个宏块,这4个宏块运动估计结果可以共用同一位置搜索窗计算所得的运动估计结果。同时在运动估计开始前,将片内数据向左右扩展(N-1)/2个(N为奇数)或N/2-1个(N为偶数)。
其中当N为奇数时,搜索窗数据包括参考帧数据中从当前宏块开始左右两边分别第(N-1)/2列的宏块且上下两边分别第(N-1)/2行的宏块,以及上述宏块所包围的方形区域内的宏块。当N为偶数时,搜索窗数据包括参考帧数据中从当前宏块开始左右两边分别第N/2-1列的宏块且上下两边分别第N/2-1行的宏块,以及上述宏块所包围的方形区域内的宏块,其中当N为偶数时,该当前宏块包括共享运动估计结果并形成2×2方形矩阵的4个宏块。
虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,本领域技术人员,在不脱离本发明的精神和范围的前提下,可作若干的更动与润饰,因此本发明的保护范围是以本发明的权利要求为准。

Claims (10)

1.一种视频编解码器,耦接至储存一参考帧数据的一外部存储器,包括:
一接口电路,自该外部存储器的该参考帧数据取得一片内存储数据;
一片内存储器,储存该片内存储数据,其中该片内存储数据包含该参考帧数据的N行宏块,其中N为正整数,N行宏块的尺寸小于该片内存储器;
一运动估计电路,以一搜索窗自该片内存储数据撷取一搜索窗数据,并依据该搜索窗数据进行一当前宏块的运动估计,其中该搜索窗数据包括N2个来自片内存储数据的宏块;以及
一控制器,当该当前宏块移动时,对应地移动该搜索窗于该片内存储数据中的位置,将该片内存储数据中自该搜索窗移出的一宏块标记为一空宏块,并控制该接口电路自该外部存储器的该参考帧数据取得一更新宏块以替换该片内存储器中的该空宏块,
其中该片内存储数据除了包含该参考帧数据的N行宏块外,还包括该参考帧数据往左侧扩展一第一宏块宽度的位于同一列的N个宏块,以及该参考帧数据往右侧扩展该第一宏块宽度的位于同一列的N个宏块,其中当N为奇数时,该第一宏块宽度为(N-1)/2,当N为偶数时,该第一宏块宽度为N/2-1。
2.如权利要求1所述的视频编解码器,其中当该接口电路将该片内存储数据载入该片内存储器时,该接口电路每次自该外部存储器读取于该参考帧数据中同一列的N个宏块以载入该片内存储器,直到该参考帧数据的该N行宏块已完全载入至该片内存储器为止。
3.如权利要求1所述的视频编解码器,其中当N为奇数时,该搜索窗数据包括该参考帧数据中从该当前宏块开始左右两边分别第(N-1)/2列的宏块且上下两边分别第(N-1)/2行的宏块,以及上述宏块所包围的宏块;以及
当N为偶数时,该搜索窗数据包括该参考帧数据中从该当前宏块开始左右两边分别第N/2-1列的宏块且上下两边分别第N/2-1行的宏块,以及上述宏块所包围的宏块,其中当N为偶数时,该当前宏块包括共享运动估计结果并形成一方形矩阵的4个宏块。
4.如权利要求1所述的视频编解码器,其中于该参考帧数据中多个同位宏块具有与该当前宏块相同的位置和数目,该搜索窗数据的该N2个宏块以该多个同位宏块为中心位置,所述N2个宏块为N行N列宏块,且该搜索窗随着该当前宏块的变动每次右移或左移一个宏块列,该视频编解码器更包括:
当该控制器往右移或左移该搜索窗时,位于该搜索窗数据中的一左方或右方宏块列被自该搜索窗中移出,且该控制器将该左方宏块列或该右方宏块列所包含的位于一上方行的一上方宏块设为该空宏块,
其中该接口电路自该参考帧数据取得与该空宏块位于同一列且后N行的一宏块作为该更新宏块,以替换该片内存储器中的该空宏块。
5.如权利要求4所述的视频编解码器,当该控制器往右或向左移动搜索窗时,若该当前宏块为本行的最后一个宏块,该控制器将该行宏块均标记为该空宏块,
其中当该控制器往右或左移动搜索窗时,若该当前宏块为本行的最后一个宏块,当N为奇数时该接口电路自该参考帧数据取得与该当前宏块的最上方宏块以及该最上方宏块左侧或右侧的(N-1)/2个宏块的位于同一列向下间隔N行的宏块作为更新宏块,并使用与该最上方宏块向下间隔N行的宏块扩展该最上方宏块其右侧或左侧的(N-1)/2宏块,以替换该片内存储器中的最上一行的N个空宏块;以及
当N为偶数时,该接口电路自该参考帧数据取得与该当前宏块的最上方宏块以及该最上方宏块左侧或右侧的N/2个宏块的位于同一列向下间隔N行的宏块作为更新宏块,并使用与该最上方宏块向下间隔N行的宏块扩展该最上方宏块其右侧或左侧的N/2-1个宏块,以替换该片内存储器中的N个空宏块。
6.一种运动估计方法,其中一视频编解码器耦接至储存一参考帧数据的一外部存储器,包括一接口电路、一片内存储器、一运动估计电路、以及一控制器,该方法包括下列步骤:
以该接口电路自该外部存储器的该参考帧数据取得一片内存储数据;
以该片内存储器储存该片内存储数据,其中该片内存储数据包含该参考帧数据的N行宏块,其中N为正整数,N行宏块的尺寸小于该片内存储器;
以一搜索窗自该片内存储数据撷取一搜索窗数据,其中该搜索窗数据包括N2个来自片内存储数据的宏块;
以该运动估计电路依据该搜索窗数据进行一当前宏块的运动估计;
当该当前宏块移动时,以该控制器对应地移动该搜索窗于该片内存储数据中的位置,并将该片内存储数据中自该搜索窗移出的一宏块标记为一空宏块;以及
以该接口电路自该外部存储器的该参考帧数据取得一更新宏块以替换该片内存储器中的该空宏块,
其中该片内存储数据除了包含该参考帧数据的N行宏块外,还包括该参考帧数据往左侧扩展一第一宏块宽度的位于同一列的N个宏块,以及该参考帧数据往右侧扩展该第一宏块宽度的位于同一列的N个宏块,其中当N为奇数时,该第一宏块宽度为(N-1)/2,当N为偶数时,该第一宏块宽度为N/2-1。
7.如权利要求6所述的运动估计方法,其中该片内存储数据的取得步骤包括:
当将该片内存储数据载入该片内存储器时,每次自该外部存储器读取于该参考帧数据中同一列的N个宏块以载入该片内存储器,直到该参考帧数据的该N行宏块已完全载入至该片内存储器为止。
8.如权利要求6所述的运动估计方法,其中当N为奇数时,该搜索窗数据包括该参考帧数据中从该当前宏块开始左右两边分别第(N-1)/2列的宏块且上下两边分别第(N-1)/2行的宏块,以及上述宏块所包围的宏块;以及
当N为偶数时,该搜索窗数据包括该参考帧数据中从该当前宏块开始左右两边分别第N/2-1列的宏块且上下两边分别第N/2-1行的宏块,以及上述宏块所包围的宏块,其中当N为偶数时,该当前宏块包括共享运动估计结果并形成一方形矩阵的4个宏块。
9.如权利要求6所述的运动估计方法,其中于该参考帧数据中多个同位宏块具有与该当前宏块相同的位置和数目,该搜索窗数据的N2个宏块以该多个同位宏块为中心位置,所述N2个宏块为N行N列宏块,且该搜索窗随着该当前宏块的变动每次右移或左移一个宏块列,该运动估计方法更包括:
当该控制器往右或左移该移动搜索窗时,位于该搜索窗数据中的一左方或右方宏块列被自该搜索窗中移出,且该控制器将该左方宏块列或该右方宏块列所包含的一上方宏块设为该空宏块,
其中自该参考帧数据取得与该空宏块位于同一列且后N行的一宏块作为该更新宏块,以替换该片内存储器中的该空宏块。
10.如权利要求9所述的运动估计方法,当该控制器往右或向左移动搜索窗时,若该当前宏块为本行的最后一个宏块,将该行宏块均标记为该空宏块,
其中当该控制器往右或左移动搜索窗时,若该当前宏块为本行的最后一个宏块,当N为奇数时,自该参考帧数据取得与该当前宏块的最上方宏块以及该最上方宏块左侧或右侧的(N-1)/2个宏块的位于同一列向下间隔N行的宏块作为更新宏块,并使用与该最上方宏块向下间隔N行的宏块扩展该最上方宏块其右侧或左侧的(N-1)/2宏块,以替换该片内存储器中的最上一行的N个空宏块;以及
当N为偶数时,自该参考帧数据取得与该当前宏块的最上方宏块以及该最上方宏块左侧或右侧的N/2个宏块的位于同一列向下间隔N行的宏块作为更新宏块,并使用与该最上方宏块向下间隔N行的宏块扩展该最上方宏块其右侧或左侧的N/2-1个宏块,以替换该片内存储器中的N个空宏块。
CN2011100559892A 2011-03-08 2011-03-08 视频编解码器及运动估计方法 Active CN102088610B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN2011100559892A CN102088610B (zh) 2011-03-08 2011-03-08 视频编解码器及运动估计方法
US13/406,185 US9648338B2 (en) 2011-03-08 2012-02-27 Video codec and motion estimation method
US15/584,572 US9961354B2 (en) 2011-03-08 2017-05-02 Video codec and motion estimation method
US15/661,539 US10021408B2 (en) 2011-03-08 2017-07-27 Video codec and motion estimation method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2011100559892A CN102088610B (zh) 2011-03-08 2011-03-08 视频编解码器及运动估计方法

Publications (2)

Publication Number Publication Date
CN102088610A CN102088610A (zh) 2011-06-08
CN102088610B true CN102088610B (zh) 2013-12-18

Family

ID=44100184

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011100559892A Active CN102088610B (zh) 2011-03-08 2011-03-08 视频编解码器及运动估计方法

Country Status (2)

Country Link
US (3) US9648338B2 (zh)
CN (1) CN102088610B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109040520A (zh) * 2018-07-20 2018-12-18 西安交通大学 基于数据压缩与搜索范围预测的运动估计存储架构设计方法

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102088610B (zh) * 2011-03-08 2013-12-18 开曼群岛威睿电通股份有限公司 视频编解码器及运动估计方法
CN102547296B (zh) * 2012-02-27 2015-04-01 开曼群岛威睿电通股份有限公司 移动估计加速电路、移动估计方法及环路滤波加速电路
TW201409994A (zh) 2012-08-30 2014-03-01 Novatek Microelectronics Corp 立體視訊的編碼方法與編碼裝置
CN103686190A (zh) * 2012-09-07 2014-03-26 联咏科技股份有限公司 立体视频的编码方法与编码装置
CN104811716B (zh) * 2015-04-29 2018-09-25 深圳市振华微电子有限公司 宏块搜索方法
TWI822863B (zh) * 2018-09-27 2023-11-21 美商Vid衡器股份有限公司 360度視訊寫碼樣本導出

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1929606A (zh) * 2005-09-07 2007-03-14 上海乐金广电电子有限公司 视频解码系统
CN101193307A (zh) * 2006-11-21 2008-06-04 安凯(广州)软件技术有限公司 用于解块滤波参数数据存储和交换的方法
CN101341757A (zh) * 2004-12-16 2009-01-07 英特尔公司 本地宏块信息缓冲器
CN101534443A (zh) * 2009-04-17 2009-09-16 上海广电(集团)有限公司中央研究院 一种帧间预测模式下的内存访问方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6757648B2 (en) * 2001-06-28 2004-06-29 Microsoft Corporation Techniques for quantization of spectral data in transcoding
US7453940B2 (en) * 2003-07-15 2008-11-18 Lsi Corporation High quality, low memory bandwidth motion estimation processor
US7440500B2 (en) * 2003-07-15 2008-10-21 Lsi Logic Corporation Supporting motion vectors outside picture boundaries in motion estimation process
US7865026B2 (en) * 2005-09-07 2011-01-04 National Taiwan University Data reuse method for blocking matching motion estimation
TWI277010B (en) * 2005-09-08 2007-03-21 Quanta Comp Inc Motion vector estimation system and method
KR100834443B1 (ko) * 2007-02-27 2008-06-04 삼성전자주식회사 비디오 코덱을 위한 메모리 구조 및 메모리 액세스 방법
US20100086053A1 (en) * 2007-04-26 2010-04-08 Panasonic Corporation Motion estimation device, motion estimation method, and motion estimation program
TW201035911A (en) * 2009-03-17 2010-10-01 Novatek Microelectronics Corp Video processing method and video processing device
US20100309981A1 (en) * 2009-06-04 2010-12-09 Texas Instruments Incorporated Reuse of a search region in motion estimation of multiple target frames
US8644374B2 (en) * 2009-08-31 2014-02-04 Cisco Technology, Inc. Multiple description coding with spatial shifting
CN102088610B (zh) * 2011-03-08 2013-12-18 开曼群岛威睿电通股份有限公司 视频编解码器及运动估计方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101341757A (zh) * 2004-12-16 2009-01-07 英特尔公司 本地宏块信息缓冲器
CN1929606A (zh) * 2005-09-07 2007-03-14 上海乐金广电电子有限公司 视频解码系统
CN101193307A (zh) * 2006-11-21 2008-06-04 安凯(广州)软件技术有限公司 用于解块滤波参数数据存储和交换的方法
CN101534443A (zh) * 2009-04-17 2009-09-16 上海广电(集团)有限公司中央研究院 一种帧间预测模式下的内存访问方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109040520A (zh) * 2018-07-20 2018-12-18 西安交通大学 基于数据压缩与搜索范围预测的运动估计存储架构设计方法
CN109040520B (zh) * 2018-07-20 2020-06-19 西安交通大学 基于数据压缩与搜索范围预测的运动估计存储架构设计方法

Also Published As

Publication number Publication date
US9961354B2 (en) 2018-05-01
CN102088610A (zh) 2011-06-08
US20120155543A1 (en) 2012-06-21
US9648338B2 (en) 2017-05-09
US20170302942A1 (en) 2017-10-19
US20170324968A1 (en) 2017-11-09
US10021408B2 (en) 2018-07-10

Similar Documents

Publication Publication Date Title
CN102088610B (zh) 视频编解码器及运动估计方法
CN100505878C (zh) 运动画面编码方法及运动画面解码方法
CN102647594B (zh) 一种整像素精度运动估计方法及其系统
EP2104356A1 (en) Method and device for generating an image data stream, method and device for reconstructing a current image from an image data stream, image data stream and storage medium carrying an image data stream
CN101193306A (zh) 运动矢量检测装置和运动矢量检测方法
CN107087171A (zh) Hevc整像素运动估计方法及装置
US20040105497A1 (en) Encoding device and method
CN102291581A (zh) 支持帧场自适应运动估计的实现方法
CN101350928A (zh) 一种运动估计方法及装置
CN103634604A (zh) 一种面向多核dsp运动估计的数据预取方法
US20210233280A1 (en) Encoding device control method and device, and storage medium
CN103841427B (zh) 一种搜索窗的滑动方法及其装置
CN101888554A (zh) 并行流水运动补偿滤波器vlsi结构设计方法
CN105007493B (zh) 基于运动搜索窗的匹配搜索方法和系统
CN102111615B (zh) 直接存储器存取搬移实现视频滤波的方法及系统
US20110110430A1 (en) Method for motion estimation in multimedia images
CN101472172B (zh) 一种在视频解码中滤波前期的数据处理方法及解码器
CN103237211A (zh) 一种基于fpga的视频亚像素亮度插值的方法及其装置
US7197076B2 (en) Method for locating partitions of a video image
CN101729903A (zh) 一种读取参考帧数据的方法、系统和多媒体处理器
CN101656881B (zh) 运动图像编码方法及运动图像解码方法
CN101895767A (zh) Avs帧内预测参考像素储存更新方法
CN102685480A (zh) 一种视频滤波方法及装置
CN101005619A (zh) 一种环路滤波的方法
CN104363455A (zh) 一种适用于hevc标准中帧内预测的参考像素的硬件片上存储方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: KY WIRE ELECTRIC CO., LTD.

Free format text: FORMER OWNER: MEISHANG WEIRUI ELECTRIC COMPANY

Effective date: 20131017

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20131017

Address after: The Cayman Islands, British West Indies

Applicant after: Ky Wire Electric Co., Ltd.

Address before: American California

Applicant before: Meishang Weirui Electric Company

C14 Grant of patent or utility model
GR01 Patent grant
C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20160729

Address after: American California

Patentee after: Intel Corporation

Address before: The Cayman Islands, British West Indies

Patentee before: Ky Wire Electric Co., Ltd.