CN111277841A - 视频通信系统中的错误隐藏技术 - Google Patents
视频通信系统中的错误隐藏技术 Download PDFInfo
- Publication number
- CN111277841A CN111277841A CN201910213470.9A CN201910213470A CN111277841A CN 111277841 A CN111277841 A CN 111277841A CN 201910213470 A CN201910213470 A CN 201910213470A CN 111277841 A CN111277841 A CN 111277841A
- Authority
- CN
- China
- Prior art keywords
- block
- current
- data
- slice
- current block
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
- H04N19/89—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder
- H04N19/895—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder in combination with error concealment
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
- H04N19/159—Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/174—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/184—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/577—Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/625—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
- H04N19/86—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Discrete Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明提出了一种用于在视频通信进行错误隐藏的方法、设备和系统,包括由处理器在编码过程中确定用于错误隐藏的视频序列的当前图像的当前片的当前块,为当前块确定恢复数据,其中恢复数据包括下列至少其中之一:对当前块执行的离散变换的系数和与相似于当前块的第一个块相关的相似性数据,并且第一个块所处的切片与当前切片不相同,并通过网络发送当前块和恢复数据,其中当前块作为带内数据发送,恢复数据作为带外数据发送。
Description
技术领域
本发明涉及视频通信技术,具体领域为基于网络的视频通信系统中的错误隐藏技术。
背景技术
在现代通信系统中,视频数据可通过互联网在终端设备之间或“终端”之间传输。例如,在实时视频通信中,视频数据的发送方可以是最终用户终端(如移动设备或个人计算机)。在视频点播服务中,视频数据的发送方可以是云中的服务器,而视频数据的接收方通常是另一个最终用户终端。
视频数据通常被编码、压缩和打包为一组数据包在网络上传输。由于网络中发生的抖动,数据包在传输过程中可能被丢失,或在到达接收方时受损或被破坏。在这种情况下,接收方无法正确解码视频数据,从而导致视频伪像或通信中断。对于使用MPEG-2、H.264或H.265等编码标准编码的视频,如果切片发生丢包或比特受损,则该切片只能被部分解码。如果该部分解码的图像是用作解码后续图像的参考图像时,则将导致伪像的传播和累积。
错误隐藏技术可用于恢复丢失或损坏的视频数据。但是如果丢失和损坏太严重,或其他数据非常依赖于被丢失或损坏的数据,那么在网络抖动严重的情况下错误隐藏的作用也会受到影响。
发明内容
下文将阐述在视频通信中实现错误隐藏的方法、设备和系统。
一方面,本文公开了一种在视频通信的编码过程中实现错误隐藏的方法。该方法包括在编码过程中由处理器确定需执行错误隐藏的视频序列的当前图像的当前片的当前块,确定当前块的恢复数据,其中恢复数据包括对当前块执行离散变换的系数和与当前块相似的第一个块相关的相似性数据两者至少其中之一,并且第一个块位于当前切片之外的第一个切片中,然后通过网络发送当前块和恢复数据,其中当前块作为带内数据发送,恢复数据作为带外数据发送。
另一方面,本文也公开了一种在视频通信的解码过程中实现错误隐藏的方法。该方法包括由处理器接收带内数据形式的视频流和带外数据形式的恢复数据,其中恢复数据用于对视频流中当前图像的当前片的当前块执行错误隐藏。如已知当前块的数据包在视频流中被丢失或损坏,则从恢复数据中确定下列至少其中之一:对当前块执行离散变换的系数和与当前块相似的第一个块相关的相似性数据,其中第一个块所在的第一个切片与当前切片不相同。然后使用恢复数据对当前块进行恢复。
再一方面,本文还公开了一种在视频通信中实现错误隐藏的设备。该设备包括处理器和存储器。存储器耦合到处理器上并且被配置为可存储指令,当处理器(如处理器108)运行该指令时可在编码过程中从视频序列的压缩图像中对第一幅图像进行重建,其中第一幅图像中包含第一个切片,第一个切片中包含第一个块。为第一个块确定用于错误隐藏的恢复数据,该恢复数据包括下列数据至少其中之一:对当前块执行离散变换的系数、与相似于第一个块的第二个块相关的相似性数据、与相似于第一个块的第三个块相关的相似性数据,其中第二个块在第一幅图像中,第三个块在从压缩图像中重建的第二幅图像中。将恢复数据压缩为压缩恢复数据,并通过网络发送第一幅图像和压缩的恢复数据,其中第一幅图像作为带内数据发送,压缩恢复数据作为补充增强信息(SEI)数据发送。
附图说明
在阅读以下详细描述时参考附图将有助于更好地理解本发明的内容。需要强调的是,根据惯例,图示中各个部分并不是按比例绘制的。相反,为表述清楚起见,已对各个不同部分的尺寸进行任意扩大或缩小。
图1是根据本发明实施例所绘制的一个视频通信系统的示例图。
图2是一个视频流中图像的示例图。
图3是根据本发明实施例所绘制的一个编码流程示例图。
图4是根据本发明实施例所绘制的一个解码流程示例图。
图5是根据本发明实施例所绘制的在视频编码过程中执行错误隐藏的一个示例流程图。
图6是根据本发明实施例所绘制的在视频解码过程中执行错误隐藏的一个示例流程图。
图7是根据本发明实施例所绘制的在视频编码过程中执行错误隐藏的另一个示例流程图。
图8是根据本发明实施例所绘制的一个用于错误隐藏的相似性向量的示例图。
图9是根据本发明实施例所绘制的另一个用于错误隐藏的相似性向量的示例图。
图10是根据本发明实施例所绘制的两个用于错误隐藏的相似性向量的示例图。
具体实施方式
视频数据可以以其原始形式存储或者被转换成媒体流。视频流可包括时间序列数据(例如:包含多个图像或帧的视频序列)、视频流的特征提取残差(例如:视频序列中的当前图像经帧间预测后的残差图像),或者在变换域中视频流的等量值(例如:变换和/或量化的系数)。视频流可被编码(或“压缩”)成压缩视频流(如视频比特流)在网络上传输。压缩视频流可以在网络(如互联网)上以数据包的形式(或简称为“包”)进行传输。
在本发明中,用于视频编码的视频数据的逻辑单元(或称“处理单元”)被称为“块”。可对块进行分组,从而形成图像的特定区域或分区。换句话说,图像可被划分为一个或多个区域或分区,并且每个区域或分区可包含一个或多个块。根据不同的视频编码标准,这样的区域或分区可被称为“切片”、“层片”或任何其他名称。为便于解释而不引起歧义,这种区域或分区在下文中被称为“切片”,除非另有明确说明。
在不同的视频编码标准中,这些块可被称为“预测块”(PU)、“宏块”(MB)、“编码单元”(CU)、“编码树单元”(CTU)或“编码树块”(CTB)。在一些视频编码标准中,可进一步将块划分为视频数据的多个逻辑子单元以用于视频编码。例如,在MPEG-2中逻辑单元是宏块(MB)。MB可以包括YCbCr色彩空间中的逻辑子单元,如亮度分量Y、色度分量Cb和色度分量Cr。
在实现错误隐藏中可使用重传策略或冗余策略。在重传策略中,可从发送方同时发送当前块的一个或多个副本到接收方,或者在发生数据丢失或损坏时,发送方根据接收方的请求重新发送数据。但是在有限带宽网络中,重传策略可能会占用额外的带宽并导致网络流量堵塞,这可能加剧丢包或数据损坏的情况,从而导致接收方接收重传的数据包更加延迟。
在冗余策略中,对于视频流的当前图像的当前块,可使用空间上与当前块相邻的块的内容或与视频流的先前图像中当前块具有相同定位的块的内容来确定恢复数据,用于恢复在传输过程中丢失或损坏的视频数据。例如,恢复数据可以包括在搜索范围内与当前块相似的一个块的压缩内容。但是如果空间上相邻的块与当前块在同一切片中,则当切片的视频数据丢失或损坏时,恢复数据也很可能被丢失或损坏。如果只使用具有相同定位的块来确定当前块的恢复数据,则恢复的数据与当前块的相似度也势必受到影响。
本发明展示了一种实现错误隐藏的方法、设备和系统,该技术采用另一个切片中的另一个块的内容来确定用于对当前块执行错误隐藏的恢复数据。恢复数据作为带外数据通过网络传输,而压缩视频数据则作为带内数据传输。在一些视频编码标准(如H.264或H.265)中,带外数据可以表示为补充增强信息(SEI)消息。恢复数据可以设计得很小,以便实现带外数据传输。通过使用其他切片的内容来确定恢复数据,有助于增强恢复数据的错误恢复能力。通过将恢复数据作为小型的带外数据发送,有助于减轻额外网络带宽的使用。
图1是根据本发明实施例所绘制的用于视频通信的系统100的示例图。如图1所示,系统100可包括多个设备和网络,诸如设备102、设备104和网络106。该设备可以是微型计算机、大型计算机、超级计算机、通用计算机、特殊用途或专用计算机、集成计算机、数据库计算机、远程服务器计算机、个人计算机、笔记本电脑、平板电脑、手机、个人数据助理(PDA)、可穿戴计算设备等一台或多台计算机的任何配置,或由计算服务提供商提供的计算服务(例如web主机或云服务)来实现。在一些实现中,计算设备可以由多组计算机的形式来实现,各个计算设备可位于不同地理位置,并通过网络等进行彼此间的通信。虽然某些操作可以由多台计算机共同完成,但在一些实现中,不同的计算机会被分配不同的操作。在一些实现中,系统100可以使用具有计算机程序的通用计算机或处理器来实现,在运行计算机程序时可执行本文描述的相应的方法、算法和/或指令。另外,也可以使用专用计算机或处理器,配备专用硬件设备用以执行本文描述的任何方法、算法或指令。
设备102可以包括处理器108和存储器110。处理器108可以是能够操作或处理信息的任何类型的一个或多个设备。“信号”、“数据”和“信息”等术语可互换使用。处理器108可以包括中央处理器(如中央处理器CPU)、图形处理器(如图形处理器GPU)、知识产权(IP)内核、专用集成电路(ASIC)、可编程逻辑阵列、光处理器、可编程逻辑控制器、微控制器、微处理器、数字信号处理器等一个或多个的任意组合或任何其他适用的电路。处理器108还可分布在多个机器或设备(每个机器或设备带有一个或多个处理器)上,这些机器或设备可以直接耦合或通过网络(如局域网)实现互联。
存储器110可以是能够存储代码和数据的任何暂时或非暂时性的设备,这些代码和数据可由处理器(通过诸如总线)访问。本文所述的存储器110可以是随机存取存储器设备(RAM)、只读存储器设备(ROM)、光盘或磁盘、硬盘驱动器、固态驱动器,闪存驱动器、安全数字(SD)卡、记忆棒、紧凑型闪存(CF)卡或任何合适类型的存储设备的任意组合。存储器110也可以分布在多个机器或设备上,诸如基于网络的存储器或基于云的存储器。存储器110可以包括数据、操作系统和应用程序。数据可以是用于处理的任何数据(如音频流、视频流或多媒体流),应用程序可以是允许处理器108执行指令以生成控制信号的程序,这些控制信号可用于执行下文描述的方法中所述的各项功能。
在一些实现中,设备102还可以包括辅助存储设备(如外接存储设备)。如使用上述辅助存储设备,则可在高处理需求时提供额外的存储空间。辅助存储设备可以是任何合适的非暂时性计算机可读介质形式的存储设备,如只读存储器设备(ROM)、光盘或磁盘、硬盘驱动器、固态驱动器,闪存驱动器、安全数字(SD)卡、记忆棒、紧凑型闪存(CF)卡等。此外,辅助存储设备既可以是设备102的组件,也可以是通过网络访问的共享设备。在一些实现中,存储器110中的应用程序可以全部或部分地存储在辅助存储设备中,并根据处理需要加载到存储器110中。
设备102还可以包括输入/输出(I/O)设备112。I/O设备112可以是任何类型的输入设备,如键盘、数字小键盘、鼠标、轨迹球、麦克风、触敏设备(如触摸屏幕)、传感器或手势感应输入设备。I/O设备112也可以是向用户传输视觉、听觉或触觉信号的任何设备,如显示器、触敏设备(例如触摸屏)、扬声器、耳机、发光二极管(LED)指示灯或振动电机等。例如,I/O设备112可以是用于呈现图形数据的显示器,如液晶显示器(LCD)、阴极射线管(CRT)、LED显示器或有机发光二极管(OLED)显示器。在一些情况下,输出设备也可以作为输入设备,如触摸屏。
设备102还可以包含通信设备114通过网络106来与另一个设备进行通信。网络106可以是任何类型的通信网络的任意组合,如无线网络或有线网络。无线网络可包括Wi-Fi网络、蓝牙网络、红外通信网络、近场通信(NFC)网络、蜂窝数据网络等。网络106可以是局域网(LAN)、广域网(WAN)、虚拟专用网络(VPN)或互联网。网络106可包括多台服务器计算机(简称“服务器”)。服务器可以相互连接,也可以连接到终端用户设备,例如设备102和设备104。通信设备114可以包括用于发送和接收数据的任何数量设备的任意组合,如应答器或收发器设备、调制解调器、路由器、网关、有线网络适配器、无线网络适配器、蓝牙适配器、红外适配器、NFC适配器、蜂窝数据天线等。
设备104与设备102类似,配备了处理器116、存储器118、I/O设备120和通信设备122。设备104的元件116-122的实现可类似于设备102中的108-114。例如,设备102可以用作解码器设备(简称为“解码器”),而设备104可以用作编码器设备(简称为“编码器),反之亦然。设备102可通过网络106与设备104通信。设备102和104还可与连接到网络106的其他设备(未示出)进行通信。应注意的是,设备102和104的部分功能并不必以相同的方式来实现。
还应注意的是,设备102和104的部件或组件以及系统100并不局限于图1中所示的那些的元件。在不脱离本发明的范围的情况下,设备102和104以及系统100可以包括更多或更少的部件、组件、硬件或软件模块,用于执行编码和解码相关或之外的其他各种功能。
在对视频流(也称为“视频序列”)进行编码时,可以使用同一幅图像内的信息或不同图像之间的信息进行预测从而为视频流的每幅图像进行编码,这种预测分别被称为“图像帧内预测”(或“帧内预测”)和“图像帧间预测”(或“帧间预测”)。在帧间预测中,在至少两幅不同图像之间可以执行运动估计(ME)和运动补偿(MC)。使用帧内预测编码的图像可以被称为“I帧”,而使用帧间预测编码的图像可以被称为“P帧”。在解码时,可以在不参考其他图像的情况下解码I帧。解码P帧则可以将其他图像作为参考(称为“参考图像”或“参考帧”)。参考图像可以是I帧或其他P帧。编码器可以为被编码的图像(称为“当前图像”)确定预测模式。当图像被解码时(也称为“当前图像”),解码器可以根据从当前图像的报头处接收和提取的信息来确定使用哪种预测模式。关于视频流的结构详见图2中的描述。关于视频编码和解码的过程详见图3-4中的描述。
图2是视频流200的示例图。视频流200可以是用于编码的视频源流,或是将视频比特流解码而成的视频流。时间线如图2所示,其中箭头表示时间的方向。视频流200可以包括沿时间轴的一系列图像,其中包括图像202-208。例如,图像208可以是编码流程中的当前图像。如果使用帧间预测对图像208进行编码或解码,则采用的参考图像可以在时间上早于图像208(当图像208是P帧时),或是晚于图像208(当图像208是B帧时),也可以既早于图像208也晚于图像208(当图像208是B帧时)。为便于解释而不引起任何歧义,下文描述中将以P帧作为示例。但应当指出的是,下文描述中参考图像的时间位置并不局限于此,也同样可以应用于B帧,除非另有明确说明。例如,如果图像208是P帧,则其参考图像可以是图像206、204、202,也可以是时间线中早于图像208的任何图像。
视频流200中的每幅图像都可被划分成多个块。运动估计和运动补偿可以在块的基础上执行。块可以是任意尺寸,例如8×8、8×16、16×16、32×32、64×64,也可以是任何任意形状,以便对图像中的区域进行编码。通常,如果图像中某个区域具有较多细节,则处理单元和子单元的尺寸往往较小。例如在图2中,图像206显示有4×4个块,其中包括块210。块的边界以虚线表示。
视频流200中的图像也可被划分成切片。例如,图像206可以被分成四个切片212-218,每个切片分成四个块。切片212-218之间可以具有边界220-226,以实线表示。切片可用于并行处理。可以对切片同时且独立地进行编码。例如,可以并行处理切片212-218,以便提高视频编码的效率。以此类推,在解码器处也可对切片进行并行解码。I帧的切片可以是I切片,而P帧的切片则可以是P切片。
应注意的是,本文所述的切片可以包括任何数量的任何块的任意组合,而并不限于上述示例。例如,切片可以是非矩形,比如包括几行的多个块。又如,切片也可包括以非连续方式分组的块,例如两个或两个以上非连续块组。再如,第一个切片的一部分可以包含在第二个切片的一部分之内。另如,第一个切片也可以被第二个切片包围(如第一个切片可以在第二个切片之内)。
还应注意的是,切片的划分或分段在视频流中可以改变,也可以不变。换句话说,切片之间的边界可以改变也可以不变。在一些实现中,视频流的图像可以被划分为相同模式的切片。在一些实现中,切片的划分模式可以随着视频流中图像组的更迭而改变。
图3是根据本发明实施例所绘制的对视频流302进行编码的编码流程300的流程图。视频流302可包括视频序列。流程300可以实现为图1系统100中的软件和/或硬件模块。例如,流程300可以被实现为包括在编码器(如图1中的设备104)中的模块。流程300包括操作304-308以从视频流302产生压缩视频流314作为输出。在实现图5和图7所述的错误隐藏方法时,还可以对示例编码流程300(整个过程或其中一些阶段)做进一步修改。在一些实现中,实现错误隐藏也可能并不需要流程300。
如图3中的流程300所示,编码器接收了视频流302。本文所指的“接收”一词可以指以任何方式接收、输入、获取、检索、获得、读取、访问或采用任何操作以输入信息或数据。例如,视频流302可以是包含一系列视频图像(如当前图像)的视频序列。
通常,编码过程可包括以下阶段或操作中的一个或多个:预测阶段(如用于帧内预测或帧间预测)、变换阶段(量化或非量化)和熵编码阶段。上述阶段可用于在编码过程的正向路径中将视频流302输出为压缩视频流314,如图3中的实线连接线所示:帧内/帧间预测阶段304、变换和/或量化阶段306以及熵编码阶段308。
在帧内/帧间预测阶段304,对于帧内预测,可以使用当前图像中先前编码的块来对当前图像的当前块进行预测。对于帧间预测,可以使用先前编码的图像作为参考数据来对当前图像的当前块进行预测。先前编码的图像可以包括先前编码和重建的图像(也称为参考图像)等。例如,可以使用当前图像和一个或多个参考图像来执行运动估计和补偿以生成运动数据。然后可再对残差(即预测块和当前块之间的差)执行变换、量化和/或熵编码操作。
在一些实现中,也可以在熵编码阶段308之前附加应用一个环路滤波器(未示出)。环路滤波器可减少由视频压缩导致的失真(如“块效应”)。其他用于对视频比特流进行解码的信息也可被熵编码,这些信息包括:预测模式、变换类型、量化级别和环路滤波器参数(如滤波器强度)等。
在一些实现中,流程300还可以包括重建路径来对参考数据进行重建,用于预测未来图像。例如,重建路径(图3中表示为虚线连接线)可以包括以下阶段:去量化和/或逆变换阶段310和重建阶段312。阶段310和312可确保编码器(如图1中的设备104)和解码器(如图1中的设备102)使用相同的参考数据进行预测。在一些实现中,可以在重建阶段312之后附加应用一个环路滤波器(未示出);而在另一些实现中,也可以在不使用环路滤波器的情况下使用重建的图像。重建可以类似于解码流程中的重建阶段(如图4中的阶段410)。
应注意的是,对视频序列进行编码也可以使用编码过程的其他变体形式。编码过程可以按照不同的顺序进行处理,也可组合为更少的阶段,或者是分成更多的阶段。例如在一些实现中,量化或变换可以是非必需的。比如说,基于非变换的编码器可以在不进行变换的情况下量化残差数据。
图4是根据本发明实施例所绘制的对压缩视频流进行解码的流程400示例图。流程400可以实现为图1系统100中的软件和/或硬件模块。例如,流程400的部分或所有阶段可以由解码器(如设备102)实现为包括在系统100中的软件或硬件模块。解码器可由存储在存储器(如存储器110)中的程序代码实现。程序代码可包括计算机可读指令,当由处理器(如处理器108)执行时使得解码器以图4中描述的方式解码压缩视频流。解码器还可以实现为包括在设备(如设备102)中的专用硬件。例如,解码器可以是硬件解码器。流程400包括操作404-410,用于将压缩视频流402重建为视频流412。此外,在实现下图6中所述的错误隐藏机制时,可以对示例流程400的整个过程或部分阶段进行修改。
通常在解码压缩媒体流时,解码过程类似于视频编码过程的重建路径。流程400类似于上述流程300的重建路径,可以包括以下阶段:熵解码阶段404、去量化和/或逆变换阶段406、帧内/帧间预测阶段408和重建阶段410。重建的图像可以用作未来的参考数据,用于处理当前图像之后的后续图像。重建的图像不仅可在媒体流412中输出,还可以存储在缓冲器中(如图1中的存储器110)以用作未来的参考数据。在一些实现中,可以使用环路滤波器(未示出)对重建的图像进行滤波。也可采用流程400的其他结构变体对压缩视频流402进行解码。
图5是根据本发明实施例所绘制的在视频编码中执行错误隐藏的一个示例流程500的流程图。流程500可以实现为图1系统100中的软件和/或硬件模块。例如,流程500可以实现为网络106中服务器的软件模块。流程500还可以实现为终端用户设备(如设备102)中的软件模块。软件模块可作为由处理器(如处理器108)执行的指令和/或数据存储在存储器(如存储器110)中。流程500也可以在硬件中实现为专用芯片,存储由专用芯片执行的指令。例如,专用芯片可以包括特定的硬件加速模块。
应注意的是,流程500可以集成在视频编码过程中,也可以作为视频编码中的一个独立过程(如流程300)。也就是说,流程500的操作可以实现为流程300的一个附加或集成操作,也可以实现为与流程300分开执行的独立操作。如果将流程500实现为独立于流程300,则它可以在执行流程300之前、同时或之后实施。
在操作502处,在编码过程中确定将对视频序列中当前图像的当前片的当前块执行错误隐藏。当前块可以由处理器(如处理器108或116)进行编码。例如,可通过流程300中的阶段304-312对该块进行编码。在一些实现中,根据不同的视频编码标准,当前块可以是MB、CU、CTU或用于视频编码的视频数据的任何逻辑单元。例如,在采用MPEG-2或H.264编码标准时,该块可以是MB。再如,在采用H.265标准时,该块可以是CU、CTU或CTB等。
还应注意的是,用于错误隐藏的图像分区方案可以独立于编码当前图像的图像分区方案。也就是说,用于编码当前图像的块和切片的大小、形状和数量可以与适用于错误隐藏的块和片的大小、形状和数量各不相同。例如,用于上述两种分区方案的数据粒度可以是不同的。例如,在编码当前图像时可以使用大小为8×8的块,而在对当前图像执行错误隐藏时使用大小为16×16的块。执行错误隐藏时也可以使用非标准尺寸的块。又如,可以将当前图像划分为第一数量(如3个)的切片进行编码,而将其划分为第二数量(如4个)的切片来执行错误隐藏。
在操作504处,确定当前块的恢复数据。在一些实现中,恢复数据可以包括与第一个块相关的相似性数据,该第一个块与当前块相似。在一些实现中,恢复数据也可以包括与当前块相关的非相似性数据。例如,非相似性数据可以包括对当前块执行离散变换的系数。在一些实现中,恢复数据还可以包括与第一个块相关的相似性数据以及非相似性数据(如对当前块执行离散变换的系数)。第一个块位于与当前切片不同的第一个切片中。例如,第一个切片可以是当前图像中除当前切片之外的另一个切片。又如,第一个切片可以是除当前图像之外的另一幅图像(如前一幅图像)中的切片。
在一些实现中,可以在对当前块、当前切片或当前图像进行重建后确定恢复数据(例如:如图3所示的重建路径中作为重建阶段312的输出数据)。在一些实现中,也可以在对当前块、当前切片或当前图像进行重建之前确定恢复数据。例如,包含当前切片和当前块的当前图像可以是原始图像。也就是说,可以使用原始视频数据来确定恢复数据。
在一些实现中,可以将第一个块确定为搜索范围内的当前块的最佳匹配块。搜索范围可与当前块相关且不包括当前切片。例如,搜索范围可以包括当前图像中当前块附近的切片(如相邻切片),但不包括当前切片。又如,搜索范围可包括前一幅图像的切片(如与当前块具有相同定位的块的附近区域)。在本文中,“相同定位”指的是在两幅不同图像中的两个切片具有相同尺寸、相同形状和相同位置。图像中切片的位置指的是图像中切片的相对位置。可以使用切片的一部分作为参考点来确定位置。例如,参考点可以在切片的中心、拐角、边界或其他任何位置的一个块内。例如,对于两幅图像中具有相同尺寸和形状的两个切片,如果两个切片的左上角在图像中具有相同的位置(如相同的坐标),则可认为这两个切片具有“相同定位”。
在一些实现中,搜索范围可以包括至少两个切片。这两个或两个以上切片可以位于相同或不同的图像中。例如,搜索范围可以包括当前图像中的切片(不是当前切片)以及前一幅图像中的切片。搜索范围也可以包括当前图像中的两个不同切片(不是当前切片)。搜索范围还可以包括前一幅图像中的两个不同切片。搜索范围还可以包括前一幅图像中的切片和再前一幅图像中的切片。应注意的是,当搜索范围包括至少两个切片时,它们可以是任何不同的切片,而并不仅限于上述示例。
还应注意的是,当前切片中的块不包括在搜索范围之内。因为数据包丢失或比特误码可能导致切片损坏。如果第一个块在当前切片中,而当前切片受损时,当前切片中的块(包括第一个块)很可能是无法解码的。在除当前切片以外的切片中搜索第一个块则可以降低这种风险。
如果搜索范围包括多个切片,则可以确定与当前块相似的多个块(以下简称“匹配块”)。例如,可以为每个切片确定最佳匹配块。例如,如果搜索范围包括当前图像中的切片以及前一幅图像中的切片,则可以在当前图像的切片中确定第一个最佳匹配块,并且在前一幅图像的切片中确定第二个最佳匹配块。
在搜索范围内可应用块匹配技术来确定匹配块。块匹配技术可包括穷举搜索(Exhaustive Search)、三步搜索(Three Step Search)、二维对数搜索(Two DimensionalLogarithmic Search)、新三步搜索(New Three Step Search)、精简三步法搜索(SimpleAnd Efficient Search)、四步搜索(Four Step Search)、菱形搜索(Diamond Search)、自适应十字模式搜索(Adaptive Rood Pattern Search),或任何块匹配算法的任何任意组合,用于确定图像的两个块之间的相似性。应注意的是,这里本文中使用的块匹配算法并不仅限于上述示例。
在一些实现中,块匹配技术可使用一定的匹配准则来确定某个块是否与当前块匹配(如是否超过相似度阈值)。与当前块匹配的块可被称为候选匹配块。可对候选匹配块进行进一步筛选或排序以确定最佳匹配块(如具有最高相似度值的块)。例如,匹配标准可以是候选匹配块与当前块之间的绝对差之和(SAD)。最佳匹配块可以是具有最小SAD的候选匹配块。在执行块匹配方法时,可以使用不同级别的搜索精度,例如整数像素精度或子像素(例如半个像素或四分之一像素)精度。
在一些实现中,与第一个块相关的相似性数据可包括一个相似性向量,该向量用于表明第一个块相对于当前块的位置。相似性向量的示例见图8-10的说明。
图8是根据本发明实施例所绘制的一个用于错误隐藏的相似性向量的示例图。如图8所示,图像800可表示当前图像。图像800包括6×6个块(由虚线表示),被划分为切片802、804和806(由实线表示)。应注意的是,图像800所示的块和切片仅为一个示例,也可以采用其他模式对当前图像进行划分或分区。
图8示出了为当前切片804中的当前块808确定恢复数据的过程。恢复数据可以包括与第一个匹配块810相关的相似性数据。已在搜索范围内确定当前块808的最佳匹配块为第一个匹配块810。搜索范围可以是不同于当前切片804的切片802。可以通过在切片802中运行块匹配方法来确定第一个匹配块810。例如,块匹配技术可以采用四分之一像素的搜索精度。
可以确定相似性向量812用以表明第一个匹配块810与当前块808之间的相对位置。因为当前块808和第一个匹配块810位于相同的图像中,所以它们之间的相对关系可以是空间上的关系,因此相似性向量812可表示为空间相似性向量(SSV)812。在第一个匹配块810和当前块808的两个对应点之间可确定相似性向量。例如,SSV 812可以是从当前块808的左上角到第一个匹配块810的左上角的向量。应注意的是,定义相似性向量的两个对应点可以在块的任何位置,如右上角、左下角、右下角、中心或适用于确定向量端点的任意点。如果当前块808的数据包丢失或损坏,则SSV 812和第一个匹配块810可用于在解码器处对当前块808进行恢复。例如,在成功解码第一个切片802之后,根据发送到解码器的SSV 812(如作为带外数据发送),可将已被解码的第一个匹配块810进行复制并替换当前块808,用于解码当前切片804。
在一些实现中,可确定当前块808与第一个匹配块810之间的残差。残差可与SSV812相关(称为“SSV相关残差”)。例如,残差可以是当前块808的像素与第一个匹配块810的像素之间的像素值差(如相减而得的差值)。相应地,与第一个匹配块810相关的相似性数据可以包括残差数据。可对残差进行压缩,比如通过对其进行离散变换。例如,离散变换可以包括离散余弦变换(DCT)、离散正弦变换(DST)或整数变换(IT)。如果残差被压缩,则与第一个匹配块810相关的相似性数据可包括残差的离散变换系数。在一些实现中,可以先对离散变换系数进行量化,然后将其包括在相似性数据中。在一些实现中,相似性数据可包括一定数量的离散变换系数,例如前n个离散变换系数,其中n为整数。
残差可用于提高错误隐藏的精确度。例如,在对当前切片804进行解码时,将第一个匹配块810复制并替换当前块808之后,可以将已经发送到解码器的残差(如作为带外数据发送)添加到复制块中。如果残差被变换和/或量化,则可以在将其添加到复制块之前对其执行去量化和/或逆变换操作。
如图8所示,第一个切片在当前图像800中,当前切片804也在图像800中。在一些实现中,第一个切片可以与当前图像不在同一幅图像中。图9是根据本发明实施例所绘制的另一个用于错误隐藏的相似性向量的示例图。在图9中,图像800是如图8中所述的当前图像。图像900可以表示在时间上早于图像800的一幅图像。应注意的是,图像900可以是紧接在图像800之前的一幅图像,也可以不紧接着该图像。图像900也包括6×6块(以虚线划分)且被划分为切片902、904和906(以实线划分)。应注意的是,图像900中的块和切片划分仅为一个示例。前一幅图像的切片划分模式可以与当前图像的切片划分模式相同,也可以不同。
图9示出了为当前切片804中的当前块808确定恢复数据的过程。恢复数据可以包括与第二个匹配块908相关的相似性数据。已在搜索范围内确定当前块808的最佳匹配块为第二个匹配块908。搜索范围可以是切片902和切片904。可以通过在切片902和切片904上运行块匹配方法来确定第二个匹配块908。例如,块匹配技术可以采用四分之一像素的搜索精度。如图9所示,第二个匹配块908可以跨越切片902和904之间的边界。应注意的是,当前块808的最佳匹配块可以在搜索范围内的任何位置,而不一定完全在一个切片内。
可以确定相似性向量910以表明第二个匹配块908与当前块808之间的相对位置。例如,当前块808可以与块912具有相同定位,如虚线双箭头线914所示,该块在图像中具有与在第一幅图像808中相同的相对位置。相似性向量910可用于表明第二个匹配块908和与其具有相同定位的块912之间的相对位置。因为块808和第二个匹配块908在不同的图像中,因此它们的相对关系可以以时间先后表示,而相似性向量910也可被称为时间相似性向量(TSV)910。在图9中,TSV 910是从具有相同定位的块912的左上角到第二个匹配块908的左上角之间的向量。与SSV 812相关的示例相类似,如果当前块808的数据包丢失或损坏,则可以在解码器处使用TSV 910和第二个匹配块908来恢复当前块808。例如,在图像900被正确解码之后,根据已经发送到解码器的TSV 910(如作为带外数据发送),可在对当前切片804进行解码时将已解码的第二个匹配块908复制以替换当前块808。
采用SSV和TSV执行错误隐藏各具优势。例如,如果当前图像处于快速场景转换(如通过使用场景转换检测技术检测到)时,采用SSV能够更易于确定且使用SSV恢复当前块可以更为准确。如果当前图像处于静态场景中时,则TSV能够更易于确定且使用TSV恢复当前块可以更为准确。根据场景类型和其他考虑因素,可以使用不同的策略来决定在错误隐藏中是采用SSV还是TSV或两者兼施。
在一些实现中,可在当前块808和第二个匹配块908之间确定残差(如像素值差)并在与第二个匹配块相关的相似性数据中包括该残差,该操作与SSV 812相关的残差相类似。残差可以与TSV 910相关(称为“TSV相关残差”)。可对残差进行处理(例如变换和/或量化)并用之提高错误隐藏的精度,该操作方式与SSV 812相关的残差相类似,此处不再赘述。
与第一个块相关的相似性数据可包括SSV、TSV和残差(如残差的离散变换系数)的任何数量的任意组合。为了控制恢复数据和传输负载的大小,可对残差数据的大小进行限制。例如,残差的离散变换系数的数量可以很小(例如:在恢复的准确性和恢复数据的大小中做出权衡,可选择1、2、3、4、5或任何合适的小数量)。例如,相似性向量可以仅包括SSV(如SSV 812),或仅包括TSV(如TSV 910),或SSV和TSV两者都包括。相似性数据可以仅包括相似性向量(如SSV 812和/或TSV 910),或者同时包括相似性向量和与相似性向量相关的残差数据。
如果相似性向量仅包括SSV(如SSV 812),则残差也可仅包括SSV相关残差。如果相似性向量仅包括TSV(如TSV 910),则残差也可仅包括TSV相关残差。如果相似性向量同时包括SSV和TSV,则残差也可包括组合残差。可将组合残差确定为当前块的像素与加权块的像素之间的像素值差(如相减而得的差值)。可确定加权块为与SSV相关的第一个匹配块(如第一个匹配块808)和与TSV相关的第二个匹配块(如第二个匹配块908)的加权和,具体操作见下文图10和等式(1)–(3)的相关描述。
在一些实现中,可根据当前切片的预测模式来优化生成相似性数据。例如,如果使用帧内预测对当前切片(如切片804)进行编码,则可将与当前块(如当前块808)相关的搜索范围局限在当前图像的部分或全部之内,而不包括当前切片(如切片804),并且可将相似性向量指定为SSV(如SSV 812)。又如,如果使用帧间预测对当前切片进行编码,则可以扩展搜索范围以包括前一幅图像(如图像900)的部分或全部内容,并且可以将相似性向量指定为TSV(如TSV 910)。应注意的是,当前切片的预测模式与相似性向量的类型的选择无关。例如,无论对于当前切片使用什么预测模式,相似性向量都可以是SSV或TSV或二者兼而有之。
在一些实现中,为了优化相似性数据的生成并减少计算资源和时间,可以使用一些ME和/或MC数据作为部分相似性数据。例如,如果使用帧间预测对当前切片进行编码,并且搜索范围包括先前图像中的一个为当前切片作参考切片的切片,则可将与当前块相关的运动向量确定为相似性向量(如TSV)。可以将该切片中与该运动向量(如运动估计块)相关的块确定为用于错误隐藏的最佳匹配块。由MC和ME生成的残差块可确定为与该相似性向量相关的残差。
在一些实现中,如果确定了多个最佳匹配块并且相似性数据包括多个相似性向量,则相似性数据还可以包括与每个相似性向量相关的权重。多个相似性向量可以包括SSV和TSV的任何数量的任意组合(例如:SSV和TSV、两个SSV、两个TSV、三个SSV和两个TSV等等)。多个最佳匹配块和多个相似性向量可用于确定加权块。加权块可用于对当前块执行错误隐藏。用于确定加权块的最佳匹配块越多,则加权块的数据恢复质量就越高。此外,使用多个最佳匹配块和多个相似性向量可以增强容错能力,因为如果即使有些相似性向量被丢失或损坏,仍然可以对丢失或损坏的块进行恢复。
图10是根据本发明实施例所绘制的两个用于错误隐藏的相似性向量的示例图。在图10中,图像800是如图8所示和所述的当前图像,图像900则是如图9中所示和所述的前一幅图像。
如图10所示,相似性数据可包括SSV 812和TSV 910。相似性数据还可包括与SSV812相关的第一个权重、与TSV 910相关的第二个权重,或上述两者都包括。第一个匹配块810和第二个匹配块908的加权和可确定为加权块。
第一个权重和第二个权重可以是固定值或自适应值。在一些实现中,对于相同类型的相似性向量,第一个权重和第二个权重可以是固定值。也就是说,第一个权重和第二个权重不受块和切片的限制。例如,对于不同块的所有SSV,第一个权重是相同的;而对于不同块的所有TSV,第二个权重是相同的。第一个权重和第二个权重也可以是可变值。第一个权重和第二个权重可以根据不同的块或切片而改变。在一些实现中,第一个权重和第二个权重可根据切片的不同而取值不同。也就是说,当相同类型(如同为SSV或同为TSV)的块处于相同切片中时,其相似性向量可以与同一权重值相关;而当这些块处于不同的切片中时,则具有各自不同的权重值。在一些实现中,第一个权重和第二个权重可根据块的不同而取值不同。也就是说,相同类型的块不管属于哪个切片或哪些切片,这些块的相似性向量都可以与不同的权重值相关。另外还可以在不同块之间调整权重值的适应性级别。例如,第一个块可以基于切片来调整权重值,而紧接在第一个块之后第二个块也可以基于块来调整权重值。
可以权衡数据恢复的准确度和恢复数据的大小来选择权重值的适应级别。权重值适应的级别越高(如切片级别),则恢复数据就可以越小,因此发送它所需的带宽占用就越少。而权重值适应的级别越低(如块级别),则数据恢复就可以越准确。
在一些实现中,权重值既可以从一个预定值集合中选择,也可以实时调整。例如,预定集合可以包括固定数量的值。例如,预定集合可以包括5个值{0,0.25,0.50,0.75,1.0}或6个值{0,0.2,0.4,0.6,0.8,1.0}。固定数量的取值可以在计算用量和恢复的准确性之间进行权衡。应注意的是,预定集合并不限于上述示例。预定集合中的每个值都可用于确定一个候选加权块,然后在当前块和候选加权块之间计算差值。当差值达到最小时,即可将用于该计算的值选定为权重。差值可以是绝对差值之和(SAD)等。
如果是实时确定权重值,则无需使用一组预定值,而是可以在权重值的取值范围内来确定候选加权块。当当前块和候选加权块之间的差值(如SAD)达到最小时,即可将用于该计算的值选定为权重。
如图10所示,可以根据第一个匹配块810和第二个匹配块908的加权和来确定加权块。例如,第一个匹配块810的像素值(如灰度值、RGB值、亮度值或二进制值)可以表示为S,第二个匹配块908的像素值可以表示为T。为便于解释而不引起歧义,下文将像素的值一律称为“像素”,除非另有明确说明。S和T可以彼此对应,比如在块中具有相同的相对位置。应注意的是,S和T还可分别表示第一个匹配块810和第二个匹配块908中的一组像素。与SSV812相关的第一个权重可以表示为α1,与TSV 910相关的第二个权重可以表示为α2。对应于S和T的加权块的像素以W表示,可根据等式(1)得出:
W=α1·S+α2·T 等式(1)
在一些实现中,第一个权重和第二个权重可以是互补的。也就是说,第一个权重和第二个权重的总和可以是常数(如1)。例如,α2可以是(1-α1)。在这些实现中,可根据等式(2)得出W:
W=α1·S+(1-α1)·T 等式(2)
权重可以包含在相似性数据中。例如,当α1和α2互补时,权重可以存储为一个二进制比特(如值为1或0)。也就是说,权重可用于指明在确定加权块时是使用S还是T。再如,权重可以存储为多个比特(如二进制、八进制、十进制或十六进制比特),使S和T可为非整数值。
应注意的是,在等式(1)和(2)中,对于任何不同的块,α1和α2都可以不同。α1和α2可以在同一个切片中的块中是相同的,而在不同切片中的块中又不相同。α1和α2也可以在同一幅图像中的块中都是相同的,而在不同图像中的块中又不相同。在流程500的任何阶段都可以对α1和α2的值进行调整。
应注意的是,与第一个块相关的相似性数据可包括上述示例的任何数量的任意组合。例如,与第一个块相关的相似性数据可包括相似性向量、残差的离散变换系数、与第一个块相关的权重,或上述任意组合。例如,相似性数据可以包括组合残差的离散变换系数。组合残差可以是当前块与加权块之间的差,其中加权块是根据第一个匹配块和第二个匹配块而得出的(如等式(1)或等式(2)中的加权块W)。还应注意的是,与第一个块相关的相似性数据也可包括其他形式的数据以用于表明第一个块与当前块之间的相似性。
在一些实现中,非相似性数据可包括对当前块执行离散变换的系数。例如,离散变换可以包括DCT、DST或IT。在一些实现中,系数可包括离散变换的直流(DC)系数与离散变换的交流(AC)系数的任何数量的任意组合。
例如,非相似性数据可以仅包括DC系数。又如,非相似性数据可包括DC系数和至少一个AC系数。为了控制恢复数据和传输负载的大小,包含在非相似性数据中的AC系数可以很小(例如:在恢复的准确性和恢复数据的大小中做出权衡,可选择1、2、3、4、5或任何合适的小数量)。在一些实现中,AC系数可以包括离散变换的前k个AC分量,其中k为整数。例如,前k个AC分量可以是前k个非零的AC分量。在一些实现中,AC分量的次序可由当前切片的扫描次序(如之字形次序)确定。
应注意的是,恢复数据可包括任何数量的上述示例的任意组合。例如,恢复数据可以包括与当前块相关的相似性数据和与当前块相关的非相似性数据中的至少一个。还应注意的是,恢复数据也可包括其他形式的数据来实现错误隐藏。
还应注意的是,恢复数据条目的类型和数量可以根据不同的块而各不相同。例如,对于第一个块,恢复数据可以仅包括非相似性数据。对于第二个块,恢复数据可以仅包括SSV。对于第三个块,恢复数据可以包括SSV和SSV相关的残差(如SSV相关残差的离散变换系数)。对于第四个块,恢复数据可以仅包括TSV。对于第五块,恢复数据可以包括TSV和TSV相关的残差(如TSV相关残差的离散变换系数)。对于第六块,恢复数据可以包括SSV、TSV、与SSV相关的第一个权重,以及与TSV相关的第二个权重(如互补权重或非互补权重)。对于第七块,恢复数据可以包括SSV、TSV、与SSV相关的第一个权重、与TSV相关的第二个权重(如互补权重或非互补权重),以及组合残差数据(如组合残差的离散变换系数)。每个块的恢复数据的类型(如前述的第一到第七块)都可以独立选择,而不依赖于块之间的任何空间或时间关系(如这些块在空间或时间上是否都是连续的、部分连续的或全部离散的)。应注意的是,以上说明仅为示例,用于不同块的恢复数据的数量和类型的具体实现不一而足。
在一些实现中,可以对恢复数据进行打包。可以在数据包的报头中使用一个或多个比特(如二进制、八进制、十进制或十六进制比特)来表明数据包中所含的恢复数据条目的数量和类型。例如,可以使用一个比特来表明是否包括相似性数据或非相似性数据。如果包括相似性数据,则可以使用第二个比特来表明是否仅包括相似性向量,或者是否包括相似性向量和残差(如残差的离散变换系数)。如果包括相似性向量和残差,则可以使用第三个比特来表明是什么类型的相似性向量(如SSV或TSV)和/或残差。还可以用额外的比特来表明非相似性数据条目的数量(如DC和/或AC分量的数量)以及相似性数据条目的数量(如相似性向量的数量和残差的数量)。应注意的是,这些比特数据的设计并不限于上述示例,用于恢复数据的数据包报头可以采用任何比特设计的任意组合形式。
回头再来看流程500,在操作506处,当前块和恢复数据通过网络传输。当前块被编码并作为带内数据发送,而恢复数据作为带外数据发送。本文使用的“带内数据”指的是用于视频数据传输的主流。而“带外数据”指的是在主流之外的用于非视频数据传输的单独流。单独流可以在逻辑上或物理上与主流不一样。例如,可以在不同的网络路径(如信道)中分别发送和接收主流和单独流。又如,也可以在同一网络路径中发送和接收主流和单独流。带内或带外数据包可以由网络传输协议来定义和控制。例如,可以在数据包的报头中包含一个标志或指示符,用于表明该数据包是带内还是带外数据。在一些实现中,恢复数据可以同时作为带内数据和带外数据传输以实现冗余。
在一些实现中,带内数据可以是网络抽象层(NAL)单元,而带外数据可以是SEI数据(如SEI消息)。恢复数据可以很小以便在带外传输,这有助于降低传输过程中丢包或数据包受损的风险。
为了进一步减小用于带外传输的恢复数据的大小,还可以对恢复数据进行压缩。在一些实现中,差分脉冲编码调制(DPCM)可用于编码连续块的恢复数据。在一些实现中,还可使用变动长度编码(VLC)对DPCM编码的恢复数据再进一步压缩。
例如,当恢复数据包括对当前块(如DC和/或AC分量)执行离散变换的系数时,可以对该系数进行量化。可以采用VLC编码(如霍夫曼编码)对当前块的量化DC分量与其相邻块(如紧接在其之前的那一个块)的量化DC分量之差进行编码。在一些实现中,如果当前块之前没有相邻块(如每一个切片中最前端的块)时,可使用当前块的DC分量与一个常量之差来作为DC分量的差值。量化的AC分量可以形成一对对的零行程长度和值,然后通过VLC(如霍夫曼编码)进行编码。
再例如,如果恢复数据中包含相似性向量(如SSV和/或TSV),则相似性向量的水平分量(如表明相似性向量的水平幅度的标量值)和/或垂直分量(如表明相似性向量的垂直幅度的标量值)可以被量化。经量化的水平和/或垂直分量也可以使用VLC编码。
又如,当恢复数据包括与相似性向量相关的残差的离散变换系数时,也可以对离散变换系数进行量化。经量化的离散变换系数也可以使用VLC编码。
在一些实现中,对于不同的切片可以使用的不同的量化方案和/或VLC编码技术。也就是说,可以对相同切片的块采用同一个量化方案和/或VLC编码技术,而对不同切片中的块采用另一个量化方案和/或VLC编码技术。
应注意的是,在解码器处只会采用一种类型的恢复数据用于错误隐藏。也就是说,在执行错误隐藏时,解码器可以仅使用相似性数据或仅使用非相似性数据,而不能既使用相似性数据又使用非相似性数据。与此对应,需传输的恢复数据也是可以仅包括相似性数据或仅包括非相似性数据。在一些实现中,在有损或有噪声的网络中,需传输的恢复数据中可以包括相似性数据和非相似性数据的组合以实现冗余。例如,如果在传输中解码器丢失了相似性数据和非相似性数据中的一个,解码器仍然可以根据另一个来实现错误隐藏。应注意的是,用于传输的相似性数据和非相似性数据的组合方案并不仅限于上述示例。
还应该注意的是,可以发送不同数量和类型的相似性数据以实现冗余,但是错误隐藏并非需要用到所有这些数据。例如,发送的相似性数据可以包括SSV、SSV相关的残差、TSV和TSV相关的残差,但是在解码器处可以仅使用SSV(或TSV)和SSV相关的残差(或TSV-相关残留数据)用于错误隐藏。应注意的是,用于传输的相似性数据的数量和类型并不仅限于上述示例。
图6是根据本发明实施例所绘制的在视频解码过程中执行错误隐藏的一个示例流程图。流程600可以实现为图1系统100中的软件和/或硬件模块。例如,流程600可以实现为网络106中服务器的软件模块。流程600还可以实现为终端用户设备(如设备104)中的软件模块。软件模块可作为由处理器(如处理器116)执行的指令和/或数据存储在存储器(如存储器118)中。流程600也可以在硬件中实现为专用芯片,可存储由专用芯片执行的指令。例如,专用芯片可以包括特定的硬件加速模块。
应注意的是,流程600可以集成在视频解码过程中,也可以作为视频解码中的一个独立过程(如流程400)。也就是说,流程600的操作可以实现为流程400的一个附加或集成操作,也可以实现为与流程400分开执行的独立操作。如果将流程600实现为独立于流程400,则它可以在执行流程400之前、同时或之后进行实施。
在操作602处,视频流作为带内数据接收,而恢复数据作为带外数据接收。视频流和恢复数据可以由处理器(如处理器108或116)接收。恢复数据用于对视频流的当前图像的当前片的当前块执行错误隐藏。
在操作604处,已知视频流中当前块的数据包已丢失或损坏,则可根据恢复数据来确定与当前块相关的离散变换的系数、与第一个块相关的相似性数据或这两者的组合。在编码期间已对当前块执行离散变换。第一个块与当前块相似并且在与当前切片不同的第一个切片中。在一些实现中,根据不同的视频编码标准,当前块可以是MB、CU、CTU或用于视频编码的视频数据的任何逻辑单元。
在一些实现中,可在重建当前块、当前切片或当前图像之前(如在流程400中的重建阶段410之前)确定离散变换的系数和/或相似性数据。在一些实现中,也可以在重建当前块、当前切片或当前图像之后再确定恢复数据。
在一些实现中,系数可以是流程500中所描述的系数。例如,系数可以包括离散变换的DC系数和离散变换的AC系数中的至少一个。离散变换可以包括DCT、DST或IT。
在一些实现中,与第一个块相关的相似性数据包括以下数据的任何数量的任意组合:表明第一个块相对于当前块的位置的相似性向量,对当前块和第一个块之间的残差进行离散变换的系数,以及用于确定加权块的与第一个块相关的权重。相似性向量、残差的离散变换系数和与第一个块相关的权重可以参见与流程500相关的描述。例如,如图8-10中所述,相似性向量可以包括SSV和TSV的任何数量的任意组合。例如,可以使用第一个匹配块和第二个匹配块中至少其中之一来确定加权块。第一个匹配块与当前块相似并且在第一个切片中,而第二个匹配块与当前块相似并且在第二个切片中。当前切片、第一个切片和第二个切片可以互不相同。
在一些实现中,第一个切片可位于当前图像中,并且第二个切片可位于视频流中的当前图像之前的先前图像中。相似性向量可以包括表明第一个匹配块相对于当前块的位置的SSV和表明第二个匹配块相对于当前块的位置的TSV。
在一些实现中,残差的离散变换系数可包括SSV相关残差的离散变换系数、TSV相关残差的离散变换系数、或组合残差的离散变换系数。SSV相关残差可以是当前块和第一个匹配块之间的差。TSV相关残差可以是当前块和第二个匹配块之间的差。组合残差可以是当前块与加权块之间的差,其中加权块是根据第一个匹配块和第二个匹配块而得出的(如等式(1)或等式(2)中的加权块W)。
在一些实现中,与第一个块相关的权重可以包括与第一个匹配块相关的第一个权重和与第二个匹配块相关的第二个权重。在一些实现中,第一个权重和第二个权重可以是互补的。
回头再来看流程600,在操作606处,采用恢复数据对当前块进行恢复。在一些实现中,如果恢复数据包括对当前块执行离散变换的系数,则可以通过对系数(如DC分量和/或至少一个AC分量)执行逆离散变换来恢复当前块。例如,逆离散变换可以包括逆DCT、逆DST或逆IT。
在一些实现中,如果恢复数据包括相似性向量,则可以通过将第一个块复制为当前块来恢复当前块。可以使用相似性向量和当前块的位置(如左上角)来确定第一个块的位置。
在一些实现中,如果恢复数据包括残差的相似性向量和离散变换系数,则可以通过复制第一个块并加上残差来恢复当前块。可以根据残差的离散变换系数来确定残差。例如,可以对残差的离散变换系数执行逆离散变换(如逆DCT、逆DST或逆IT)。
在一些实现中,如果恢复数据包括相似性向量并且相似性向量包括与第一个匹配块相关的SSV、与第二个匹配块相关的TSV、以及与SSV和TSV中的至少其中之一相关的权重,则可以使用加权块的方式对当前块进行恢复。例如,权重可以包括与第一个匹配块相关的第一个权重和与第二个匹配块相关的第二个权重。例如,加权块可以通过将下列数据相加而得出:第一个匹配块与第一个权重(如等式(1)中的α1·S)的第一乘积,以及第二个匹配块与第二个权重(如等式(1)中的α2·T)的第二乘积。例如,也可以根据等式(1)得出加权块的一个像素。再如,如果第一个权重和第二个权重是互补的,则可以根据等式(2)得出加权块的像素。
在一些实现中,如果恢复数据包括SSV、TSV、权重以及组合残差的离散变换系数,则可以将第一乘积、第二乘积和组合残差相加而得出加权块。例如,可以通过对与组合残差相关的离散变换系数执行逆离散变换(如逆DCT、逆DST或逆IT)来得出组合残差R。可使用等式(3)得出加权块W的一个像素。
W=α1·S+(1-α1)·T+R 等式(3)
在一些实现中,如果在解码器处使用恢复数据来恢复丢失或损坏的块,那么在解码的图像中可能会发生伪像,如呈块状出现。为减少恢复中出现的伪像,最好可以在恢复块的边界像素及其相邻块上应用一个去块效应滤波器(如低通滤波器)。可以在操作606之后应用去块效应滤波器。例如,可将去块效应滤波器集成到流程400的环路滤波器中。又如,也在流程400的环路滤波器之外再单独应用去块效应滤波器。
图7是根据本发明实施例所绘制的在视频编码过程中执行错误隐藏的另一个示例流程图。流程700是在视频编码中如何确定用于错误隐藏的恢复数据的另一个示例。流程700可以实现为图1系统100中的软件和/或硬件模块。例如,流程700可以实现为网络106中服务器的软件模块。流程600还可以实现为终端用户设备(如设备102)中的软件模块。软件模块可作为由处理器(如处理器108)执行的指令和/或数据存储在存储器(如存储器110)中。流程700也可以在硬件中实现为专用芯片,可存储由专用芯片执行的指令。例如,专用芯片可以包含特定的硬件加速模块。
应注意的是,流程700可以集成在视频解码过程中,也可以作为视频解码中的一个独立过程(如流程300)。也就是说,流程700的操作可以实现为流程300的一个附加或集成操作,也可以实现为与流程700分开执行的独立操作。如果将流程700实现为独立于流程300,则它可以在执行流程300之前、同时或之后进行实施。
在操作702处,在视频编码过程中从视频序列的压缩图像中对第一幅图像进行重建。第一幅图像包含第一个切片,并且第一个切片包含第一个块。例如,在视频编码过程(如流程300)中的重建路径中可以重建第一幅图像,可作为重建阶段312的输出数据。确定将对第一个块和第一个切片执行错误隐藏。
还应注意的是,用于错误隐藏的图像分区方案可以不同于编码当前图像的图像分区方案。例如,用于上述两种分区方案的数据粒度可以是不同的。又如,可以将当前图像划分为第一数量(如3个)的切片进行编码,而将其划分为第二数量(如4个)的切片来执行错误隐藏。
在操作704处,将确定对第一个块执行错误隐藏的恢复数据。恢复数据可以包含与相似于第一个块的第二个块相关的相似性数据和/或与相似于第一个块的第三个块相关的相似性数据。第二个块可以在第一幅图像中(如第一幅图像中第一个切片之外的一个切片)。第三个块可以在从压缩图像重建的第二幅图像中。
在一些实现中,在与第一个块相关的搜索范围之内可将与第一个块相似的一个块确定为的第一个块的最佳匹配块。最佳匹配块和搜索范围可以参见流程500和600中的描述。例如,搜索范围不包括第一个切片,而可以包括第一幅图像中的一个切片和第二幅图像中的一个切片两者至少其中之一。
在一些实现中,可在搜索范围中的第一个块上应用块匹配技术。在搜索范围内可以为第一个块确定至少一个最佳匹配块。第二个块可以是在第一幅图像的切片中的第一个块的最佳匹配块,第三个块可以是在第二幅图像的切片中的第一个块的最佳匹配块。
在一些实现中,相似性数据可参见流程500和600中对相似性数据的描述。例如,恢复数据可以包括下列数据的任何数量的任意组合:与第二个块相关的相似性数据,与第三个块相关的相似性数据,以及对第一个块执行离散变换(如DCT、DST或IT)的系数。例如,该系数可以包括离散变换的DC系数以及一个小数量的离散变换的AC系数(例如:在带宽占用和恢复的准确性中做出权衡,可选择1、2、3、4、5或任何合适的小数量)。
在一些实现中,与第二个块相关的相似性数据可包括下列数据的任何数量的任意组合:表明第二个块相对于第一个块的位置的SSV、与第二个块和第三个块中的至少其中之一相关的权重(例如:等式(1)中的两个分别独立的权重α1和α2,或者如等式(2)中的一对互补权重α1和(1-α1))、以及组合残差的离散变换系数,其中组合残差是第一个块和加权块两者之差,而加权块是根据第二个块、第三个块和权重而得出的。与第三个块相关的相似性数据可包括下列数据的任何数量的任意组合:表明第三个块相对于第一个块的位置的TSV、权重以及组合残差的离散变换系数。权重和互补权重之和等于1。
在操作706处,将恢复数据压缩成压缩恢复数据。在一些实现中,DPCM可以用于对连续块的恢复数据进行编码。在一些实现中,可以使用VLC对DPCM编码的恢复数据再压缩。例如,参见流程500中所述方法,可将相似性向量的分量(如水平和/或垂直分量)和/或与相似性向量相关的残差的离散变换系数进行压缩。
在操作708处,将第一幅图像和压缩的恢复数据通过网络传输。第一幅图像作为带内数据发送,而压缩的恢复数据作为SEI数据发送。在一些实现中,带内数据可以是NAL单元。
如上所述,本领域专业人士应该会发现本文所述的本发明的全部或部分内容可以使用具有计算机程序的通用计算机或处理器来实现,其计算机程序在被运行时可执行本文所述的任何相应的技术、算法和/或指令。另外,也可以有选择地使用专用计算机或处理器,配备专用硬件设备用以执行本文描述的任何方法、算法或指令。
本文所述各方面内容可通过功能块组件和各种处理操作来描述。本文的流程和序列可以单独或以任意组合形式来执行。功能块可以通过执行任意数量的可运行特定功能的硬件和/或软件组件来实现。例如,所述的内容可以采用各种集成电路组件,例如存储器元件、处理元件、逻辑元件、查找表等,在一个或多个微处理器或其他控制设备的控制下执行各种功能。类似地,实现所述内容各个功能时如需采用软件编程或软件元件,都可以采用诸如C、C++、Java、汇编程序等的任何编程或脚本语言来实现本发明,并且可以采用任何数据结构、对象、进程、例程或其他编程元素的任意组合来执行各种算法。各项功能可以在一个或多个处理器上通过执行算法来实现。此外,本发明所述各功能可以采用任意数量的常规技术来进行电子配置、信号处理和/或控制、数据处理等。本文广泛使用“机制”和“元素”这些词语,并不限于机械或物理实现,而是可以包括与处理器结合的软件例程等。
以上发明的实现或部分实现可以采取计算机程序产品的形式,该程序产品可通过计算机使用或可由计算机可读介质进行访问等。计算机可用或计算机可读介质可以是任何设备,该设备可以具体包含、存储、传送或传输供任何处理器使用或与其结合使用的程序或数据结构。该介质可以是电子的、磁的、光学的、电磁的或半导体设备等等。也可包含其他适用的介质。上述计算机可用或计算机可读介质可以被称为非暂时性存储器或介质,并且可以包括RAM或其他易失性存储器或存储设备,它们可以随时间变化而发生改变。本文所述的设备存储器并非必须物理上配备于设备中,而是可以由设备远程访问,并且不必与设备中其他物理上配备的存储器相邻,特别说明除外。
本文所述作为本发明的示例执行的一项或多项功能均可使用机器可读指令来实现,该指令用于操作前述一个或多个组合的硬件。计算代码可以以一个或多个模块的形式实现,通过该模块可以将一个或多个组合的功能作为计算工具来执行,在运行本文所述方法和系统时,输入和输出数据在每个模块与一个或多个其他模块之间进行相互传输。
信息、数据和信号可以使用各种不同的技术和方法来表示。例如,本文中提到的任何数据、指令、命令、信息、信号、比特、符号和芯片可以用电压、电流、电磁波、磁场或粒子、光学场或粒子等一项或多项组合来表示。
本文采用“示例”一词来表示举例、实例或说明。本文所述用于“示例”的任何功能或设计不一定表示其优于或胜于其他功能或设计。相反,使用“示例”一词是为了以具体的方式呈现概念。另外,“一个功能”或“一项功能”这两个短语在全文中多次用到,但并不意味着同一个实施方式或同一功能。
本文中所使用的“或”字旨在表示包含性的“或”而不是排他性的“或”。也就是说,“X包括A或B”意在表示任何自然的包含性排列,除非另有说明,或者从上下文可明确判断则另当别论。换句话说,如果X包含A,X包含B,或X包含A和B,那么在任何前述实例下“X包含A或B”都成立。以此类推,“X包括A和B中的一个”是指“X包括A或B”。本公开中使用的“和/或”一词旨在表示“和”或不排他性的“或”。也就是说,“X包括A、B和/或C”旨在表示X可包括A、B和C的任意组合,除非另有说明或上下文另有明确指示。换句话说,如果X包括A,X包括B,X包括C,X包括A和B,X包括B和C,X包括A和C,或者X包括A、B和C中的全部,那么上述情况中的每一种或多种都满足“X包括A、B和/或C”的描述。以此类推,“X包括A、B和C中的至少一个”是指“X包括A、B和/或C”。
本文中“包含”或“具有”及其同义词旨在表示包括其后列出的项目及其等同物以及附加项目。根据上下文语境,本文中的“如果”一词可以被解释为“当”“当……时”或“假设”等意思。
在本发明所述内容(特别是下文的权利要求书)中,“一”、“一个”和“该”以及类似的指示代词应理解为包含一个和多个的单数和复数形式。此外,本文中对数值范围的描述只是一种简便的描述方式,旨在表示包含在该范围之内的每一个单独数值,并且每个单独值并入规格范围中,等效于在本文中单独列举。最后,本文所述的所有方法的步骤可以以任何合适的顺序执行,除非本文另有说明或者与上下文明显矛盾。本文提供的示例或示例性语言(例如“诸如”)的使用旨在更好地说明本发明,并无意于限制本发明的范围,除非另有说明。
本文使用各种标题和小标题列出列举条目。包含这些内容是为了增强可读性并简化查找和引用材料的过程。这些标题和小标题无意于、也不会用来影响对权利要求的解释或以任何方式限制权利要求的范围。本文示出和描述的具体实现是本发明的说明性示例,且无意于以任何方式限制本发明的范围。
本文引用的所有参考文献(包括出版物、专利申请和专利等)均通过引用纳入本文,等效于单独且明确地指明将每个参考文献通过引用纳入本文,且涵盖参考文献的全部相关内容。
虽然已经结合某些实施例和实施方式对本发明进行描述说明,但应理解为,本发明并不限于所公开的实施方式,与之相反,本公开旨在覆盖权利要求范围之内所涵盖的各种变体和等同设置,该范围应被赋予最宽泛的解释以涵盖法律允许的所有上述变体和等同设置。
Claims (20)
1.一种在视频通信中执行错误隐藏的方法,包括:
处理器在编码过程中确定视频序列中的当前图像的当前切片的当前块以执行错误隐藏;
确定当前块的恢复数据,其中恢复数据包括对当前块执行离散变换的系数和与相似于当前块的第一个块相关的相似性数据两者至少其中之一,并且第一个块所在的第一个切片与当前切片不相同;以及
通过网络发送当前块和恢复数据,其中当前块作为带内数据发送,恢复数据作为带外数据发送。
2.根据权利要求1所述的方法,其中当前块包括下列其中之一:宏块(MB)、编码单元(CU)、编码树单元(CTU)和编码树块(CTB),而带外数据则包括补充增强信息(SEI)数据。
3.根据权利要求1所述的方法,其中系数包括离散变换的直流(DC)系数与离散变换的交流(AC)系数两者至少其中之一,且离散变换包括离散余弦变换(DCT)或离散正弦变换(DST)或整数变换(IT)。
4.根据权利要求1所述的方法,其中与第一个块相关的相似性数据包括下列至少其中之一:
表明第一个块相对于当前块的位置的相似性向量,
用于确定加权块的与第一个块相关的权重,其中确定该加权块时采用与当前块相似的第一个块和第二个块两者至少其中之一,并且第二个块所在的第二个切片与当前切片和第一个切片都不相同,以及
对残差进行离散变换的系数,该残差是指当前块与第一个块或第二个块或加权块之间的差。
5.根据权利要求4所述的方法,其中第一个切片位于当前图像中,而第二个切片位于视频序列中的当前图像之前的先前图像中,并且相似性向量包括表明第一个块相对于当前块的位置的空间相似性向量(SSV)和表明第二个块相对于当前块的位置的时间相似性向量(TSV)。
6.根据权利要求5所述的方法,还包括:
如已知当前块是使用帧内预测进行编码的,则将SSV确定为相似性向量,其中恢复数据包括SSV和残差的离散变换系数两者至少其中之一,并且残差是当前块和第一个块之间的差;
如已知当前块是使用帧间预测进行编码的,则将TSV确定为相似性向量,其中恢复数据包括TSV和残差的离散变换系数两者至少其中之一,并且残差是当前块和第二个块之间的差;以及
如已知当前块是使用帧间预测进行编码的并且第二个切片是当前切片的参考切片,则确定与当前块相关的运动向量为TSV数据,并且确定第二个切片中与运动向量相关的块为第二个块。
7.根据权利要求4所述的方法,其中权重是下列其中之一:一个固定值、一个根据切片级进行自适应的可变值和一个根据块进行自适应的可变值。
8.根据权利要求1所述的方法,还包括:
在与当前块相关的搜索范围中使用块匹配技术确定至少一个当前块的最佳匹配块,其中搜索范围不包括当前切片,而是包括下列至少其中之一:当前图像中的一个切片和视频序列中当前图像之前的一幅图像中的一个切片,并且上述这至少一个最佳匹配块中包含第一个块。
9.一种在视频通信中执行错误隐藏的方法,包括:
由处理器接收作为带内数据的视频流和作为带外数据的恢复数据,其中恢复数据用于对视频流中当前图像的当前片的当前块执行错误隐藏;
如已知当前块的数据包在视频流中被丢失或损坏,则从恢复数据中确定下列至少其中之一:对当前块执行离散变换的系数和与当前块相似的第一个块相关的相似性数据,其中第一个块所在的第一个切片与当前切片不相同;并且
使用恢复数据对当前块进行恢复。
10.根据权利要求9所述的方法,其中当前块包括下列其中之一:宏块(MB)、编码单元(CU)、编码树单元(CTU)和编码树块(CTB),而带外数据则包括补充增强信息(SEI)数据。
11.根据权利要求9所述的方法,其中系数包括离散变换的直流(DC)系数与离散变换的交流(AC)系数两者至少其中之一,并且离散变换包括离散余弦变换(DCT)或离散正弦变换(DST)或整数变换(IT)。
12.根据权利要求9所述的方法,其中使用恢复数据对当前块进行恢复包括:
如已知从恢复数据中得出离散变换的系数,则可以通过对系数执行逆离散变换来恢复当前块。
13.根据权利要求9所述的方法,其中与第一个块相关的相似性数据包括以下至少其中之一:
表明第一个块相对于当前块的位置的相似性向量,
与相似于当前块的第一个块或第二个块相关的权重,其中第二个块所处的第二个切片与当前切片和第一个切片都不相同,以及
对残差进行离散变换的系数,该残差是指当前块与第一个块或第二个块或加权块之间的差。
14.根据权利要求13所述的方法,其中使用恢复数据对当前块进行恢复包括下列至少其中之一:
如已知从恢复数据中得出相似性向量,则将第一个块、第二个块和加权块中的一个复制为当前块,其中使用当前块的位置和相似性向量来确定上述第一个块或第二个块或加权块的位置;以及
如已知从恢复数据中得出相似性向量和残差的离散变换系数,则通过复制第一个块、第二个块和加权块中的一个后再加上根据残差的离散变换系数而确定的残差来恢复当前块。
15.根据权利要求13所述的方法,其中第一个切片位于当前图像中,而第二个切片位于视频流中的当前图像之前的先前图像中,
相似性向量包括表明第一个块相对于当前块的位置的空间相似性向量(SSV)和表明第二个块相对于当前块的位置的时间相似性向量(TSV),
残差包括下列至少其中之一:SSV相关残差,该残差是当前块和第一个块之间的差;TSV相关残差,该残差是当前块和第二个块之间的差;以及组合残差,该残差是当前块和加权块之间的差,
残差的离散变换系数包括下列至少其中之一:SSV相关残差的离散变换系数,TSV相关残差的离散变换系数和组合残差的离散变换系数,并且
恢复数据还包括与第二个块相关的互补权重,其中权重和互补权重之和等于1。
16.根据权利要求15所述的方法,其中使用恢复数据对当前块进行恢复包括下列至少其中之一:
如已知从恢复数据中得出SSV,则将第一个块的副本确定为当前块;
如已知从恢复数据中得出TSV,则将第二个块的副本确定为当前块;
如已知从恢复数据中得出SSV、TSV和权重,则将第一个块和权重的第一乘积与第二个块和互补权重的第二乘积相加来确定当前块;
如已知从恢复数据中得出SSV和SSV相关残差的离散变换系数,则将第一个块的副本与根据SSV相关残差的离散变换系数而得出的SSV相关残差相加来确定当前块;
如已知从恢复数据中得出TSV和TSV相关残差的离散变换系数,则将第二个块的副本与根据TSV相关残差的离散变换系数而得出的TSV相关残差相加来确定当前块;以及
如已知从恢复数据中得出SSV、TSV、权重、互补权重和组合残差的离散变换系数,则通过将下列数据相加来确定当前块:
第一个块与权重相乘而得的第一乘积,
第二个块与互补权重相乘而得的第二乘积;以及
根据组合残差相关的离散变换系数而得出的组合残差。
17.一种在视频通信中实现错误隐藏的设备,包括:
一台处理器,以及
一个耦合至处理器的存储器,配置存储器为可存储指令,处理器执行指令后可进行处理操作以用于:
在编码过程中从视频序列的压缩图像中对第一幅图像进行重建,其中第一幅图像中包含第一个切片,第一个切片中包含第一个块;
为第一个块确定用于错误隐藏的恢复数据,该恢复数据包括下列数据至少其中之一:对当前块执行离散变换的系数、与相似于第一个块的第二个块相关的相似性数据、与相似于第一个块的第三个块相关的相似性数据,其中第二个块在第一幅图像中,第三个块在从压缩图像中重建的第二幅图像中;
将恢复数据压缩为压缩恢复数据;以及
通过网络发送第一幅图像和压缩的恢复数据,其中第一幅图像以带内数据的形式传输,压缩恢复数据以补充增强信息(SEI)数据的形式传输。
18.根据权利要求17所述的方法,其中系数包括离散变换的直流(DC)系数与离散变换的交流(AC)系数两者至少其中之一,且离散变换包括离散余弦变换(DCT)或离散正弦变换(DST)或整数变换(IT)。
19.根据权利要求17所述的方法,其中
与第二个块相关的相似性数据包括下列至少其中之一:
表明第二个块相对于第一个块的位置的空间相似性向量(SSV);
与第二个块相关的权重,该权重用于使用至少第二个块和第三个块来确定加权块;
SSV相关残差的离散变换系数,其中SSV相关残差是第一个块和第二个块之间的差,以及
组合残差的离散变换系数,其中组合残差是第一个块和加权块之间的差,并且与第三个块相关的相似性数据包括下列至少其中之一:
表明第三个块相对于第一个块的位置的时间相似性向量(TSV),
与第三个块相关的互补权重,其中权重和互补权重之和等于1,
TSV相关残差的离散变换系数,其中TSV相关残差是第一个块和第三个块之间的差,以及
组合残差的离散变换系数。
20.根据权利要求19所述的设备,其中存储器为还可存储指令,处理器执行该指令后可进行处理操作以用于:
在与第一个块相关的搜索范围内使用块匹配技术为第一个块确定至少一个最佳匹配块,其中
搜索范围不包括第一个切片,而包括第一幅图像中的切片和第二幅图像中的切片两者至少其中之一,
第二个块是在第一幅图像的切片中第一个块的最佳匹配块,并且
第三个块是在第二幅图像的切片中第一个块的最佳匹配块。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/209,939 US10779012B2 (en) | 2018-12-04 | 2018-12-04 | Error concealment in video communications systems |
US16/209,939 | 2018-12-04 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111277841A true CN111277841A (zh) | 2020-06-12 |
CN111277841B CN111277841B (zh) | 2022-02-25 |
Family
ID=70850794
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910213470.9A Active CN111277841B (zh) | 2018-12-04 | 2019-03-20 | 一种在视频通信中执行错误隐藏的方法和设备 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10779012B2 (zh) |
CN (1) | CN111277841B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11646042B2 (en) * | 2019-10-29 | 2023-05-09 | Agora Lab, Inc. | Digital voice packet loss concealment using deep learning |
CN111343504B (zh) * | 2020-05-21 | 2020-09-18 | 腾讯科技(深圳)有限公司 | 视频处理方法、装置、计算机设备和存储介质 |
CN115699759A (zh) * | 2020-06-05 | 2023-02-03 | 北京达佳互联信息技术有限公司 | 采用基于satd的成本计算对视频进行编解码的方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120033741A1 (en) * | 2010-08-03 | 2012-02-09 | Canon Kabushiki Kaisha | Decoding of a digital signal comprising at least one sample |
US20120297274A1 (en) * | 2001-12-21 | 2012-11-22 | Chengdong Zhang | Adaptive error resilience for streaming video transmission over a network |
CN107534780A (zh) * | 2015-02-25 | 2018-01-02 | 瑞典爱立信有限公司 | 视频中的帧间画面的编码和解码 |
US20180035127A1 (en) * | 2016-07-27 | 2018-02-01 | Cisco Technology, Inc. | Motion compensation using a patchwork motion field |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010037403A1 (en) * | 2008-10-03 | 2010-04-08 | Hvidovre Hospital | Hepatitis c virus expressing reporter tagged ns5a protein |
-
2018
- 2018-12-04 US US16/209,939 patent/US10779012B2/en active Active
-
2019
- 2019-03-20 CN CN201910213470.9A patent/CN111277841B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120297274A1 (en) * | 2001-12-21 | 2012-11-22 | Chengdong Zhang | Adaptive error resilience for streaming video transmission over a network |
US20120033741A1 (en) * | 2010-08-03 | 2012-02-09 | Canon Kabushiki Kaisha | Decoding of a digital signal comprising at least one sample |
CN107534780A (zh) * | 2015-02-25 | 2018-01-02 | 瑞典爱立信有限公司 | 视频中的帧间画面的编码和解码 |
US20180035127A1 (en) * | 2016-07-27 | 2018-02-01 | Cisco Technology, Inc. | Motion compensation using a patchwork motion field |
Also Published As
Publication number | Publication date |
---|---|
US20200177926A1 (en) | 2020-06-04 |
CN111277841B (zh) | 2022-02-25 |
US10779012B2 (en) | 2020-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11363288B2 (en) | Motion vector generation for affine motion model for video coding | |
CN112889269B (zh) | 视频解码方法及装置 | |
US11902575B2 (en) | Image encoding method using a skip mode, and a device using the method | |
US9445114B2 (en) | Method and device for determining slice boundaries based on multiple video encoding processes | |
KR20180019596A (ko) | 인트라 블록 카피 모드에서의 참조 픽처 리스트 구축 | |
CN114827597B (zh) | 视频解码方法、装置、计算机设备及存储介质 | |
CN113259661A (zh) | 视频解码的方法和装置 | |
US10484721B2 (en) | Method for motion estimation of non-natural video data | |
CN113170095B (zh) | 用于视频编解码的方法和装置 | |
CN111277841B (zh) | 一种在视频通信中执行错误隐藏的方法和设备 | |
EP3533226A1 (en) | Transform coefficient coding using level maps | |
TW202042552A (zh) | 用於照明補償之區塊大小限制 | |
KR20160034926A (ko) | 비디오 정보의 스케일러블 코딩을 위한 디바이스 및 방법 | |
US20210014482A1 (en) | Bidirectional intra prediction signaling | |
US20240015310A1 (en) | Multimedia data processing method, apparatus, device, computer-readable storage medium, and computer program product | |
CN115336270A (zh) | 用于视频滤波的方法和装置 | |
CN116941243A (zh) | 自适应运动矢量差分辨率的联合编码 | |
CN115398899A (zh) | 视频滤波方法和装置 | |
CN116584092B (zh) | 视频块解码方法、装置和存储介质 | |
CN113728649B (zh) | 用于视频编解码的方法和装置 | |
CN116391355A (zh) | 视频编码中边界处理的方法和设备 | |
CN114071158A (zh) | 视频编解码中的运动信息列表构建方法、装置及设备 | |
JP2018511238A (ja) | 高速レートひずみ最適量子化 | |
US10567781B2 (en) | Progressive I-slice reference for packet loss resilient video coding | |
US20150092844A1 (en) | Intra-prediction method for multi-layer images and apparatus using same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |