首页> 中国专利> 通过使用像素值之间的差来处理视频帧的方法和设备

通过使用像素值之间的差来处理视频帧的方法和设备

摘要

提供了一种用于处理视频帧的方法和设备。所述方法包括:将视频帧划分为多个像素块,每个像素块包括参考像素;计算参考像素和与参考像素邻近的像素之间的差值;将计算的差值转换为属于比特深度范围的值;通过使用转换的差值作为符号来执行熵编码。

著录项

  • 公开/公告号CN102986217A

    专利类型发明专利

  • 公开/公告日2013-03-20

    原文格式PDF

  • 申请/专利权人 三星电子株式会社;

    申请/专利号CN201180034171.0

  • 申请日2011-05-09

  • 分类号H04N7/26;

  • 代理机构北京铭硕知识产权代理有限公司;

  • 代理人罗延红

  • 地址 韩国京畿道水原市

  • 入库时间 2024-02-19 18:23:12

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-04-15

    未缴年费专利权终止 IPC(主分类):H04N19/105 专利号:ZL2011800341710 申请日:20110509 授权公告日:20170301

    专利权的终止

  • 2017-03-01

    授权

    授权

  • 2013-06-12

    实质审查的生效 IPC(主分类):H04N7/26 申请日:20110509

    实质审查的生效

  • 2013-03-20

    公开

    公开

说明书

技术领域

与本公开一致的方法和设备涉及一种用于对视频帧进行编码和解码的方 法和设备。

背景技术

随着图像处理和通信技术的发展,通过网络发送和接收的图像数据的大 小已逐渐增大。最近,用于通过无缝流技术再现分辨率为1920×1080的全高 清(full-HD)视频的技术已备受瞩目。海量存储和高质量图像数据的无缝再 现需要宽的带宽,因此已积极地进行对使用60GHz频带的通信技术的研究。 在60GHz频带中的无线电波具有方向性,因此在60GHz通信中的可用带宽 受在光束路径中存在的障碍物的影响。在这种环境中,需要有效地压缩原始 图像数据以确保服务的质量。为此,使用先进视频编码(AVC)/H.264编解 码器。然而,用于图像处理的大多数编解码器需要许多操作,这是复杂的并 且会耗尽许多系统资源。

发明内容

技术问题

具有有限电能容量和操作资源的装置(诸如移动装置)需要相对容易实 现的图像处理技术,并与传统的编解码器相比需要少量的操作,以处理海量 存储和高质量图像数据。

技术方案

本发明提供了一种用于以有效的方式处理视频帧的方法和设备。

有益效果

根据本发明,图像处理与传统的编解码器相比,要更少的系统资源,并 且复杂性被降低。

附图说明

图1是用于解释根据示例性实施例的将视频帧划分为像素块的处理的概 念图;

图2是用于解释根据示例性实施例的对像素块进行转换(编码)的处理 的概念图;

图3是根据示例性实施例的在发送端处理图像数据的处理的流程图;

图4示出根据示例性实施例的在发送端输出的图像数据的格式;

图5是根据示例性实施例的对视频帧进行编码的处理的流程图;

图6是根据示例性实施例的对差值进行转换的处理的流程图;

图7是根据示例性实施例的用于熵编码的码表;

图8A至图8C是用于描述根据示例性实施例的差值的发生概率的变化的 曲线图;

图9是示出根据示例性实施例的通过处理差值获得的结果的表;

图10是根据示例性实施例的对视频帧进行编码的设备的框图;

图11是根据示例性实施例的用于实现对视频帧进行编码的处理的程序 源代码的示例的示图;

图12是根据示例性实施例的对编码视频帧进行解码的处理的流程图;

图13是根据示例性实施例的用于实现对编码视频帧进行解码的处理的 程序源代码的示例的示图;

图14是根据示例性实施例的用于对编码视频帧进行解码的设备的框图。

最佳实施方式

