视频压缩电路及其方法 技术领域 本发明是有关于一种视频压缩电路及其方法, 且特别是有关于一种可降低电路成 本及降低处理延迟时间的视频压缩电路及其方法。
背景技术 随着网络普及, 影音串流技术越来越广泛应用在消费性产品上。人们对视频质量 的要求也越来高, 故而, 更好的视频压缩技术 (Video Compression) 如 MPEG4、 H.264 等应运 而生, 以便处理 ( 压缩 / 解压缩 ) 更高分辨率的画质。在进行视频压缩时, 要储存输入视频 ( 亦即原始视频 ) 和重建过后视频 ( 亦即压缩后视频 ) 于存储器中。
以目前来说, 外部动态随机存取存储器 (external SDRAM, ESM) 可当作储存空间, 以储存输入视频和重建过后视频。在储存输入视频时, 需用到两块输入视频存储器 (input video memory), 一块存储器空间用于写入输入视频, 另一块存储器空间用于读取输入视 频。以目前来说, 这两块输入视频存储器的大小通常都是一张画面数据的大小。同样地, 在 储存重建后视频时, 也需用到两块重建视频存储器 (reconstruct video memory), 一块存 储器空间用于写入重建后视频, 另一块存储器空间用于读取重建后视频。 以目前来说, 这两 块重建后视频存储器的大小至少都是一张画面数据的大小。
然而, 随着视频分辨率越高, 会用更大容量的存储器来储存视频, 使得存储器占视 频压缩电路的成本比例会随着的增加。如此, 将会造成视频压缩芯片的成本增加。
此外, 在现有技术中, 通常要等到一块输入视频存储器完全填满后 ( 也就是一张 画面完整输入后 ), 才能开始进行压缩, 故而, 其延迟时间过长 ( 亦即, 延迟时间约为一张画 面的时间 ), 导致压缩速率的降低。
故而, 如何有效减低存储器容量及降低延迟时间, 成为视频压缩电路的良窳的关 键。
发明内容
本发明是有关于一种视频压缩电路及其方法, 其能大幅降低输入视频的延迟时间。 本发明是有关于一种视频压缩电路及其方法, 其能大幅减少所需的重建视频存储 器, 让硬件设计成本降低。
根据本发明的一方面, 提出一种视频压缩电路, 包括 : 视频预处理器, 该视频预处 理器暂存输入视频, 当该视频预处理器被填满时, 该视频预处理器转换该输入视频的排列 方式, 以产生宏块数据 ; 宏块数据储存单元, 耦接至该视频预处理器, 以暂存该宏块数据 ; 以及视频处理器, 耦接至该宏块数据储存单元, 用以压缩从该宏块数据储存单元所取出的 该宏块数据, 以产生输出视频。
根据本发明的另一方面, 提出一种视频压缩方法, 包括 : 接收并暂存输入视频 ; 转 换该输入视频的排列方式以产生宏块数据 ; 交替式暂存该宏块数据 ; 以及交替式读出所暂
存的该宏块数据, 压缩所暂存的该宏块数据, 以产生输出视频。 附图说明
为让本发明的上述内容能更明显易懂, 下文特举实施例, 并配合附图作详细说明 图 1 显示根据本发明一实施例的视频压缩电路的方块示意图。 图 2 显示如何将数据由水平依序排列转换成宏块排列。 图 3 显示如何预估每个宏块的生命周期。 图 4 显示根据本发明实施例的视频处理器的方块图。 图 5 显示在本发明实施例中, 对重建画面缓冲存储器 133 的循环写入和读取的示 主要组件符号说明 100 : 视频压缩电路 110 : 视频预处理器 111 : 输入视频缓冲存储器 112 : 水平依序排列转宏块排列单元 120 : 宏块数据储存单元 121、 122 : 宏块数据缓冲存储器 130 : 视频处理器 131 : 视频压缩单元 132 : 存储器控制器 133 : 重建画面缓冲存储器 IN : 输入视频 OUT : 输出视频 201、 202 : 宏块数据 310 : 前一张画面 320 : 目前画面 311、 321 : 宏块数据 312 : 参考宏块 313 : 一排宏块数据 410 : 压缩核心、 411 : AHB 主装置 412 : AHB 仆装置 430 : 读取缓冲存储器 440 : 写入缓冲存储器 450 : AHB 仆装置 RP : 读取指标 WP : 写入指标 RD : 重建画面资料6如下 :
意图。
101854541 A CN 101854543
说明书3/6 页IS : 信息信号具体实施方式
在本发明实施例中, 能大幅降低输入视频存储器与重建视频存储器的所需容量, 故能有效降低视频压缩电路的硬件成本。 此外, 当接收到一张输入画面的一部份后, 就可以 开始进行缩压, 故而, 其能大幅降低输入视频的延迟时间。
现请参考图 1, 其显示根据本发明一实施例的视频压缩电路 100 的方块示意图。 如 图 1 所示, 视频压缩电路 100 至少包括 : 视频预处理器 110、 宏块数据储存单元 120 与视频 处理器 130。视频预处理器 110 至少包括 : 输入视频缓冲存储器 111 与水平依序排列转宏 块排列 (raster to block, RTB) 单元 112。宏块数据储存单元 120 至少包括多个 ( 比如两 个 ) 宏块数据 (macroblock) 缓冲存储器 (MB)121 与 122。视频处理器 130 至少包括 : 视频 压缩单元 131、 存储器控制器 132 与重建画面缓冲存储器 133。
视频预处理器 110 用以暂存输入视频 IN, 并对其进行排列方式的转换, 以输出给 宏块数据储存单元 120。更详细地说, 输入视频 IN 会暂存于视频预处理器 110 内的输入视 频缓冲存储器 111。 输入视频缓冲存储器 111 比如包括 16 条线缓冲存储器 (line buffer)。 以输入视频 IN 的一张画面的大小为 352*288( 亦即, 一张画面共有 288 条线, 每一条线有 352 个像素数据 ) 为例, 输入视频缓冲存储器 111 内的每 1 条线缓冲存储器可储存一张画面 中的一条画面数据。输入视频 IN 以水平排列方式 (raster scan) 输入至输入视频缓冲存 储器 111 内。 当输入视频缓冲存储器 111 被填满之后, RTB 单元 112 会将输入视频缓冲存储器 111 内的数据由水平依序排列转换成宏块排列方式。现请参考图 2, 其显示如何将输入视频 缓冲存储器 111 内的数据由水平依序排列转换成宏块排列。 如图 2 所示, 当输入视频缓冲存 储器 111 第一次被填满后, 每一条线缓冲存储器的最前面 16 个像素数据会被 RTB 单元 112 取出, 以当成宏块数据 (macroblock data)201。接着, 每一条线缓冲存储器的第 17 个~第 32 个像素数据会被 RTB 单元 112 取出, 以当成宏块数据 202。依此方式, RTB 单元 112 即可 将输入视频缓冲存储器 111 内的数据取出, 并排列成宏块排列方式。所取出的宏块数据会 被输入至宏块数据储存单元 120 内。
当一个宏块数据从输入视频缓冲存储器 111 被取出后, 视频预处理器 110 便可再 继续接收输入视频 IN, 并将之覆写于已被取出数据的储存位置。依此方式, 在本发明实施 例中, 视频处理的延迟时间可由现有技术的一张画面时间降低为 16 条线的时间。以输入视 频 IN 的一张画面的大小为 352*288 为例, 在现有技术中, 视频处理的延迟时间为一张画面 (288 条线 ) 的时间, 而在本实施例中, 视频处理的延迟时间为 16 条线的时间, 故而, 可知, 视 频处理的延迟时间降低为现有技术的 16/288 = 1/18。
宏块数据储存单元 120 用以暂存由 RTB 单元 112 所取出的宏块数据, 并将宏块数 据输出给后端的视频处理器 130。 亦即, 由 RTB 单元 112 所取出的宏块数据会交替写入于宏 块数据储存单元 120 内的两个宏块缓冲存储器 121 与 122。 比如, 所取出的第一笔宏块数据 先存于宏块缓冲存储器 121。接着, 所取出的第二笔宏块数据则存于宏块缓冲存储器 122。 之后, 所取出的第三笔宏块数据则存于宏块缓冲存储器 121。
宏块缓冲存储器 121 与 122 被 RTB 单元 112 与视频处理器 130 交替写入与读取。
当 RTB 单元 112 写入宏块数据于宏块缓冲存储器 121 与 122 之一时, 则视频处理器 130 可 从宏块缓冲存储器 121 与 122 中的另一个读取出宏块数据, 以进行视频压缩。如此交替式 读写宏块数据储存单元 120 可避免数据写入与读取发生冲突。
视频处理器 130 用以压缩从宏块数据储存单元 120 所取出的宏块数据, 以产生输 出视频 OUT。在进行视频压缩时, 可参考前一张重建后视频, 来提高压缩比 ( 也就是让输出 视频 OUT 的大小尽量小 )。在本发明实施例中, 为避免发生数据读写冲突及减少存储器的 使用, 以存储器管理技术的数据生命周期 (data life cycle) 来估出重建画面缓冲存储器 133 所需的最小存储器空间。在视频压缩算法中, 最小的数据单位即为宏块 (macroblock)。 故而, 计算出每个宏块的生命周期, 便可算出所需的最小存储器空间。 在计算每个宏块的生 命周期时, 移动估计搜寻范围 (motion estimation search range, MESR) 的大小会影响到 宏块的生命周期。
请参考图 3, 其显示如何预估每个宏块的生命周期。在图 3 中, 310 代表前一张画 面, 而 320 代表目前画面, 311 与 321 代表宏块数据, 312 代表参考宏块。其中, 宏块数据 311 在前一张画面 310 的位置相同于宏块数据 321 在目前画面 320 的位置。在本实施例中, 以 移动估计搜寻范围为 16 且宏块大小为 16*16 做说明, 但本领域的技术人员知道, 本发明并 不受限于此。参考宏块 312 的设定乃是根据宏块数据 (311 或 321) 与移动估计搜寻范围。 以图 3 为例, 参考宏块 312 的范围是宏块数据 311 往上下左右的方向各加 16 点 ( 一点代表 一笔像素资料 ), 故而, 以图 3 为例, 参考宏块 312 的大小为 48*48。 在重建目前画面 320 的目前宏块数据 321 时, 会参考前一张画面 310 的参考宏块 312, 并找出参考宏块 312 内的最相似宏块数据 ( 其最相似于目前宏块数据 321), 依此来重 建宏块数据 321。找出最相似宏块数据的方式在此可不特别限定之。当找出最相似宏块数 据时, 可得到另一参数 : 动态向量 (motion vector), 其代表此最相似宏块数据的相对位置 ( 相对于宏块数据 311 或 321 的位置 )。
请再次参考图 3, 当跟目前画面 320 的目前宏块数据 321 位于同一排内的所有宏块 数据都已参考完前一张画面 310 的宏块数据 311 的下方一排宏块数据 313 后, 前一张画面 310 的此排宏块数据 313 才能被覆写。由此可知每个宏块的生命周期为一张画面时间加上 一排宏块数据时间。 所以, 如果在某一时间点写入某一宏块的数据于存储器的某一个位置, 那存储器的这一个位置需在一张画面时间加上一排宏块数据时间后才能被覆写。 因此要重 建画面时所需的最小储存空间为 (1) 储存一张画面所需的大小加上 (2) 储存一排宏块数据 所需的大小。以公式表示如下 :
MS = FS+MESR*RN/X
其中, MS 代表重建画面缓冲存储器 133 的大小, FS 代表储存一张画面所需的存储 器空间, MESR 代表移动估计搜寻范围, RN 代表一排宏块数据的大小, 而 X 则为宏块数据的高 度。
请参考表 1 以更进一步说明本实施例的功效。表 1 为在不同的移动估计搜寻范围 (MESR) 下, 本实施例与现有技术所需的重建画面缓冲存储器的比较。 由表 1 可看出, 在本发 明实施例中, 重建画面缓冲存储器所需的容量大为减少。
表1
8101854541 A CN 101854543说MESR 16 32 64 现有技术 ( 字节 ) 2764800 2764800 2764800明书节省比率 49% 48% 47%5/6 页本实施例 ( 字节 ) 1413120 1443840 1474560现请参考图 4, 其显示根据本发明实施例的视频处理器 130 的方块图。如图 4 所 示, 视频处理器 130 中的视频压缩单元 131 至少包括 : 压缩核心 410、 AHB(advanced high performance bridge, 高效能总线桥接器 ) 主装置 411、 AHB 仆装置 412、 读取缓冲存储器 (read buffer, RB)430 与写入缓冲存储器 (write buffer, WB)440。存储器控制器 132 还包 括 AHB 仆装置 450。
压缩核心 410 用以进行视频压缩。当进行视频压缩以产生重建后画面时, 会参考 前一张重建后画面。所以, 图 3 所示的操作是由压缩核心 410 进行。AHB 主装置 411 接口 于存储器控制器 132。压缩核心 410 要写入至重建画面缓冲存储器 133 的重建画面数据 RD 乃是通过 AHB 主装置 411 而送至存储器控制器 132。同样地, 由重建画面缓冲存储器 133 所 读出的重建画面数据 RD( 其当成重建的参考数据 ) 乃是通过 AHB 主装置 411 而送至压缩核 心 410。通过 AHB 仆装置 412, 压缩核心 410 可接收由外界所输入的参数, 以设定压缩核心 410。
因为重建画面缓冲存储器 133 的容量相当大且其操作频率比较慢, 无法和压缩核 心 410 一样快, 故而, 为避免压缩核心 410 需经常等待重建画面缓冲存储器 133 的数据读写 而严重影响到执行效率 (performance), 在本实施例, 会预先读写 (pre-fetch) 重建画面缓 冲存储器 133。由重建画面缓冲存储器 133 所预先读出的数据会先储存于读取缓冲存储器 430 内, 之后才送至压缩核心 410。 同样地, 压缩核心 410 要写入于重建画面缓冲存储器 133 的数据则预先储存于写入缓冲存储器 440, 之后才送至重建画面缓冲存储器 133。
为预先读写重建画面缓冲存储器 133, 存储器控制器 132 接收由压缩核心 410 所送 出的信息信号 IS, 其代表压缩核心 410 目前正在处理 ( 读 / 写 ) 宏块数据的相关信息。在 本实施例中, 信息信号 IS 例如是但不限于, 动态向量、 宏块数据编号等。
在进行数据读取时, 当存储器控制器 132 收到信息信号 IS 后, 存储器控制器 132 会算出压缩核心 410 所需要的下一笔数据 ( 也就是前一张重建画面 ) 在重建画面缓冲存储 器 133 的读取位置 ( 亦即读取指针 RP), 并将此笔数据先行读出并加载于读取缓冲存储器 430 内, 之后将此笔数据当成重建画面数据 RD 而送至压缩核心 410。
同样地, 在进行数据写入时, 当存储器控制器 132 收到信息信号 IS 后, 存储器控制 器 132 会算出压缩核心 410 所压缩后的目前数据 ( 也就是目前重建后画面 ) 在重建画面缓 冲存储器 133 的写入位置 ( 亦即写入指标 WP), 并将此笔数据 ( 由压缩核心 410 所送出的重 建画面数据 RD) 先写入至写入缓冲存储器 440, 之后才送至重建画面缓冲存储器 133。如果 重建画面缓冲存储器 133 为单一埠的缓冲存储器, 则写入动作与读出动作要依序且错开进 行。当然, 重建画面缓冲存储器 133 可为双埠的缓冲存储器, 故而, 写入动作与读出动作可 同时进行。
存储器控制器 132 的 AHB 仆装置 450 可接收 / 传送数据于压缩核心 410。 符合 AHB 总线 (AHB bus) 定义的压缩核心都可当成本实施例的压缩核心 410。
图 5 显示在本发明实施例中, 对重建画面缓冲存储器 133 的循环写入和读取的示 意图。在循环写入和读取重建画面缓冲存储器 133 时, 存储器控制器 132 会转换压缩核心 410 所送出的读 / 写地址, 据以产生读写指示 RP 与 WP。也就是说, 在本实施例中, 重建画面 缓冲存储器 133 当成环状缓冲存储器 (ring buffer)。读取时, 要根据读取指标 RP, 从重建 画面缓冲存储器 133 内读出前一张重建后画面, 以送给压缩核心, 当成参考用。而写入时, 要根据写入指标 WP, 将目前的重建后画面由写入缓冲存储器 440 载入至重建画面缓冲存储 器 133 内。
综上所述, 本发明上述实施例所公开的视频压缩电路, 具有多项优点, 以下仅列举 部分优点说明如下 :
1. 减少暂存输入视频所需的存储器。
2. 画面延迟时间由一张画面时间缩短到 16 条线的时间。
3. 减少重建画面缓冲存储器的容量, 利用良好的存储器管理, 本实施例所用的重 建画面缓冲存储器的容量约为现有技术的一半。 综上所述, 虽然本发明已以实施例描述如上, 但其并非用以限定本发明。 本发明所 属技术领域的技术人员, 在不脱离本发明的精神和范围内, 可作各种的更动与润饰。因此, 本发明的保护范围应以后附的权利要求所界定的范围为准。