根据示例性实施例的一方面,提供了一种对视频帧进行编码的方法,所 述方法包括:将视频帧划分为多个像素块,每个像素块包括参考像素;计算 参考像素和与参考像素邻近的像素之间的差值;将计算的差值转换为属于比 特深度范围的值;通过使用转换的差值作为符号来执行熵编码。

可针对每一个像素块计算参考像素和与参考像素邻近的像素之间的差 值,针对像素块,计算的差值可被转换为属于比特深度范围的值。

转换计算的差值的步骤可包括:将差值与比特深度的级别值相加;通过 使用比特深度的级别值,对相加的值执行模运算。

执行熵编码的步骤可包括:使用指数哥伦布码,按照转换之前的差值的 发生概率的顺序将转换的差值映射到用于熵编码的符号。

可根据数学图1执行映射转换的差值的步骤,

[数学.1]

Sd=0(d=0)2d(1d2p-1-1)2(2p-d)-1(2p-1d2p-1)

其中,d表示转换的差值,Sd表示映射到d的符号,p表示比特深度。

根据示例性实施例的另一方面,提供了一种存储用于执行对视频帧进行 编码的方法的计算机可读程序的计算机可读记录介质。

根据示例性实施例的另一方面,提供了一种用于对视频帧进行编码的设 备,所述设备包括:帧划分单元,将视频帧划分为多个像素块,每个像素块 包括参考像素;差值计算单元,计算参考像素和与参考像素邻近的像素之间 的差值;差值转换单元,将计算的差值转换为属于比特深度范围的值;熵编 码单元,通过使用转换的差值作为符号来执行熵编码。

差值计算单元可针对每一个像素块,计算参考像素和与参考像素邻近的 像素之间的差值,差值转换单元可将针对像素块计算的差值转换为属于比特 深度范围的值。

差值转换单元可包括:求和单元,将差值与比特深度的级别值相加;模 运算执行单元,通过使用比特深度的级别值,对相加的值执行模运算。

熵编码单元可使用指数哥伦布码,按照转换之前的差值的发生概率的顺 序将转换的差值映射到用于熵编码的符号。

熵编码单元可根据数学图2对转换的差值进行映射,

[数学.2]

Sd=0(d=0)2d(1d2p-1-1)2(2p-d)-1(2p-1d2p-1)

其中,d表示转换的差值,Sd表示映射到d的符号,p表示比特深度。

根据示例性实施例的另一方面,提供了一种对编码视频帧进行解码的方 法,所述方法包括:从编码像素值重建用于熵编码的符号;将重建的符号映 射到属于比特深度范围的值;将映射的值与参考值的像素值相加;通过比特 深度的级别值,对相加的值执行模运算;将作为结果产生的模运算值确定为 包括在编码视频帧中的像素块中与参考像素邻近的像素的像素值。

可根据数学图3执行映射重建的符号的步骤,

[数学.3]

其中,Ds表示符号s的映射值,p表示比特深度。

符号可以是与指数哥伦布码相应的熵编码符号。

根据示例性实施例的另一方面,提供了一种存储用于执行对编码视频帧 进行解码的方法的计算机可读程序的计算机可读记录介质。

根据示例性实施例的另一方面,提供了一种对编码视频帧进行解码的设 备,所述设备包括:符号重建单元,从编码像素值重建用于熵编码的符号; 映射单元,将重建的符号映射到属于比特深度范围的值;求和单元,将映射 的值与参考值的像素值相加;模运算执行单元,通过比特深度的级别值,对 相加的值执行模运算;像素值确定单元,将作为结果产生的模运算值确定为 包括在编码视频帧中的像素块中与参考像素邻近的像素的像素值。

映射单元可根据数学图4对重建的符号进行映射,

[数学.4]

其中,Ds表示符号s的映射值,p表示比特深度。

符号可以是与指数哥伦布码相应的熵编码符号。

具体实施方式

图1是用于解释根据示例性实施例的将视频帧划分为像素块的处理的概 念图。

参照图1,视频数据包括多个视频帧。每个视频帧被划分为多个条带。 例如,1920×1080的一个视频帧可被划分为135个分辨率为1920×8的条带。 每个条带可被划分为多个像素块。例如,1920×8的一个条带可被划分为8 ×8的像素块。在图1中示出2×2的像素块作为简单的示例。

图2是用于解释根据示例性实施例的对像素块进行转换(编码)的处理 的概念图。

通过使用像素之间的像素值差来对根据参照图1描述的处理而确定的像 素块进行编码。参照图2,在2×2的像素块中的四个像素y00、y01、y10和 y11中的一个被确定为参考像素。参考像素不被转换,但其它像素被转换为 像素之间的差值。视频帧在邻近像素之间具有空间相关性。因此,如果通过 使用邻近像素之间的差值来对像素进行编码,则去除冗余,从而提高编码效 率。例如,像素y00被确定为图2中的参考像素。如以下所示确定其它像素 y01、y10和y11的差值。

(1):d01=y01 y00

(2):d10=y10 y00

(3):d11=y11 y10

更具体地说,包括在一个像素块中的像素y00、y01、y10和y11分别被 转换为像素值y00、d01、d10和d11(参考像素y00没有改变)。在这点上, 由于像素y10比参考像素y00更接近于像素y11,因此由于像素y11和y10 之间的高相关性,使用像素y10的像素值而不使用参考像素y00的像素值来 计算像素值d11。

虽然在本示例性实施例中像素y11被转换为像素y10和y11之间的差值, 但是像素y11还可被转换为像素y01与y11之间的差值。

因此,使用以下的处理来恢复转换的像素值:

(4):y01=s01 y00

(5):y10=s10 y00

(6):y11=s11 y10

在这点上,由于像素y10需要用于恢复像素y11,因此在处理(6)之前 执行处理(5)。

图3是根据示例性实施例的在发送端处理图像数据的处理的流程图。

参照图3,在操作301,对视频帧执行像素预测微分变换(PPDT)。在这 点上,PPDT指示参照图2描述的处理。更具体地说,PPDT是通过使用像素值 差来对像素进行编码的处理,并如参照图2所述将包括在一个视频帧中的所 有像素的像素值转换为n个参考像素值(其中,n是像素块的数量)以及所 述n个参考像素值的每个的多个差值。

在操作302,产生分区数据。在这点上,分区是一组像素值,所述一组 像素值是被转换作为属于一个条带的多个像素块中特定位置上进行PPDT变 换的结果。例如,如果条带被划分为如图2所示的2×2的像素块,则包括在 条带中的像素块的位置y00的像素可被设置为分区。

按照这个方法,分区包括位于像素块的相同位置的像素以根据分区执行 选择性的熵编码。在操作303,选择性地对分区执行熵编码。根据分区的选 择性的熵编码可最小化由于信道问题引起的比特误差的影响。例如,如果在 图2的d10发生比特误差,则y10和y11不能被重建。然而,如果在图2的 位置d11发生比特误差,则y10可被重建,因此相对来说d10比d11更重要。 因此,根据信道状态不对包括位于位置d10的像素的分区执行熵编码,从而 减少比特误差的影响。

此外,在根据视频帧的特性的熵编码期间,在特定分区可能发生溢出。 因此,在这种情况下,不对该分区执行熵编码,从而防止溢出的发生。

在操作304,分区被打包。也就是说,头被添加到分区数据,并且针对 每个分区产生包。

在操作305,包括分区包的视频帧数据通过网络被发送到解码器。

图4示出根据示例性实施例的在发送端输出的图像数据的格式。参照图 4,帧包括多个条带,每个条带包括多个分区。

分区包的头(PAL头)可包括视频帧号、条带号、指示是否执行熵编码 的信息、关于像素块的尺寸的信息、指示包括在像素块中的分区中的像素的 位置的像素位置信息等。

图5是根据示例性实施例的对视频帧进行编码的处理的流程图。

参照图5,在操作501,视频帧被划分为多个像素块。

在操作502,计算像素块中参考像素与参考像素的邻近像素之间的差值。 如参照图2所描述的,像素y11被转换为像素y10与y11之间的差值,而不 是参考像素与y11之间的差值。

更具体地说,在操作501和502,对视频帧的像素执行PPDT。通过PPDT 转换的值被转换为适合于有效的熵编码的值。在操作503和504执行这样的 处理。

在操作503,差值被转换为范围[0,2p-1]内的值。在这点上。P表示视频 帧的比特深度。操作503使用于熵编码的符号数量能够被减少。

例如,当视频帧的比特深度为8比特时,像素值具有范围[0,255],差值 具有范围[-255,+255]。因此,需要9比特来表示熵编码符号,还需要511个 码字。然而,在操作503,差值被转换为属于范围[0,2p-1]的值,因此可使用 8比特来表示熵编码符号,从而减少了熵编码所需的操作并降低了实现复杂 度。将参照图6更详细地描述转换方法。

在操作504,转换的值被映射到各熵编码符号。在这点上,转换的值不 是按照其大小的顺序被映射到熵编码符号,而是被重新排列以提高熵编码的 效率。

熵编码是根据符号发生的概率来区分指示符号的码长的编码方法。符号 发生的概率越高,使用的码越小。然而,在操作503转换的值不根据原始差 值的发生概率而排列。因此,转换的值在根据原始差值的发生概率的顺序被 重新排列之后被映射到各熵编码符号。将参照图8A至图8C更详细地描述符 号映射。

在操作505,执行熵编码。

图6是根据示例性实施例对差值进行转换的处理的流程图。

参照图6,在操作601,比特深度的级别值与差值相加。在这点上,比特 深度的级别值是指可由比特深度表示的数量的大小。例如,如果比特深度是 8比特,则比特深度的级别值是256。

在操作602,通过使用比特深度的级别值对相加的值执行模运算。例如, 当差值为-200时,如果比特深度的级别值是256,则在操作601,相加的值 为56。如果通过使用比特深度的级别值256对相加的值56执行模运算(即, 56mod 256),模运算值为56。也就是说,原始差值-200被转换为56。

图7是根据示例性实施例的用于熵编码的码表。在本示例性实施例中, 使用指数哥伦布码。然而,可根据本示例性实施例的其它实施方式使用其它 码。

图8A至图8C是用于描述根据示例性实施例的差值的发生概率的变化的 示图。

如上所述,虽然通过执行图6的处理将所有差值转换为范围[0,2p-1]内 的值,但是由于没有根据差值的高发生概率的顺序排列转换的值,因此结果 值不能被映射到图7的符号。

图8A的曲线图示出当比特深度为8时的差值的一般概率分布。也就是说, 当差值为0时,发生概率最高,距离差值0越远,发生概率越低。

图8B的曲线图示出作为执行图6的处理的结果转换的值的发生概率分 布。根据图8A的曲线图,原始差值-1具有很高的发生概率。与图8A不同, 在图8B中,作为执行图6的处理的结果,原始差值-1被转换为255,因此 255具有很高的发生概率。按这种方法,如果所有差值被转换,则图8A的负 值被转换为图8B中的正值,从而图8A的曲线图被转换为图8B的曲线图。

为了使用图7中示出的指数哥伦布码,符号在0开始,符号值越大,发 生概率越小。符号值越大,码长越长,因此熵编码具有最高的效率。然而, 由于作为执行图6的处理的结果转换的值具有如图8B所示的U或V形的概率 分布,因此如果转换的值被映射到图7的表,则熵编码具有低的效率。

因此,转换的值被映射到符号以使符号具有如图8C所示的概率分布。也 就是说,转换的值按照原始差值的高发生概率的顺序被重新排列,从而重新 排列的值被顺序地映射到符号。例如,转换的值0、255、1、254、2、…可 被顺序地映射到符号0、1、2、3、4…

通过以下的等式来总结这个处理:

数学图5

[数学.5]

Sd=0(d=0)2d(1d2p-1-1)2(2p-d)-1(2p-1d2p-1)

其中,Sd表示将被映射到转换的值d的符号,p表示比特深度。

图9是示出根据示例性实施例的通过处理差值而获得的结果的表。

在本示例性实施例中,比特深度为8,相应地差值具有范围[-255,255]。 例如,通过执行图6的处理,原始差值-255被转换为1,随后被映射到熵编 码符号2。也就是说,与原始差值-255相应的像素最终被编码为1。

图10是根据示例性实施例的用于对视频帧进行编码的设备1000的框图。

参照图10,用于对视频帧进行编码的设备1000包括帧划分单元1001、 差值计算单元1002、熵编码单元1003和差值转换单元1010。

帧划分单元1001接收视频帧数据,并且将接收的视频帧数据划分为多个 像素块。

差值计算单元1002针对每个像素块与参考像素邻近的像素和参考像素 之间的差值。

差值转换单元1010将差值转换为属于比特深度范围[0,2p-1]的值。例如, 如果比特深度为8,则差值被转换为具有比特深度范围[0,2p-1]。参照图10, 差值转换单元1010包括求和单元1011和模运算执行单元1012。

求和单元1011将通过差值计算单元1002获得的差值与比特深度的级别 值相加。模运算执行单元1012通过使用比特深度的级别值,对通过求和单元 1011获得的结果值执行模运算。更具体地说,原始差值(即,输入到差值计 算单元1002的差值)被转换为通过模运算执行单元1012获得的结果值。

熵编码单元1003按照针对原始差值(即,没通过差值转换单元1010转 换的值)的高发生概率的顺序,对通过模运算执行单元1012获得的结果值进 行重新排列,并将重新排列的结果值映射到熵编码符号。在这点上,熵编码 符号可使用与指数哥伦布码相应的符号。通过熵编码单元1003编码的视频帧 数据被打包并通过网络被发送到解码器。

图11是根据示例性实施例的用于实现对视频帧进行编码的处理的程序 源代码的示例的示图。

参照图11,操作1110将差值转换为属于比特深度范围的值。更具体地 说,原始差值Diff与比特深度的级别值(1<<Bitdepth)相加,并且使用比 特深度的级别值对结果值执行模运算。

操作1120将结果值映射到熵编码符号MapDiff。更具体地说,如果结果 值d大于或等于2p-1(p是比特深度),则结果值d被映射到2(2p-d)-1。如 果结果值d大于0并小于或等于2p-1-1,结果值d被映射到2d。同时,熵编 码符号0被映射到0。

图12是根据示例性实施例的对编码视频帧进行解码的处理的流程图。本 示例性实施例的解码处理是参照图5描述的编码处理的逆处理。

参照图12,在操作1201,解码设备从二进制码字重建编码像素值(即, 熵编码符号)。在这点上,熵编码符号可使用与指数哥伦布码相应的符号。

在操作1202,将重建的符号映射到属于比特深度范围[0,2p-1]的值,并 且执行参照图8C描述的映射处理的逆处理。以下面的等式来总结映射处理:

数学图6

[数学.6]

其中,Ds表示将被映射到符号s的值,p表示比特深度。

在操作1203,参考像素的像素值与映射的值相加。如参照图2所描述的, 由于参考像素在不被编码的情况下被发送到发送端,因此可在不对参考像素 进行单独解码的情况下容易地获得参考像素的像素值。

在操作1204,通过使用比特深度的级别值来对结果相加值执行模运算。

在操作1205,模运算结果值被确定为将被解码的像素值,即,在视频帧 的像素块中与参考像素邻近的像素的像素值。

图13是根据示例性实施例的用于实现对编码视频帧进行解码的处理的 程序源代码的示例的示图。

参照图13,处理1310将熵编码符号映射到属于比特深度范围的值。在 这点上,熵编码符号可使用与指数哥伦布码相应的符号。更具体地说,如果 熵编码符号MapDiff为偶数(即,MapDiff%2==0),则符号s被映射到s/2 (MapDiff>>1)。如果熵编码符号MapDiff为奇数,则符号s被映射到2p-(s+1) /2。在这点上,p表示比特深度。熵编码符号0被映射到0。

处理1320通过使用映射的值重建原始像素的像素值。更具体地说,通过 使用比特深度的级别值(1<<BitDepth),对通过将参考像素的像素值PrePix 与映射的值相加而获得的结果值执行模运算。作为结果而产生的模运算值是 在编码之前的像素值。

图14是根据示例性实施例的用于对编码视频帧进行解码的设备1400的 框图。

参照图14,用于对编码视频帧进行解码的设备1400包括符号重建单元 1401、映射单元1402、求和单元1403、模运算执行单元1404和像素值确定 单元1405。

符号重建单元1401从编码像素值提取用于熵编码的符号。

映射单元1402将重建的符号映射到属于比特深度范围的值。

求和单元1403将映射的值与参考像素的像素值相加,并将相加的值输出 到模运算执行单元1404。

模运算执行单元1404通过使用比特深度的级别值,对通过求和单元1403 输出的值执行模运算。

像素值确定单元1405将通过模运算执行单元1404输出的值确定为编码 之前的原始像素值。显示设备通过使用重建的像素值确定像素颜色,并显示 确定的像素颜色。

例如,在具有比特深度8的视频帧中,原始像素值为200,参考值的像 素值为201。通过用于对视频帧进行解码的设备1000的求和单元1011将原 始像素值200与参考值的像素值201之间的参考值-1转换为255。通过执行 对作为结果产生的转换的值255执行模运算(Sd=2(2p-d)-1),作为结果 产生的转换的值255被映射到熵编码符号1。也就是说,如果通过使用指数 哥伦布码执行熵编码,则原始像素值200被编码为010(见图9)。

符号重建单元1401从比特流重建熵编码符号1,并将重建的熵编码符号 1映射到255(Ds=2p-(s+1)/2)。求和单元1403将映射的值255与参考值的 像素值201相加,并输出相加的值456。模运算执行单元1404通过使用比特 深度的级别值256对相加的值456执行模运算,并输出作为结果产生的模运 算值200。像素值确定单元1405将作为结果产生的模运算值200确定为将被 解码的像素的像素值。

示例性实施例可被写为计算机程序,并可在通用数字计算机中被实现, 其中,通用数字计算机使用计算机可读记录介质执行程序。计算机可读记录 介质的示例包括磁存储介质(例如,ROM、软盘、硬盘等)和光记录介质(例 如,CD-ROM或DVD)。另外,可通过单独的一个或多个中央处理单元(CPU) 或一个或多个中央处理单元(CPU)与一个或多个外部存储器的组合来实现图 10的帧划分单元1001、差值计算单元1002、熵编码单元1003、差值转换单 元1010、求和单元1011和模运算执行单元1012。类似地,可通过单独的一 个或多个中央处理单元(CPU)或一个或多个中央处理单元(CPU)与一个或 多个外部存储器的组合来实现图14的符号重建单元1401、模运算执行单元 1404、像素值确定单元1405、映射单元1402和求和单元1403。

虽然已参照本发明构思的示例性实施例具体示出和描述了本发明构思, 但本领域的普通技术人员将理解,在不脱离由权利要求限定的精神和范围的 情况下,可对其进行形式和细节上的各种改变。示例性实施例应该被视为仅 是说明性的,而不是为了限制的目的。因此,本发明构思的范围不是由详细 描述限定的,而是由权利要求限定的,并且在所述范围内的所有差别将被视 为被包括在本发明构思中。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号