CN105684441A - 视频和图像编码中的基于散列的块匹配 - Google Patents

视频和图像编码中的基于散列的块匹配 Download PDF

Info

Publication number
CN105684441A
CN105684441A CN201380080482.XA CN201380080482A CN105684441A CN 105684441 A CN105684441 A CN 105684441A CN 201380080482 A CN201380080482 A CN 201380080482A CN 105684441 A CN105684441 A CN 105684441A
Authority
CN
China
Prior art keywords
candidate blocks
piece
current block
value
hash
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
Application number
CN201380080482.XA
Other languages
English (en)
Other versions
CN105684441B (zh
Inventor
J·许
W·朱
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN105684441A publication Critical patent/CN105684441A/zh
Application granted granted Critical
Publication of CN105684441B publication Critical patent/CN105684441B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/17Methods 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/176Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/94Vector quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods 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/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • 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
    • 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
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • 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/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/97Matching pursuit coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

基于散列的块匹配中的创新促进了在速率-失真性能和/或编码的计算效率方面更高效的块复制(“BC”)预测。例如,各创新中的一些涉及在块向量(“BV”)估计期间使用基于散列的块匹配的编码。其他创新涉及组织用于基于散列的块匹配的各候选块的数据结构。又一些创新涉及分层的基于散列的块匹配。

Description

视频和图像编码中的基于散列的块匹配
背景
工程师使用压缩(也叫做源编码或源译码)来降低数字视频的比特率。压缩通过将视频信息转换成较低比特率的形式来降低存储和传送该信息的成本。解压(也被称为解码)从压缩的形式中重构一种版本的原始信息。“编解码器”是编码器/解码器系统。
在过去的二十年中,已采用了各种视频编解码器标准,包括ITU-TH.261、H.262(MPEG-2或ISO/IEC13818-2)、H.263和H.264(MPEG-4AVC或ISO/IEC14496-10)标准、MPEG-1(ISO/IEC11172-2)和MPEG-4可视(ISO/IEC14496-2)标准以及SMPTE421M标准。最近,HEVC标准(ITU-TH.265或ISO/IEC23008-2)已被批准。当前,正在开发(例如,针对可缩放视频编码/解码、针对在样本比特深度或色度采样率方面具有较高保真度的视频的编码/解码、或针对多视图编码/解码的)HEVC标准的扩展。视频编解码器标准通常定义针对经编码的视频比特流的句法的选项,从而详述当在编码和解码时使用特定特征时该比特流中的参数。在许多情况下,视频编解码器标准还提供关于解码器应当执行以在解码时取得一致的结果的解码操作的细节。除了编解码器标准外,各种专用编解码器格式定义针对经编码的视频比特流的句法的其他选项以及相应的解码操作。
帧内块复制(“BC”)是HEVC扩展的处于考虑中的预测模式。对于帧内BC预测模式,图片的当前块的样本值是使用同一图片中的先前重构的样本值来预测的。块向量(“BV”)指示从当前块到图片的包括用于预测的先前重构的样本值的区域的位移。BV被信号化在比特流中。帧内BC预测是一种形式的图片内预测—针对图片的块的帧内BC预测不使用除了同一图片中的样本值以外的任何样本值。
如当前在HEVC标准中规定并在针对HEVC标准的某一参考软件中实现的,帧内BC预测模式具有若干问题。例如,有关在帧内BC预测中使用哪些BV值的编码器侧决策没有被有效作出。
概述
概括而言,本详细描述呈现了基于散列的块匹配中的创新。例如,创新中的一些涉及在块向量估计期间使用基于散列的块匹配以用于帧内块复制(“BC”)预测,其中编码器在搜索与被编码的当前块相匹配的块时使用各块的散列值。基于散列的块匹配可以使用组织可提供匹配块的各候选块的动态数据结构。基于散列的块匹配可以使用单个散列函数,或者它可以迭代地使用多个散列函数来提供分层的基于散列的块匹配。编码器可以使用先前编码随后重构的样本值执行基于散列的块匹配,或者编码器可以使用输入样本值来执行基于散列的块匹配。
针对基于散列的块匹配的创新可以被实现为方法的一部分、被适配成执行该方法的计算系统的一部分或存储用于使计算系统执行该方法的计算机可执行指令的有形计算机可读介质的一部分。各创新可以结合地或分开地使用。
参考附图阅读以下详细描述,将更清楚本发明的前述和其他目标、特征和优点。
附图简述
图1是其中可实现所描述的一些实施例的示例计算系统的示图。
图2a和2b是其中可实现所描述的一些实施例的示例网络环境的示图。
图3是结合其可实现所描述的一些实施例的示例编码器系统的示图。
图4是示例解码器系统的示图。
图5a和5b是示出结合其可实现所描述的一些实施例的示例视频编码器的示图。
图6是示出了示例视频解码器的示图。
图7是示出针对图片的块的帧内BC预测的示图。
图8是示出帧的块的块匹配中的候选块的示图。
图9是示出针对示例帧的块的块匹配中的多个候选块的示图。
图10是示出在基于散列的块匹配中的候选块的散列值的表。
图11a和11b是解说用于在BV估计期间使用基于散列的块匹配来编码图片的技术的流程图。
图12a-12c是示出为基于散列的块匹配组织候选块的示例数据结构的表。
图13a和13b是解说用于使用为基于散列的块匹配组织各候选块的数据结构进行编码的技术的流程图。
图14a-14c是示出为分层的基于散列的块匹配组织候选块的示例数据结构的表。
图15a和15b是解说包括分层的基于散列的块匹配的编码技术的流程图。
图16a和16b是解说根据输入样本值确定散列值的示例视频编码器的示图。
图17a和17b是解说用于使用散列值来编码各块的技术的流程图。
图18a和18b是解说使用用信号通知的散列值来确定重构块的编码技术的流程图。
详细描述
本详细描述呈现了基于散列的块匹配的使用中的创新。具体而言,本详细描述呈现了编码的创新,该编码在块向量(“BV”)估计期间将基于散列的块匹配用于为基于散列的块匹配以及为分层的基于散列的块匹配组织各候选块的数据结构。
虽然本文中描述的操作是被适当描述为由视频编码器来执行,但在许多情况中,这些操作可由另一类型的媒体处理工具(例如图像编码器)来执行。
本文中描述的一些创新是参考专用于HEVC标准的句法元素和操作来示出的。例如,对HEVC标准的草稿版本JCTVC-N1005——即2013年7月的“高效视频编码(HEVC)范围扩展文本规范:第4稿”JCTVC-N1005作出参考。本文中描述的各创新还可以被实现为用于其它标准或格式。
更一般地,本文中描述的各示例的各种替代是可能的。例如,本文中描述的一些方法可以通过改变描述的方法动作的顺序、通过拆分、重复或忽略某些方法动作等来更改。所公开的技术的各方面能够被组合地或分开地使用。不同的实施例使用所描述的创新中的一个或多个。本文中描述的一些创新解决了背景中指出的一个或多个问题。通常,所给出的技术/工具并不解决所有这些问题。
I.示例计算系统
图1示出了其中可实现几个所描述的创新的合适计算系统(100)的概括示例。计算系统(100)并不旨对使用范围或功能提出任何限制,因为这些创新可以在不同的通用或专用计算系统中实现。
参考图1,计算系统(100)包括一个或多个处理单元(110、115)和存储器(120、125)。处理单元(110、115)执行计算机可执行指令。处理单元可以是通用中央处理单元(“CPU”)、专用集成电路(“ASIC”)中的处理器或任何其它类型的处理器。在多处理系统中,多个处理单元执行计算机可执行指令以提高处理能力。例如,图1示出中央处理单元(110)以及图形处理单元或协处理单元(115)。有形存储器(120、125)可以是(诸)处理单元可访问的易失性存储器(例如,寄存器、高速缓存、RAM)、非易失性存储器(例如,ROM、EEPROM、闪存等)或这两者的某一组合。存储器(120,125)存储实现针对基于散列的块匹配和/或基于散列的块重构的一个或多个创新的软件(180),该软件是适用于由(诸)处理单元执行的计算机可执行指令的形式。
计算系统可具有附加的特征。例如,计算系统(100)包括存储(140)、一个或多个输入设备(150)、一个或多个输出设备(160)以及一个或多个通信连接(170)。诸如总线、控制器或网络之类的互连机制(未示出)将计算系统(100)的各组件互连。通常,操作系统软件(未示出)为在计算系统(100)中执行的其它软件提供操作环境,并协调计算系统(100)的各组件的活动。
有形存储(140)可以是可移动或不可移动的,并包括磁盘、磁带或磁带盒、CD-ROM、DVD或可用于储存信息并可在计算系统(100)内访问的任何其他介质。存储(140)存储针对实现用于基于散列的块匹配和/或基于散列的块重构的一个或多个创新的软件(180)的指令。
(诸)输入设备(150)可以是触摸输入设备(诸如键盘、鼠标、笔或跟踪球)、语音输入设备、扫描设备或向计算系统(100)提供输入的另一设备。对于视频,(诸)输入设备(150)可以是相机、视频卡、TV调谐卡、或接受模拟或数字形式的视频输入的类似设备、或将视频样本读到计算系统(100)中的CD-ROM或CD-RW。(诸)输出设备(160)可以是显示器、打印机、扬声器、CD刻录机或提供来自计算系统(100)的输出的另一设备。
(诸)通信连接(170)允许通过通信介质与另一计算实体通信。通信介质传达诸如计算机可执行指令、音频或视频输入或输出、或已调制数据信号中的其他数据之类的信息。已调制数据信号是使其一个或多个特征以在信号中编码信息的方式设置或改变的信号。作为示例而非限制,通信介质可以使用电的、光学的、RF或其它载体。
各创新可以在计算机可读介质的一般上下文中描述。计算机可读介质是可在计算环境内访问的任何可用有形介质。作为示例而非局限,对于计算系统(100),计算机可读介质包括存储器(120、125)、存储(140)、和以上任意的组合。
各创新可在计算机可执行指令(诸如包括在程序模块中的在目标现实或虚拟处理器上在计算系统中执行的那些计算机可执行指令)的一般上下文中描述。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、库、对象、类、组件、数据结构等。如各实施例中所描述的,这些程序模块的功能可以被组合,或者在这些程序模块之间拆分。针对各程序模块的计算机可执行指令可以在本地或分布式计算系统中执行。
术语“系统”和“设备”在此被互换地使用。除非上下文明确指示,否则,术语并不暗示对计算系统或计算设备的类型的任何限制。一般说来,计算系统或计算设备可以是本地的或分布式的,并且可以包括具有实现本文中描述的功能的软件的专用硬件和/或通用硬件的任意组合。
所公开的方法还可使用被配置成执行所公开的方法中的任一者的专用计算硬件来实现。例如,所公开的方法可以由被专门设计或配置成实现所公开的方法中的任一者的集成电路(例如,诸如ASIC数字信号处理单元(“DSP”)之类的ASIC、图像处理单元(“GPU”)、或诸如场可编程门阵列(“FPGA”)之类的可编程逻辑器件(“PLD”))来实现。
为了呈现起见,本详细描述使用了如“确定”和“使用”等术语来描述计算系统中的计算机操作。这些术语是对由计算机执行的操作的高级抽象,且不应与人类所执行的动作混淆。对应于这些术语的实际的计算机操作取决于实现而不同。
II.示例网络环境
图2a和2b示出了包括视频编码器(220)和视频解码器(270)的示例网络环境(201,202)。编码器(220)和解码器(270)使用合适的通信协议通过网络(250)连接。网络(250)可包括因特网或另一计算机网络。
在图2a所示的网络环境(201)中,每个实时通信(“RTC”)工具(210)都包括用于双向通信的编码器(220)和解码器(270)两者。给定的编码器(220)可以产生符合HEVC标准、SMPTE421M标准、ISO/IEC14496-10标准(也称为H.264或AVC)、另一标准、或专用格式的变型或扩展的输出,使得相应的解码器(270)接受来自编码器(220)的经编码数据。双向通信可以是视频会议、视频电话呼叫或其它双方通信场景的部分。虽然,图2a中的网络环境(201)包括两个实时通信工具(210),但网络环境(201)可改为包括参与多方通信的三个或更多个实时通信工具(210)。
实时通信工具(210)管理编码器(220)做出的编码。图3示出可以被包括在实时通信工具(210)中的示例编码器系统(300)。替换地,实时通信工具(210)使用另一编码器系统。实时通信工具(210)还管理解码器(270)做出的解码。图4示出可以被包括在实时通信工具(210)中的示例解码器系统(400)。替换地,实时通信工具(210)使用另一解码器系统。
在图2b中示出的网络环境(202)中,编码工具(212)包括编码供递送给多个回放工具(214)的视频的编码器(220),此多个回放工具(214)包括解码器(270)。单向通信可被提供用于视频监视系统、web相机监视系统、远程桌面会议演示或在其中编码视频并将视频从一个位置发送到一个或多个其它位置的其它场景。虽然在图2b中的网络环境(202)包括两个回放工具(214),但该网络环境(202)可以包括更多或更少的回放工具(214)。一般来说,回放工具(214)与编码工具(212)通信以确定回放工具(214)要接收的视频流。回放工具(214)接收该流、缓冲所接收的经编码数据达合适的时间段并开始解码和回放。
图3示出可以被包括在编码工具(212)中的示例编码器系统(300)。替换地,编码工具(212)使用另一编码器系统。编码工具(212)还可以包括用于管理与一个或多个回放工具(214)的连接的服务器侧控制器逻辑。图4示出可以被包括在回放工具(214)中的示例解码器系统(400)。替换地,回放工具(214)使用另一解码器系统。回放工具(214)还可以包括用于管理与一个或多个编码工具(212)的连接的客户机侧控制器逻辑。
III.示例编码器系统。
图3是结合其可实现所描述的一些实施例的示例编码器系统(300)的框图。编码器系统(300)可以是能够用多种编码模式中的任一者(诸如用于实时通信的低等待时间编码模式、转码模式和针对来自文件或流的媒体回放的常规编码模式)操作的通用编码工具,或它可以是适用于一种这样的编码模式的专用编码工具。编码器系统(300)可以被实现为操作系统模块、应用库的部分、独立的应用。总体上,编码器系统(300)从视频源(310)接收源视频帧序列(311)并产生经编码数据作为到信道(390)的输出。输出到信道的经编码数据可包括使用基于散列的块匹配来编码的内容。
视频源(310)可以是相机、调谐器卡、存储介质、或其它数字视频源。视频源(310)以例如每秒30帧的帧速率产生视频帧序列。如本文中所使用的,术语“帧”一般指代源、经编码的或经重构的图像数据。对于逐行扫描视频,帧是逐行扫描视频帧。对于隔行视频,在各示例实施例中,隔行视频帧可以在编码之前被去隔行。替换地,两个示例性隔行视频场被编码成经隔行的视频帧或分开的场。除了指示逐行视频帧之外,术语“帧”或“图片”可以指示单个非成对的视频场、互补的成对视频场、表示在给定时间的视频对象的视频对象平面、或较大图像中的感兴趣区域。视频对象平面或区域可以是包括场景的多个对象或区域的较大图像的一部分。
抵达的源帧(311)被存储在包括多个帧缓冲区存储区域(321、322、…、32n)的源帧临时存储器存储区域(320)中。帧缓冲区(321、322等)在源帧存储区域(320)中保持一个源帧。在一个或多个源帧(311)已被存储在帧缓冲器(321,322等)中后,帧选择器(330)周期性地从源帧存储区域(320)中选择一个体源帧。帧选择器(330)选择帧以供输入到编码器(340)的次序可不同于视频源(310)产生这些帧的次序,例如帧可在次序上领先,以促成时间上向后的预测。在编码器(340)之前,编码器系统(300)可包括预处理器(未示出),该预处理器在编码之前执行对选中的帧(331)的预处理(例如滤波)。预处理还可包括到供编码的到主要和次要分量的色彩空间转换。通常,在编码之前,视频已被转换成诸如YUV的色彩空间,其中亮度(Y)分量的样本值表示明亮度或强度值,而色度(U,V)分量的样本值表示色差值。色度样本值可以被子采样到较低的色度采样率(例如用于YUV4:2:0格式),或者色度样本值可以具有与亮度样本值相同的分辨率(例如用于YUV4:4:4格式)。或者,视频可用另一格式(例如,RGB4:4:4格式)来编码。
编码器(340)编码选中的帧(331)以产生经编码的帧(341)并且还产生存储器管理控制操作(“MMCO”)信号(342)或参考图片集(“RPS”)信息。如果当前帧不是已被编码的第一帧,则在执行其编码处理时,编码器(340)可以使用已经被存储在经解码帧的临时存储器存储区域(360)中的一个或多个先前被编码/解码的帧(369)。这样的存储的经解码帧(369)被用作用于当前源帧(331)的内容的帧间预测的参考帧。一般来说,编码器(340)包括执行编码任务的多个编码模块,编码任务为诸如分割成小块、帧内预测估计和预测、运动估计和补偿、频率变换、量化和熵编码。由编码器(340)执行的确切操作可以取决于压缩格式而变化。输出的经编码数据的格式可以是HEVC格式、Windows媒体视频格式、VC-1格式、MPEG-x格式(例如,MPEG-1、MPEG-2或MPEG-4)、H.26x格式(例如,H.261、H.262、H.263或H.264)或其它格式的变型或扩展。
编码器(340)可以将帧分割成相同尺寸或不同尺寸的多个小块。例如,编码器(340)沿小块行和小块列来拆分帧,这些小块行和小块列利用帧边界定义在该帧内的小块的水平和垂直边界,其中每个小块是矩形区域。小块通常被用于改善针对并行处理的选项。帧还可以被组织成一个或多个片,其中一个片可以是整个帧或该帧的区域。片可以独立于帧中的其它片编码,这改善了错误复原性。出于编码和解码的目的,片或小块的内容被进一步分割成块或其它样本值集。
对于根据HEVC标准的句法来说,编码器将帧(或片或小块)的内容拆分成编码树单元。编码树单元(“CTU”)包括被组织为亮度编码树块(“CTB”)的亮度采样值,并且对应的色度采样值被组织为两个色度CTB。CTU(及其CTB)的尺寸由编码器来选择,并且可例如为64x64、32x32或16x16个样本值。CTU包括一个或多个编码单元。编码单元(“CU”)具有亮度编码块(“CB”)和两个对应的色度CB。例如,具有64x64亮度CTB和两个64x64色度CTB(YUV4:4:4格式)的CTU可以被拆分成4个CU,其中每个CU包括一32x32亮度CB和两个32x32色度CB,并且每个CU可能被进一步拆分成更小的CU。或者,作为另一示例,具有64x64亮度CTB和两个32x32色度CTB(YUV4:2:0格式)的CTU可以被拆分成4个CU,其中每个CU包括一32x32亮度CB和两个16x16色度CB,并且每个CU可能被进一步拆分成更小的CU。CU的最小允许尺寸(例如8×8、16×16)可被信号化在位流中。
通常,CU具有诸如帧间或帧内之类的预测模式。出于信号化预测信息(例如预测模式细节、移位值等)和/或预测处理的目的,CU包括一个或多个预测单元。预测单元(“PU”)具有亮度预测块(“PB”)和两个对应的色度PB。对于帧内预测的CU,PU与CU具有相同的尺寸,除非CU具有最小尺寸(例如8x8)。在该情况下,CU可被拆分成四个较小的PU(例如,如果最小CU尺寸为8x8,则PU为4x4),或者PU可具有最小CU尺寸,如CU的句法元素所指示的。出于残留编码/解码的目的,CU还具有一个或多个变换单元,其中变换单元(“TU”)具有一变换块(“TB”)和两个色度TB。在帧内预测的CU中的PU可以包含单个TU(尺寸与PU相同)或多个TU。如本文中所使用的,术语“块”可以指示CB、PB、TB或某些其它样本值集,这取决于上下文。编码器决定如何将视频分割成CTU、CU、PU、TU等。
回到图3,编码器根据来自源帧(331)中的其它、先前重构的样本值的预测来表示该帧(331)内编码的块。对于帧内BC预测,图片内估计器估计块相对于其它、先前重构的采样值的块的位移。帧内预测参考区域是帧中用于生成块的BC预测值的样本区域。帧内预测区域可用块向量(“BV”)值(在BV估计中确定,随后被编码)来指示,或可替换地,用指示块散列字典中的重构块的散列值来指示。对于块的空间内预测,图片内估计器估计相邻的经重构的样本值到该块的外插。图片内估计器输出经熵编码的预测信息(例如帧内BC预测的BV值或散列值、以及空间内预测的预测模式(方向))。帧内预测预测器应用预测信息来确定帧内预测值。
编码器(340)依据来自参考帧的预测来表示源帧(331)的帧间编码的预测的块。运动估计器估计块相对于一个或多个参考帧(369)的运动。当使用多个参考帧时,这多个参考帧可来自不同的时间方向或相同的时间方向。经运动补偿的预测参考区域是(诸)参考帧中用于生成当前帧中的样本块的经运动补偿的预测值的样本区域。运动估计器输出诸如运动向量信息之类被熵编码的运动信息。运动补偿器将运动向量应用于参考帧(369)以确定经运动补偿的预测值。
编码器确定在块预测值(帧内或帧间)和对应的原始值之间的差值(如果有的话)。这些预测残留值将进一步使用频率变换、量化和熵编码来编码。例如,编码器(340)为图片、小块、片和/或视频的其它部分设置量化参数(“QP”)的值,并相应地量化变换系数。编码器(340)的熵编码器压缩经量化的变换系数值以及某些辅助信息(例如运动向量信息、BV值、散列值、QP值、模式决策、参数选择)。典型的熵编码技术包括指数-Golomb编码、算术编码、差分编码、Huffman编码、行程长度编码、可变长度到可变长度(“V2V”)编码、可变长度到固定长度(“V2F”)编码、LZ编码、词典编码、概率区间划分熵编码(“PIPE”)和上述编码的组合。熵编码器可针对不同种类的信息使用不同的编码技术,并可从特定编码技术内的多个代码表中进行选择。
经编码的帧(341)和MMCO/RPS信息(342)通过解码处理仿真器(350)来处理。解码处理仿真器(350)实现了解码器的一些功能,例如对任务进行解码以重构参考帧。解码处理仿真器(350)使用MMCO/RPS信息(342)来确定给定的经编码帧(341)是否需要被重构并被存储以供在对要编码的后续帧的帧间预测中用作参考帧。如果MMCO/RPS信息(342)指示经编码的帧(341)需要被存储,则解码处理仿真器(350)对将由解码器进行的解码处理进行建模,该解码器接收经编码的帧(341)并产生相应的经解码的帧(351)。通过这么做,当编码器(340)已经使用已被存储在经解码帧存储区域(360)中的经解码的帧(369)时,解码处理仿真器(350)还使用来自存储区域(360)的经解码的帧(369)作为解码处理的一部分。
经解码帧临时存储器存储区域(360)包括多个帧缓冲存储区域(361、362、…、36n)。解码处理仿真器(350)使用MMCO/RPS信息(342)来管理存储区域(360)中的内容,以便标识出具有编码器(340)不再需要将其用作参考帧的帧的任何帧缓冲器(361、362等)。在对解码处理进行建模之后,解码处理仿真器(350)在帧缓冲区(361、362等)中存储已经以此方式标识出的新解码的帧(351)。
经编码的帧(341)和MMCO/RPS信息(342)被缓冲在临时的经编码数据区域(370)中。被聚集在经编码数据区域(370)中的经编码数据包含一个或多个图片的经编码数据作为基本经编码视频位流的句法的一部分。在经编码数据区域(370)中被聚集的经编码数据还可包括与经编码的视频数据相关的媒体元数据(例如作为一个或多个补充增强信息(“SEI”)消息或视频可用性信息(“VUI”)消息中的一个或多个参数)。
来自临时的经编码数据区域(370)的经聚集的数据(371)由信道编码器(380)处理。信道编码器(380)可以(例如根据诸如ISO/IEC13818-1的媒体流复用格式)来分组化经聚集的数据以供作为媒体流来传输,在这种情况中,信道编码器(380)可以添加句法元素作为媒体传输流的句法的一部分。或者,信道编码器(380)可以(例如根据诸如ISO/IEC14496-12的媒体容器格式)组织经聚集的数据以供作为文件来存储,在这种情况中,信道编码器(380)可以添加句法元素作为媒体存储文件的句法的一部分。或者,更一般地,信道编码器(380)可以实现一个或多个媒体系统复用协议或传输协议,在这种情况中,信道编码器(380)可以添加句法元素作为(诸)协议的句法的一部分。信道编码器(380)将输出提供给信道(390),该信道(390)表示存储、通信连接或该输出的另一信道。
IV.示例解码器系统。
图4是示例解码器系统(400)的框图。解码器系统(400)可以是能够在多种解码模式(例如针对实时通信的低等待时间解码模式以及针对来自文件或流中的媒体回放的常规解码模式)中的任一者操作的通用解码工具,或它可以是适用于一种这样的解码模式的专用解码工具。解码器系统(400)可以被实现为操作系统模块、应用库的一部分或独立的应用。总体上,解码器系统(400)从信道(410)接收经编码数据并产生经重构的帧作为针对输出目的地(490)的输出。经编码数据可包括使用基于散列的块匹配来编码的内容。
解码器系统(400)包括信道(410),该信道(410)可以表示存储、通信连接或针对作为输入的经编码数据的另一信道。信道(410)产生已经被信道编码的经编码数据。信道解码器(420)可以处理经编码数据。例如,信道解码器(420)可以(例如根据诸如ISO/IEC13818-1的媒体流复用格式)来去分组化已被聚集以供作为媒体流来传输的数据,在这种情况中,信道解码器(420)可以解析所添加的作为媒体传输流的句法的一部分的句法元素。或者,信道解码器(420)可以(例如根据诸如ISO/IEC14496-12的媒体容器格式)来将已被聚集以供作为文件来存储的经编码的视频数据分开,在这种情况中,信道解码器(420)可以解析所添加的作为媒体存储文件的句法的一部分的句法元素。或者,更一般地,信道解码器(420)可以实现一个或多个媒体系统去复用协议或传输协议,在这种情况中,信道解码器(420)可以解析所添加的作为(诸)协议的句法的一部分的句法元素。
从信道解码器(420)输出的经编码数据(421)被存储在临时的经编码数据区域(430)中,直到已经接收到足够数量的这样的数据。经编码数据(421)包括经编码的帧(431)和MMCO/RPS信息(432)。在经编码数据区域(430)中的经编码数据(421)包含一个或多个图片的经编码数据作为基本编码的视频比特流的句法的一部分。在经编码数据区域(430)中的经编码数据(421)还可包括与经编码的视频数据相关的媒体元数据(例如作为一个或多个SEI消息或VUI消息中的一个或多个参数)。
一般来说,经编码数据区域(430)临时存储经编码数据(421),直到这样的经编码数据(421)被解码器(450)使用。此时,经编码帧(431)和MMCO/RPS信息(432)的经编码数据被从经编码数据区域(430)传输到解码器(450)。当解码继续时,新的经编码数据被添加到经编码数据区域(430)并且保留在经编码数据区域(430)中的最旧的经编码数据被传输到解码器(450)。
解码器(450)周期性地解码经编码帧(431)以产生相应的经解码帧(451)。在适当时,当执行其解码处理时,解码器(450)可以将一个或多个先前解码的帧(469)用作帧间预测的参考帧。解码器(450)从经解码帧临时存储器存储区域(460)中读取这样的先前解码的帧(469)。通常,解码器(450)包括执行诸如熵解码、逆量化、逆频率变换、帧内预测、运动补偿和小块合并之类的解码任务的多个解码模块。由解码器(450)执行的确切操作可以取决于压缩格式而变化。
例如,解码器(450)接收经压缩的帧或帧序列的经编码数据,并产生包括经解码的帧(451)的输出。在解码器(450)中,缓冲器接收针对经压缩的帧的经编码数据,并在适当时,使得接收到的经编码数据对熵解码器可用。熵解码器对经熵编码的量化数据以及经熵编码的辅助信息进行熵解码,通常应用编码器中执行的熵编码的逆来进行熵解码。运动补偿器将运动信息应用于一个或多个参考帧以形成针对正被重构的帧的任何帧间编码块的经运动补偿的预测值。帧内预测模块可从相邻的、先前重构的样本值中空间地预测当前块的样本值,或者对于帧内BC预测,使用帧中的帧内预测区域的先前重构的样本值来预测当前块的样本值。帧内预测区域可用BV值来指示,或可替换地,用指示块散列字典中的重构块的散列值来指示。解码器(450)还重构预测残留值。逆量化器对经熵解码的数据进行逆量化。例如,解码器(450)基于比特流中的句法元素来设置图片、小块、片和/或其它视频部分的QP值,并相应地对变换系数进行逆量化。逆频率变换器将经量化的频域数据转换成空间域信息。对于帧间预测的块,解码器(450)将经重构的预测残留值与经运动补偿的预测组合。解码器(450)可以类似地将预测残留值与来自帧内预测的预测组合。视频解码器(450)中的运动补偿环路包括用于平滑经解码的帧(451)中的块边界行和/或列上的间断的自适应去块滤波器。
经解码帧临时存储器存储区域(460)包括多个帧缓冲区存储区域(461、462、…、46n)。经解码帧存储区域(460)是经解码图片缓冲区的一个示例。解码器(450)使用MMCO/PS信息(432)来标识该解码器可将经解码帧(451)存储在其中的帧缓冲器(461、462等)。解码器(450)将经解码的帧(451)存储在那个帧缓冲器中。
输出序列发生器(480)使用MMCO/RPS信息(432)来标识按输出次序将产生的下一帧何时可在经解码帧存储区域(460)中获得。当按输出次序将产生的下一帧(481)可在经解码帧存储区域(460)中获得时,输出序列发生器(480)读取该下一帧并将其输出到输出目的地(490)(例如显示器)。一般来说,输出序列发生器(480)将帧从经解码帧存储区域(460)中输出的次序可以与解码器(450)解码这些帧的次序不同。
V.示例视频编码器。
图5a和5b是可结合其实现所描述的一些实施例的通用视频编码器(500)的框图。编码器(500)接收包括当前图片的视频图片序列作为输入视频信号(505)并在经编码视频位流(595)中产生经编码数据作为输出。
编码器(500)是基于块的并使用取决于实现的块格式。块还可在不同的阶段上被进一步细分,例如在预测、频率变换和/或熵编码阶段。例如,图片可以被划分成64x64块、32x32块或16x16块,这些块随后可以被划分成更小的样本值块以用于编码和解码。在针对HEVC标准的编码的实现中,编码器将图片分割成CTU(CTB)、CU(CB)、PU(PB)和TU(TB)。
编码器(500)使用图片内编码和/或图片间编码来压缩图片。编码器(500)的许多组件被用于图片内编码和图片间编码两者。由这些组件执行的确切操作可取决于所压缩的信息的类型而变化。
小块化模块(510)可选地将图片分割成相同尺寸或不同尺寸的多个小块。例如,小块化模块(510)沿小块行和小块列来拆分图片,所述小块行和小块列利用图片边界定义在图片内的小块的水平和垂直边界,其中每个小块是矩形区域。
通用编码控件(520)接收输入视频信号(505)的图片以及来自编码器(500)的各个模块的反馈(未示出)。整体上,通用编码控件(520)将控制信号(未示出)提供给其它模块(例如小块化模块(510)、变换器/缩放器/量化器(530)、缩放器/逆变换器(535)、图片内估计器(540)、运动估计器(550)以及帧内/帧间切换)以设置和改变编码期间的编码参数。特别是,通用编码控件(520)可以决定在编码期间是否和如何使用基于散列的块匹配。通用编码控件(520)还可以估计编码期间的中间结果,例如执行速率-失真分析来估计。通用编码控件(520)产生指示在编码期间所做出的决定的通用控制数据(522),使得对应的解码器可以作出一致的决定。通用控制数据(522)被提供给头部格式化器/熵编码器(590)。
如果使用图片间预测来预测当前的图片,运动估计器(550)相对于一个或多个参考图片估计输入视频信号(505)的当前图片的采样值的块的运动。经解码的图片缓冲器(570)缓冲一个或多个经重构的先前编码的图片以供用作参考图片。当使用多个参考图片时,这多个参考图片可以来自不同的时间方向或相同的时间方向。运动估计器(550)产生诸如运动向量数据和参考图片选择数据之类的辅助信息运动数据(552)。运动数据(552)被提供给头部格式化器/熵编码器(590)以及运动补偿器(555)。
运动补偿器(555)将运动向量应用于来自经解码图片缓冲器(570)的(诸)经重构的参考图片。运动补偿器(555)产生针对当前图片的经运动补偿的预测。
在编码器(500)内的分开的路径中,图片内估计器(540)确定如何执行对输入视频信号(505)的当前图片的样本值块的图片内预测。当前图片可全部或部分使用图片内编码来编码。对于空间内预测,使用当前图片的重构(538)的值,图片内估计器(540)确定如何从当前图片的邻近的、先前重构的样本值中空间地预测当前图片的当前块的样本值。或者,对于使用BV值的帧内BC预测,图片内估计器(540)估计当前块的样本值到当前图片内的不同候选区域的位移。针对BV估计期间的基于散列的块匹配,图片内估计器(540)可使用块散列字典(541)来寻找当前块的BV值。块散列字典(541)是为基于散列的块匹配组织候选块的数据结构,如以下所描述的。块散列字典(541)可在编码期间被更新以存储关于新候选块的信息,如变得可以用于基于散列的块匹配中的那些候选块。替换地,帧内BC预测可使用代表块的散列值,代替使用BV值。在此情况中,针对基于散列的块匹配,图片内估计器(540)可使用块散列字典(541)来寻找散列值来用于代表当前块,如下所述。
图片内估计器(540)生成诸如指示帧内预测是否使用空间预测或BC预测(例如每个帧内块一个标记值)、预测模式方向(用于空间内预测)以及BV值或散列值(用于帧内BC预测)的信息之类的辅助信息图片内预测数据(542)。图片内预测数据(542)被提供给头部格式化器/熵编码器(590)以及图片内预测器(545)。
根据图片内预测数据(542),图片内预测器(545)从当前图片的邻近的先前重构的采样值中在空间上预测当前图片的当前块的采样值。或者,对于帧内BC预测,图片内预测器(545)使用图片内预测区域的先前重构的样本值来预测当前块的样本值,图片内预测区域的先前重构的样本值由针对当前块的BV值来指示(或被块散列字典(541)中的散列值指示)。当图片的色度数据具有与亮度数据相同的分辨率时(例如,当格式为YUV4:4:4格式或RGB4:4:4格式时),对色度块应用的BV值可与对亮度块应用的BV值相同。另一方面,当图片的色度数据相对于亮度数据具有降低的分辨率时(例如,当格式为YUV4:2:0格式时),对色度块应用的BV值可被缩小并可能被四舍五入以对色度分辨率方面的差异进行调整(例如,通过将BV值的垂直和水平分量除以2并且将其截短或四舍五入成整数值来调整)。当散列值代表(来自块散列字典(541)的)帧的亮度样本值的重构块时,可使用在帧的对应位置的色度样本值的重构块。
帧内/帧间切换选择运动补偿的预测或图片内预测的值用作给定块的预测(558)。预测(558)的块和输入视频信号(505)的原始当前图片的对应部分之间的差异(如果有的话)提供残留值(518)。在当前图片的重构期间,经重构的残留值与预测(558)组合来从视频信号(505)中产生对原始内容的重构(538)。然而,在有损压缩中,还是从视频信号(505)中丢失了一些信息。
在变换器/缩放器/量化器(530)中,频率变换器将空间域视频信息转换为频域(即频谱、变换)数据。对于基于块的视频编码,频率变换器将离散余弦变换(“DCT”)、其整数近似、或另一类型的前向块变换应用于预测残留数据的块(或者在预测(558)为空的情况下,应用于样本值数据),从而产生频率变换系数的块。编码器(500)可能还能够指示这样的变换步骤被省略了。缩放器/量化器对变换系数进行缩放和量化。例如,量化器将用步骤尺寸将非统一的标量量化应用于频域数据,该步骤尺寸在逐帧的基础、逐小块的基础、逐片的基础、逐块的基础、或其它基础上变化。经量化的变换系数数据(532)被提供给头部格式化器/熵编码器(590)。
在缩放器/逆变换器(535)中,缩放器/逆量化器对经量化的变换系数执行逆缩放和逆量化。逆频率变换器执行逆频率变换,从而产生经重构的预测残留值或样本值的块。编码器(500)将经重构的残留值与预测(558)的值(例如,经运动补偿的预测值、图片内预测值)组合以形成重构(538)。
对于图片内预测,重构(538)的值可以被馈送回图片内估计器(540)和图片内预测器(545)。重构(538)的值还可用于更新块散列字典(541)。同样,重构(538)的值可以被用于对后续图片的经运动补偿的预测。重构(538)的值可被进一步滤波。对于视频信号(505)的给定图片,滤波控件(560)确定如何对重构(538)的值执行去块滤波和样本自适应偏移(“SAO)滤波。”滤波控件(560)生成滤波控制数据(562),它被提供给头部格式化器/熵编码器(590)和合并器/(诸)滤波器(565)。
在合并器/(诸)滤波器(565)中,编码器(500)将来自不同小块的内容合并到图片的经重构版本中。编码器(500)根据滤波器控制数据(562)选择性地执行去块滤波和SAO滤波,以便自适应地平滑各帧中的各边界上的间断。取决于编码器(500)的设置,小块边界可以被选择性地滤波或根本不被滤波,并且编码器(500)可以在经编码的位流内提供指示是否应用这样的滤波的句法。经解码的图片缓冲器(570)缓冲经重构的当前图片以供在后续的经运动补偿的预测中使用。
头部格式化器/熵编码器(590)对通用控制数据(522)、经量化的变换系数数据(532)、图片内预测数据(542)、运动数据(552)以及滤波器控制数据(562)进行格式化和/或熵编码。例如,头部格式化器/熵编码器(590)将上下文自适应二进制算法编码用于对各句法元素进行熵编码。
头部格式化器/熵编码器(590)在经编码的视频位流(595)中提供经编码数据。经编码的视频比特流(595)的格式可以是HEVC格式、Windows媒体视频格式、VC-1格式、MPEG-x格式(例如,MPEG-1、MPEG-2或MPEG-4)、H.26x格式(例如,H.261、H.262、H.263或H.264)或其它格式的变型或扩展。
取决于所需的压缩的实现和类型,编码器的模块可被添加、省略、拆分成多个模块、与其它模块组合、和/或用相似的模块来替代。在替换实施例中,具有不同模块和/或其它配置的模块的编码器执行一个或多个所描述的技术。编码器的具体实施例通常使用编码器(500)的变型或补充版本。所示的编码器(500)内的各模块之间的关系指示了信息在编码器中的一般流动;为简明起见,未示出其它关系。
VI.示例视频解码器。
图6是一般化解码器(600)的框图。解码器(600)接收经编码的视频比特流(605)中的经编码数据并产生包括经重构视频(695)的图片的输出。经编码的视频比特流(605)的格式可以是HEVC格式、Windows媒体视频格式、VC-1格式、MPEG-x格式(例如,MPEG-1、MPEG-2或MPEG-4)、H.26x格式(例如,H.261、H.262、H.263或H.264)或其它格式的变型或扩展。
解码器(600)是基于块的并使用取决于实现的块格式。块可以在不同的阶段被进一步细分。例如,图片可以被划分成64x64块、32x32块或16x16块,这些块随后可以被划分成更小的样本值块。在针对HEVC标准的解码实现中,将图片分割成CTU(CTB)、CU(CB)、PU(PB)和TU(TB)。
解码器(600)使用图片内解码和/或图片间解码来对图片进行解压缩。解码器(600)的许多组件被用于图片内解码和图片间解码这两者。由这些组件执行的确切操作可以取决于正被解压缩的信息的类型而变化。
缓冲器接收经编码的视频比特流(605)中的经编码数据,并使得接收到的经编码数据可用于解析器/熵解码器(610)。解析器/熵解码器(610)通常应用在编码器(500)中执行的熵编码的逆(例如上下文自适应二进制算术解码)对经熵编码的数据进行熵解码。作为解析和熵解码的结果,解析器/熵解码器(610)产生通用控制数据(622)、经量化的变换系数数据(632)、图片内预测数据(642)、运动数据(652)以及滤波器控制数据(662)。
通用解码控件(620)接收通用控制数据(622)并将控制信号(未示出)提供给其它模块(例如缩放器/逆变换器(635)、图片内预测器(645)、运动补偿器(655)以及帧内/帧间切换)以设置和改变解码期间的解码参数。
如果当前图片是使用图片间预测来预测的,则运动补偿器(655)接收运动数据(652),诸如运动向量数据和参考图片选择数据。运动补偿器(655)将运动向量应用于来自经解码图片缓冲器(670)的(诸)经重构的参考图片。运动补偿器(655)产生针对当前图片中的帧间编码块的运动补偿的预测。经解码图片缓冲器(670)存储一个或多个先前重构的图片以供用作参考图片。
在解码器(600)内的分开路径中,图片内预测预测器(645)接收图片内预测数据(642),诸如指示图片内预测是否使用空间预测或BC预测(例如,每个帧内块一个标志值)、预测模式方向(对于帧内空间预测)、和BV值或散列值(对于帧内BC预测)的信息。对于帧内空间内预测,根据预测模式数据使用当前图片的重构(638)的值,图片内预测器(645)从当前图片的相邻的、先前重构的样本值中空间地预测当前图片的当前块的样本值。或者,对于使用BV值的帧内BC预测,图片内预测器(645)使用图片内预测区域的先前重构的样本值来预测当前块的样本值,图片内预测区域的先前重构的样本值由针对当前块的BV值来指示。替换地,对于使用散列值的帧内BC预测,图片内预测器(645)使用当前块的被信号化的散列值确定当前块的重构块。在这种情况下,图片内预测器(645)使用块散列字典(641)以寻找用于经信号化的散列值的重构块。块散列字典(641)是根据散列值组织候选块值的数据结构。
图片内/图片间开关选择运动补偿的预测或图片内预测的值用作给定块的预测(658)。例如,当遵循HEVC句法时,可以基于为图片中的CU编码的句法元素来控制图片内/图片间切换,该CU可以包括图片内预测的CU和图片间预测的CU。解码器(600)将预测(658)与重构的残留值组合以产生来自视频信号的内容的重构(638)。
为了重构残留值,缩放器/逆变换器(635)接收并处理经量化的变换系数数据(632)。在缩放器/逆变换器(635)中,缩放器/逆量化器对经量化的变换系数执行逆缩放和逆量化。逆频率变换器执行逆频率变换,从而产生经重构的预测残留值或样本值的块。例如,逆频率变换器将逆块变换应用到频率变换系数,从而产生样本值数据或预测残留数据。逆频率变换可以是逆DCT、其整数近似或另一种类型的逆频率变换。
对于图片内预测,重构(638)的值可以被馈送回图片内预测器(645)。重构(638)的值可被用于更新块散列字典(641)。对于图片间预测,重构(638)的值可以被进一步滤波。在合并器/(诸)滤波器(665)中,解码器(600)将来自不同小块的内容合并到图片的经重构版本中。解码器(600)根据滤波器控制数据(662)和滤波自适应规则来执行去块滤波和SAO滤波,以便自适应地平滑各帧中的各边界上的间断。小块边界可以被选择性地滤波或根本不滤波,这取决于解码器(600)的设置或经编码的比特流数据内的句法指示。经解码的图片缓冲器(670)缓冲经重构的当前图片以供在后续的经运动补偿的预测中使用。
解码器(600)还可包括后处理去块滤波器。后处理去块滤波器可选地平滑经重构图片中的间断。其他滤波(诸如去振铃滤波)还可作为后处理滤波的一部分被应用。
取决于所希望的解压缩的实现和类型,解码器的模块可以被添加、省略、拆分成多个模块、与其他模块组合和/或用类似的模块来替代。在替换实施例中,具有不同模块和/或其它配置的模块的解码器执行一个或多个所描述的技术。解码器的具体实施例通常使用解码器(600)的变型或补充版本。所示的解码器(600)内的模块之间的关系指示信息在解码器中的一般流动;为简明起见,未示出其它关系。
VII.基于散列的块匹配。
本章节呈现基于散列的块匹配的各特征。这些特征中的一些涉及在块向量(“BV”)估计期间使用基于散列的块匹配的编码,而其他特征涉及组织各候选块以用于基于散列的块匹配的数据结构。又一些特征涉及分层的基于散列的块匹配。这些特征可促进在速率-失真性能(通过选择与其他办法相比更好的BV值)和/或计算效率(通过与其他办法相比更高效地选择BV值)方面更有效的帧内块复制(“BC”)预测。
具体地,基于散列的块匹配可在编码诸如屏幕捕捉内容之类的某种“人工”创建的视频内容时改善速率-失真性能。屏幕捕捉内容典型地包括重复的结构(例如图形、文本字符),其为基于散列的块匹配提供了改善性能的机会。屏幕捕捉内容通常用具有高色度采样分辨率的格式(例如YUV4:4:4或RGB4:4:4)来编码,但是它也可以用具有较低的色度采样分辨率(例如YUV4:2:0)的格式来编码。编码/解码屏幕捕捉内容的常见场景包括远程桌面会议和对自然视频或其它“经混合的内容”视频的图形覆盖的编码/解码。
A.帧内BC预测模式和BV值——介绍。
对于帧内BC预测,图片的当前块的样本值是使用同一图片中的样本值来预测的。BV值指示从当前块到图片的包括用于预测的样本值的区域的位移。用于预测的样本值是先前重构的样本值。BV值在比特流中被信号化,并且解码器可以使用BV值来确定图片的区域以用于预测,其也在解码器处被重构。帧内BC预测是一种形式的图片内预测——针对图片的块的帧内BC预测不使用除了同一图片中的样本值以外的任何样本值。
图7示出针对当前帧(710)的当前块(730)的帧内BC预测。当前块可以是编码单元(“CU”)的编码块(“CB”)、预测单元(“PU”)的预测块(“PB”)、变换单元(“TU”)的变换块(“TB”)或其它块。当前块的尺寸可以是64×64、32×32、16×16、8×8或某个其它尺寸。更一般地,当前块的尺寸为m×n,其中m和n中的每一者都是整数,并且其中m和n可彼此相等或可具有不同的值。替换地,当前块可具有某一其他形状(例如,经编码视频对象的具有非矩形形状的区域)。
BV(740)指示当前块(730)到图片的包括用于预测的样本值的区域(750)的位移(或偏移)。由BV(740)指示的帧内预测区域(750)有时被称为当前块(730)的“匹配块”。匹配块可与当前块(730)相同,或它可以是当前块(730)的近似。假设当前块的左上位置是在当前帧的位置(x0,y0)处,并假设帧内预测区域的左上位置在当前帧的位置(x1,y1)处。BV指示位移(x1-x0,y1-y0)。例如,如果当前块的左上位置在位置(320,256)处,并且帧内预测区域的左上位置在位置(295,270)处,则BV值为(-25,14)。在本示例中,负水平位移指示在当前块的左边的位置,而负垂直位移指示在当前块之上的位置。
帧内BC预测可以通过利用使用块复制操作的冗余性(例如帧内部的重复模式)来改善编码效率。然而,考虑到编码器可能估计的候选块的数量,为当前块查找匹配块可以在计算上是复杂的并且耗时的。将当前块的样本值与单个候选块的样本值在样本级块匹配中进行比较可涉及数千操作。例如,比较64×64当前块和64×64候选块的样本值可包括64×64=4096个比较操作(例如,减法操作)以及记录比较操作的结果的操作。
图8示出在块匹配操作中当前帧(810)的当前块(830)的某些候选块。四个BV(841,842,843,844)指示了四个候选块的位移。候选块可在帧(810)的经重构内容内的任何地方。(从左向右随后从上到下编码各块。)候选块可以与其它候选块重叠,如由BV(843,844)指示的候选块所示。BV估计的计算复杂度在BV值的搜索范围涵盖所有先前重构的帧区域时尤其成问题。
图9示出了用于具有1920样本值宽和1080样本值高的示例帧(910)的块(930)的块匹配的候选块的数量。当前块(930)是在帧(910)中的位置(896,576)处的64×64的块,且候选块也是64×64的块。候选块的搜索区域在图9中用阴影线区示出。搜索区域内的任何64x64块可被认为是候选块。帧(910)内的候选块的数量给出如下:(y位置-高度+1)×(宽度-宽度+1)+(x位置-宽度+1),其中x位置和y位置指示帧(910)中的当前块(930)的位置,宽度是帧(910)的宽度,而宽度和高度是当前块(930)的尺寸。对于图9所示的值,在当前块(930)的搜索区域中有(576-64+1)×(1920-64+1)+(896-64+1)=953,474个候选块。执行当前块(930)和甚至一小组可能的候选块之间的样本级块匹配操作将在计算上是非常密集的。如果搜索范围包括另一先前重构的帧,则操作的数量甚至更高。
B.基于散列的块匹配。
当编码器使用基于块的匹配时,该编码器为多个候选块中的每一块确定散列值。编码器还确定当前块的散列值。如果两个块相同,它们的散列值相同。使用散列值,编码器可快速且高效地标识具有与当前块相同的散列值的候选块,并过滤出具有不同散列值的候选块。编码器可接着进一步评估具有与前块相同的散列值的候选块。基于散列的块匹配加速寻找当前块的匹配块的过程。
图10示出了在基于散列的块匹配中用于候选块B(x,y)的散列值(1000),其中x和y分别指示给定候选块的左上位置的水平和垂直坐标。候选块具有使用散列函数h()确定的散列值。对于搜索范围中的每一候选块B(x,y),编码器确定该候选块的散列值h(B)。一般而言,散列函数h()得到n个可能散列值,指定为h0到hn-1。对于给定散列值,具有那个散列值的候选块聚成组。例如,在图10中,候选块B(1266,263)、B(1357,365)、B(1429,401),B(502,464)…具有散列值h0。各组可包括不同数量的候选块。例如,在图10中,散列值h4的组包括单个候选块,而散列值h0的组包括4个以上候选块。
以此方式,可能的候选块被分发到n个分类。例如,如果散列函数h()产生12位散列值,则图9中的953,474个候选块分成212=4096个类别,每个类别包括平均233个候选块,假定候选块平均分布到各散列值类别。在一些实现中(参见C小节),每散列值的候选块的数量可通过消除具有该散列值的冗余的等同块来被进一步减少。同样,在某些实现中(参见D小节),编码器可使用不同的散列函数迭代地减少候选块的数量。
散列函数h()可以是循环冗余校验(“CRC”)函数或其它散列函数。一些类型的散列函数(例如,CRC函数)将相似的块映射到不同的散列值,这在寻找与当前块精确对应的匹配块是可能是高效的。其他类型的散列函数(例如,位置敏感散列函数)将相似的块映射到相同的散列值,这在匹配块近似于当前块时可能是合适的。下文描述了各示例散列函数。
通过散列函数h(),编码器确定当前块B当前的散列值。在图10中,散列值h(B当前)是h3。使用当前块的散列值,编码器可标识具有相同散列值的候选块(图10中的轮廓框所示),并过滤出其它候选块。当散列函数将类似块映射到不同散列值时,被标识的候选块(与当前块相同的散列值)包括可能与当前块相同的块。当散列函数将类似块映射到相同散列值时,被标识的候选块(与当前块相同的散列值)包括可能与当前块相同的或可能非常接近当前块的块。不管怎样,从这些标识出的候选块中,编码器可(例如,使用逐样本的块匹配操作)标识出当前块的匹配块。
总体地,因为散列值比较比逐样本的块匹配简单得多,基于散列的块匹配可使得在大搜索范围中评估候选块的过程高效得多。同样,候选块的散列值可以被重用于图片内的不同块的基于散列的块匹配,所以计算各候选块的散列值的成本可跨整个图片的各基于散列的块匹配操作来分摊。
图11a示出用于在BV估计期间使用基于散列的块匹配来编码图片的一般化技术(1100)。编码器(诸如参考图3或图5a-5b描述的编码器)可执行该技术(1100)。
编码器使用具有基于散列的块匹配的BC预测来编码(1110)图片的数据。BC预测可以是图片内BC预测(如果候选块与当前块处于同一图片中),或者BC预测可以参考另一图片(在同一视频序列中,在另一视频序列中,或者活动(sprite)或所生成的参考图片)中的候选块。候选块是搜索范围的一部分,这可包括在具有当前块的图片(或另一图片)中所有先前重构的内容,或可包括先前重构的内容的子集(例如,当前CTU中以及具有当前块的图片中的一个或多个其他CTU中经重构的内容,或与当前块相同的小块中的经重构的内容,或与当前块相同的片中的经重构的内容)。在它编码(1110)图片的数据时,编码器可以执行图11b中所示的技术(1111)。或者,编码器可以例如使用分层的基于散列的块匹配以某一其他方式来执行图片的数据的编码(1110)。
根据图11b的技术(1111),编码器获得(1120)要编码的下一块并确定(1130)该块(作为当前块)的散列值。散列函数可以是CRC函数,位置敏感的散列函数,或其他散列函数。
编码器至少部分地基于当前块的散列值来标识(1140)多个候选块中的匹配块。例如,对于候选块中的一者或多者,编码器将当前块的散列值与候选块的散列值相比较。或者,在数据结构根据散列值来组织各候选块时,编码器使用当前块的散列值来选择候选块列表,随后确定所选择的列表中的任何候选块中的匹配块(例如,在当前块与给定候选块的样本值之间执行块匹配操作)。
如果BV估计成功,则编码器标识(1150)匹配块的BV值以用于当前块。例如,BV值指示当前块的左上位置与匹配块的左上位置之间的位移。编码器可以编码BV值,例如使用CABAC或另一形式的熵编码。否则,如果BV估计失败,则编码器可以使用空间图片内预测或另一形式的图片内预测来编码当前块。
在数据结构根据散列值来组织各候选块时,编码器可以更新数据结构来将与刚编码的块交叠的新候选块纳入考虑。编码器检查(1160)是否继续图片中的下一块。如果是,则编码器获得(1120)下一块并确定(1130)它的散列值。
返回图11a,编码器输出(1190)经编码数据,它包括BV值。编码器可以针对下一图片重复该技术(1100)。
C.用于基于散列的块匹配的数据结构。
在某些示例实现中,编码器使用根据它们的散列值组织候选块的数据结构。数据结构可帮助使得基于散列的块匹配更加计算高效。
图12a示出为基于散列的块匹配组织候选块的示例数据结构(1200)。对于散列函数h(),n个可能散列值为h0到hn-1。具有相同散列值的候选块在同一候选块列表中分类。给定候选块列表可包括零个或更多条目。例如,针对散列值h2的候选块列表不具有条目,针对散列值h6的列表具有两个条目,并且针对散列值h1的列表具有四个以上的条目。
条目(hi,x)包括具有散列值hi的第x个候选块的信息。如图12b中所示,候选块列表中的条目可包括块B(x,y)的地址(例如,块的左上位置的水平和垂直坐标)。或者,如图12c中所示,候选块列表中的条目可包括块B(x,y)的地址以及来自第二散列函数的散列值,其可用于进行分层的基于散列的块匹配(参见D小节)。
在针对当前块的基于散列的块匹配期间,编码器确定当前块的散列值h(B当前)。编码器保持具有相同散列值的候选块列表,并排除其他n-1个列表。为选择匹配块,编码器可将当前块与保留的候选块列表中的候选块进行比较。因此,通过使用散列值h(B当前)的简单的查找操作,编码器可消除候选块的(n-1)/n(平均),并聚焦于保留的列表中余下的1/n候选块(平均),显著减少了样本级块匹配操作的数量。
数据结构可被认为是其中每个条目代表一个候选块的动态字典。随着更多候选块被添加到图片的经重构的内容中,并且因此使得能够用于图片的后面的块的基于散列的块匹配中,该数据结构可在编码期间增长。具体而言,在当前块被编码后,覆盖刚编码的当前块的新候选块可用于基于散列的块匹配中。例如,在一8×8的块被编码后,该8×8的块可用作候选块。位于当前块左边一样本位置的增量偏移处的七个8×8的块也可用作候选块。并且,对于位于自当前块的一样本位置的增量偏移的七个行的每一个,八个8×8的块可用作候选块。因此,在当前的8×8的块被编码后,8×8=64个新候选块的条目可被添加到数据结构。类似地,在当前的64×64的块被编码后,4096个候选块的条目可被添加到数据结构。
不同数据结构可被用于不同尺寸的块。例如,一个数据结构包括8×8个候选块的散列值、第二数据结构包括16×16个候选块的散列值、第三数据结构包括32×32个候选块的散列值,以此类推。在基于散列的块匹配期间使用的数据结构取决于当前块的尺寸。在任何大小的当前块被编码后,全部数据结构可被更新,其中新候选块已对基于散列的块匹配可用。
对于高分辨率图片,数据结构可存储代表很大数量的候选块的信息。为了减少用于数据结构的存储器的量,编码器可去除冗余值。例如,编码器可通过使用以下方法避免向数据结构添加相同的块。在向数据结构添加新候选块B之前,编码器检查是否已经有表示在数据结构中的与B相同的候选块。针对此检查,编码器可为新候选块确定散列值,接着进一步评估表示在数据结构中的具备相同散列值的那些候选块。(具有不同散列值的候选块必然不同于新候选块B。)如果数据结构已经包括与B相同的候选块,那么B被添加以替代先前相同的候选块,或简单地先前相同的候选块被保留。如果数据结构不包括与B相同的候选块,那么B被添加到数据结构。
一般而言,通过去除相同块来减少数据结构的尺寸可伤及编码效率。当多个相同候选块潜在可用时,它们可导致当前块的不同BV值,其中一个BV值可用比其它更少的比特来编码。如果多个等同的候选块中仅有一个被保留在数据结构中,则编码器可能没有学习到对当前块而言将被更高效地编码的BV值。因此,通过决定是否去除相同块,编码器可折衷数据结构的存储器尺寸和编码效率。
图13a示出用于使用组织基于散列的块匹配的各候选块的数据结构进行编码的一般化技术(1300)。编码器(诸如参考图3或图5a-5b描述的编码器)可执行该技术(1300)。
编码器创建(1310)根据散列值组织多个候选块的数据结构。例如,编码器创建如参考图12a和12b说明的数据结构,具有一个或多个可能的散列值中的每一者的块地址的列表。或者,编码器创建参考图12a和12c说明的数据结构。或者,编码器创建根据散列值组织多个候选块的另一数据结构。
编码器编码(1320)图片的数据,包括将该数据结构用于基于散列的块匹配。基于散列的块匹配可以是图片内BC预测(如果候选块与当前块处于同一图片中),或者基于散列的块匹配可以参考另一图片(在同一视频序列中,在另一视频序列中,或者活动(sprite)或所生成的参考图片)中的候选块。在它编码(1320)图片的数据时,编码器可以执行图13b中所示的技术(1321)。或者,编码器可以按某一其他方式执行图片的数据的编码(1320)。
根据图13b的技术(1321),编码器获得(1330)要编码的下一块并将数据结构用于基于散列的块匹配来编码(1340)该块(如果使用BC预测的话)。例如,编码器确定该块的散列值,使用该块的散列值来选择候选块列表,并确定所选择的列表中的任何候选块中的匹配块(例如,在该块与给定候选块的样本值之间执行块匹配操作)。
在编码该块后,编码器检查(1350)是否继续图片中的下一块。如果是,编码器更新(1360)数据结构以将与刚编码的块交叠的新候选块纳入考虑。编码器获得(1330)下一块并使用数据结构来编码(1340)该块。
在它更新数据结构时,编码器可以遵循各种方法中的任一种。例如,对于新候选块中的每一者,编码器确定新候选块的散列值并评估新候选块是否等同于数据结构中已表示的任何候选块。如果是,则编码器将该新候选块或等同块保持在数据结构中。如果否,则编码器将新候选块添加到数据结构。或者,在使用分层的基于散列的块匹配时(参见下文),对于新候选块中的每一者,编码器分别使用第一和第二散列函数来确定新候选块的第一和第二散列值,随后使用第一和第二散列值来评估新候选块是否等同于数据结构中已表示的任何候选块。如果是,则编码器将该新候选块或等同块保持在数据结构中。如果否,则编码器将新候选块添加到数据结构。
编码器输出(1390)图片的经编码数据。编码器可以针对下一图片重复该技术(1300)。
D.分层的基于散列的块匹配。
当编码器使用具有n个可能散列值的单个散列函数时,该编码器可基于当前块的散列值来排除n-1个候选块列表,但编码器可能还需要针对余下的候选块执行样本级块匹配操作。当更新组织候选块的数据结构时,编码器可能需要执行样本级块匹配操作来标识相同的块。总体而言,这些样本级块匹配操作可以是计算密集的。
因此,在某些示例实现中,编码器使用分层的基于散列的块匹配。分层的基于散列的块匹配可加速块匹配过程,并且还可以加速更新组织候选块的数据结构的过程。
分层的基于散列的块匹配使用以不同散列函数确定的多个散列值。对于块B(当前块或候选块),除了散列值h(B),编码器使用不同散列函数h'()确定另一个散列值h'(B)。使用当前块的第一散列值h(B当前),编码器为第一散列函数h()标识具有相同散列值的候选块。为进一步排除这些被标识的候选块的一些,编码器使用当前块的使用不同散列函数确定的第二散列值h'(B当前)。编码器将第二散列值h'(B当前)与先前标识的候选块的第二散列值(其具有相同第一散列值)进行比较,以过滤掉更多候选块。
在图12a的示例中,如果h(B当前)=h3,那么编码器选择具有条目(3,0)、条目(3,1)、条目(3,2)、条目(3,3),…的候选块以供进一步细化。如图12c中所示,对于候选块B,条目包括块地址和来自散列函数h'()的第二散列值h'(B)。编码器将当前块的第二散列值h'(B当前)与具有条目(3,0)、条目(3,1)、条目(3,2)、条目(3,3),…的各候选块的第二散列值h'(B)进行比较。基于第二散列值比较的结果,编码器可排除更多候选块,留下具有分别匹配h(B当前)和h'(B当前)的第一和第二散列值的候选块。编码器可对余下的候选块执行样本级块匹配以选择匹配块。
图14a-14c示出使用不同数据结构的分层的基于散列的块匹配的另一示例。图14a中的数据结构(1400)依据来自第一散列函数h()(其具有n1个可能散列值)的第一散列值来组织候选块。数据结构(1400)包括从h0…hn1-1的散列值的列表。在该示例中,编码器为当前块确定第一散列值h(B当前)=h2,并从结构(1400)选择h2的列表。
如图14b所示,h2的列表(1410)包括进一步通过来自第二散列函数h'()(其可能具有n2个可能散列值)的第二散列值组织余下的候选块的多个列表。列表(1410)包括从h'0…h'n2-1的散列值的列表,每个包括具有块地址的条目(例如,各候选块的左上位置的水平和垂直坐标),如在图14c中针对条目(1420)所示。在该示例中,编码器为当前块确定第二散列值h'(B当前)=h'0,并从列表(1410)选择h'0的列表。对于h'0的列表中的候选块,编码器可执行样本级块匹配以选择匹配块。
除了基于散列的块匹配之外,第二散列函数h'()可被用于简化更新组织候选块的数据结构的过程。例如,当编码器检查新候选块是否与已经表示在数据结构中的候选块相同时,编码器可使用具有不同散列函数的多个散列值来过滤出不相同的块。对于余下的候选块,编码器可执行样本级块匹配以标识任何相同块。
在前面的示例中,分层的基于散列的块匹配以及更新使用两个不同散列函数。替换地,编码器使用三个、四个或更多个散列函数以进一步过滤掉不相同的块,并且因此减少样本级块匹配操作的数量。
替换地,对于低复杂度的编码器,在散列值匹配时,编码器可跳过样本级块匹配操作。对于具有大量可能散列值的散列函数,如果两个块的全部散列值匹配那么存在很高可能性两个块是相同的。具体而言,在更新数据结构时,代替使用样本级块匹配来确认块是相同的,编码器可依赖于散列值比较来评估块是否相同。如果两个块的全部散列值匹配,那么基于新候选块和现存候选块是相同的假设,编码器从数据结构移除一个候选块(或不添加新候选块)。如果散列值不匹配,新候选块被添加到数据结构。这可能导致将某些不相同的块从数据结构排除,但是样本级块匹配操作被避免。
图15a示出用于使用分层的基于散列的块匹配来编码图片的一般化技术(1500)。编码器(诸如参考图3或图5a-5b描述的编码器)可执行该技术(1500)。
编码器编码(1510)图片的数据,包括分层的基于散列的块匹配。分层的基于散列的块匹配可以在BV估计期间用于图片内BC预测,或分层的基于散列的块匹配可被用于另一上下文中。在它编码(1510)图片的数据时,编码器可以执行图15b中所示的技术(1511)。或者,编码器可以按某一其他方式执行图片的数据的编码(1510)。
根据图15b的技术(1511),编码器获得(1520)要编码的下一块(作为当前块)。编码器还设置(1530)要用于分层的基于散列的块匹配的候选块。例如,编码器创建或更新组织各候选块的数据结构。对于数据结构中表示的候选块中的每一者,该数据结构存储多个散列值,该多个散列值使用不同的散列函数来确定。散列函数可以是CRC函数,位置敏感的散列函数,或其他散列函数。散列函数可以在散列函数的类型或可能的散列值的数量方面不同(例如,8位CRC对12位CRC)。
在每候选块使用两个散列值时,数据结构可包括根据来自第一散列函数的第一散列值索引的一个或多个列表,其中列表包括针对列表中的候选块中的每一者的、来自第二散列函数的第二散列值。或者,数据结构可以根据来自第一散列函数的第一散列值和来自第二散列函数的第二散列值来组织候选块。例如,该数据结构包括根据来自第一散列函数的第一散列值来索引的一个或多个第一候选块列表,其中每一第一候选块列表包括根据来自第二散列函数的第二散列值索引的一个或多个第二候选块列表,并且其中每一第二候选块列表包括一个或多个候选块的信息。
为标识当前块的匹配块,编码器使用具有多个阶段的分层的基于散列的块匹配。在多个阶段(迭代)中的每一阶段中,编码器使用不同散列函数之一确定(1540)当前块的散列值,随后至少部分地基于当前块的散列值来消除(1550)候选块以免于考虑。编码器随后检查(1560)是否继续下一散列函数。例如,如果不同散列函数中的任一者尚未被应用且如果还有多个候选块,则编码器在下一阶段(迭代)继续。
在最后散列函数已被应用后,编码器可以在当前块与任何剩余候选块的样本值之间执行(1570)块匹配操作。因而,编码器可以标识剩余候选块中的匹配块。如果剩余候选块中没有一个有资格作为匹配块,或者如果在多个迭代后没有剩余候选块,则编码器可以使用空间图片内预测或另一形式的图片内预测来编码当前块。
编码器检查(1580)是否继续图片中的下一块。如果是,则编码器获得(1520)下一块并设置(1530)(更新)它的候选块。
返回图15a,编码器输出(1590)经编码数据。编码器可以针对下一图片重复该技术(1500)。
E.使用输入样本值的基于散列的块匹配。
在某些示例实现中,在基于散列的块匹配中考虑的候选块包括经重构的样本值。即,候选块是图片中先前编码接着重构内容的部分。候选块的散列值从重构的样本值中确定。在基于散列的块匹配期间,编码器使用输入的样本值为当前块确定块散列值。编码器将其(或以其他方式使用散列值)与从候选块的重构的样本值中确定的散列值进行比较。
替换地,在基于散列的块匹配中考虑的候选块包括输入的样本值。即,候选块是图片的输入版本的一部分。候选块的散列值是从输入的样本值中确定的。在基于散列的块匹配期间,编码器使用输入的样本值为当前块确定块散列值。编码器将其(或以其他方式使用散列值)与从候选块的输入的样本值中确定的散列值进行比较。即便如此,来自经重构样本值的匹配块被用于代表当前块。因此,BC预测操作仍使用经重构的样本值。
图16a和16b示出了从输入样本值中确定散列值的通用视频编码器(1600)。在大多方面,编码器(1600)的模块与图5a和5b中示出的编码器(500)的模块相同,并且在图16a和16b中对这样的模块使用相同的参考标记。然而,块散列字典(1641)在图16b中不同。在图5b中,块散列字典(541)存储通过向经重构的样本值应用散列函数来确定的散列值,并且块散列字典(541)使用经重构的样本值被更新。在图16b中,作为对比,块散列字典(1641)存储通过将散列函数应用于来自输入视频信号(505)的输入样本值来确定的散列值,且在新候选块变得可供用于基于散列的块匹配时使用输入样本值来更新块散列字典(1641)。
在某些块有损编码时,使用从输入的样本值确定的散列值可改善性能。在此情况中,归因于量化噪声,如果散列值从经重构的样本值中确定,那么编码器可能不能找到精确匹配当前块的匹配块。通过从输入的样本值中确定散列值,基于散列的块匹配不受有损编码引入的失真的影响。编码器仍(例如使用BV值)向解码器信号化将哪个匹配块用于当前块。使用此信息和经重构的样本值,解码器使用块复制操作重构当前块。
F.用散列值表示块。
在某些示例实现中,编码器信号化代表当前块的匹配块的散列值,而不是发送当前块的匹配块的BV值。编码器,使用经信号化的散列值,根据散列值使用其自己的组织候选块的数据结构来重构当前块。在这一办法中,解码器创建并更新组织各候选块的数据结构。使用当前块的经信号化的散列值,解码器在数据结构中寻找合适的块,接着将那个块用作为当前块。在某些情况中,信号化散列值相比信号化BV值而言消耗较少比特。
在此方法中,编码器和解码器使用经重构的样本值来确定候选块的散列值,因此散列值在编码器和解码器处相同。数据结构的组织取决于实现。编码器可对每个当前块信号化多个散列值,以迭代地过滤出不匹配的块。或者,编码器可对每个当前块信号化单个散列值。或者,除了一个或多个散列值之外,编码器可信号化指示在多个余下的候选块中的匹配块的索引值。
这一办法在针对当前块用信号通知的散列值以高概率标识候选块中的等同块时工作良好。在针对当前块用信号通知的散列值标识了候选块中非等同的匹配块时,性能受损。然而,在这种情况下,编码器可以改为将另一形式的编码用于当前块(例如,图片内空间预测或其他图片内预测)。
图17a示出用于使用散列值来表示各块以编码图片的一般化技术(1700)。编码器(诸如参考图3或图5a-5b描述的编码器)可执行该技术(1700)。
编码器使用具有基于散列的块匹配的BC预测来编码(1710)图片的数据。BC预测可以是图片内BC预测(如果候选块与当前块处于同一图片中),或者BC预测可以参考另一图片(在同一视频序列中,在另一视频序列中,或者活动(sprite)或所生成的参考图片)中的候选块。候选块是搜索范围的一部分,这可包括在具有当前块的图片(或另一图片)中所有先前重构的内容,或可包括先前重构的内容的子集(例如,当前CTU中以及具有当前块的图片中的一个或多个其他CTU中经重构的内容,或与当前块相同的同一小块中的经重构的内容,或与当前块相同的同一片中的经重构的内容)。在它编码(1710)图片的数据时,编码器可以执行图17b中所示的技术(1711)。或者,编码器可以按某一其他方式执行图片的数据的编码(1710)。
根据图17b的技术(1711),编码器获得(1720)要编码的下一块并确定(1730)该块(作为当前块)的一个或多个散列值。散列函数可以是CRC函数,位置敏感的散列函数,或其他散列函数。
编码器至少部分地基于当前块的散列值来标识(1740)多个候选块中的匹配块。例如,对于候选块中的一者或多者中的每一者,编码器将当前块的散列值与候选块的散列值相比较。或者,在数据结构根据散列值来组织各候选块时,编码器使用当前块的散列值来选择候选块列表,随后确定所选择的列表中的任何候选块中的匹配块(例如,在当前块与给定候选块的样本值之间执行块匹配操作)。
如果基于散列的块匹配成功,则编码器用信号通知表示当前块的块匹配的散列值。编码器还可用信号通知候选块列表内匹配块的索引值(在适用的情况下)。编码器可以编码用信号通知的值,例如使用CABAC或另一形式的熵编码。否则,如果基于散列的块匹配失败,则编码器可以使用空间图片内预测或另一形式的图片内预测来编码当前块。
编码器检查(1750)是否继续图片中的下一块。如果是,则在数据结构根据散列值组织各候选块时,编码器可以更新(1760)该数据结构以将与刚编码的块交叠的新候选块纳入考虑,随后获取(1720)下一块并确定(1730)其散列值。
返回图17a,编码器输出(1790)经编码数据,它包括用信号通知的散列值。编码器可以针对下一图片重复该技术(1700)。
图18a示出用于使用散列值来表示各块以解码图片的一般化技术(1800)。解码器(诸如参考图4或图6描述的解码器)可执行该技术(1800)。
解码器接收(1810)图片的经编码数据,其中经编码数据包括表示图片的各块的散列值。解码器使用具有基于散列的块重构的BC预测来解码(1820)图片的数据。BC预测可以是图片内BC预测(如果候选块与当前块处于同一图片中),或BC预测可以参考另一图片中的候选块。在它解码(1820)图片的数据时,解码器可以执行图18b中所示的技术(1821)。或者,解码器可以按某一其他方式执行图片的数据的解码(1820)。
根据图18b的技术(1821),解码器获得(1830)要解码的下一块的数据,包括用信号通知的当前块的散列值且可能包括用信号通知的当前块的索引值。解码器可以解码用信号通知的值。
解码器至少部分地基于当前块的用信号通知的散列值来标识(1840)多个候选块中的重构块。例如,对于候选块中的一者或多者中的每一者,解码器将当前块的散列值与候选块的散列值相比较以找出重构块。对于候选块的散列值,散列函数可以是CRC函数,位置敏感的散列函数,或其他散列函数。在数据结构根据散列值来组织各候选块时,解码器可以使用当前块的散列值来找出数据结构中的重构块。或者,解码器可以使用当前块的散列值来找出数据结构中的候选块列表,随后找出所选择的列表中的任何候选块中的重构块(例如,使用用信号通知的索引值)。
在使用基于散列的块重构时,解码器将所标识的重构块用于(1850)当前块。否则,如果基于散列的块重构未被使用,则编码器可以使用空间图片内预测或另一形式的图片内预测来解码当前块。
解码器检查(1860)是否继续图片中的下一块。如果是,则在数据结构根据散列值组织各候选块时,解码器可以更新(1870)该数据结构以将与刚解码的块交叠的新候选块纳入考虑,随后获取(1820)下一块的散列值并继续。
解码器可以针对下一图片重复该技术(1800)。
G.示例散列函数
用于基于散列的块匹配(以及基于散列的块重构,见F小节)的散列函数取决于实现。
散列函数可产生具有8比特、12比特、16比特、24比特、32比特或其它数量的比特的散列值。一般而言,使用具有较少比特的散列值往往降低组织各候选块的数据结构的大小,至少在消除了等同块时。如果散列值具有更少比特,则数据结构包括更少类别,但是每个类别可包括更多候选块。换言之,使用具有更多比特的散列值有助于增加组织候选块的数据结构的尺寸。如果散列值具有更多比特,则数据结构包括更多类别,但是每个类别可包括更少候选块。
在某些示例实现中,用于基于散列的块匹配(以及基于散列的块重构)的散列函数是循环冗余校验(“CRC”)函数。CRC函数是快速且广泛实现的,因为它们通常被用于错误检查的目的。在应用于类似输入值时,CRC函数倾向于产生非常不同的散列值。即,稍微改变块的样本值可导致不同CRC散列值。CRC函数可产生8比特、12比特、16比特、24比特、32比特或其它数量的比特的散列值。
当用于基于散列的块匹配时,CRC函数在寻找与当前块精确相同的匹配块时工作良好。然而,CRC函数通常无助于寻找仅接近当前块的匹配块。
在其它示例实现中,用于基于散列的块匹配(以及基于散列的块重构)的散列函数是使用求平均以及XOR操作来确定候选块或当前块的签名。散列值包括基于块的平均的分量以及基于直接XOR操作的一个或多个分量。
例如,对于具有8比特样本值的8×8块B,散列值是具有三个8比特分量的24比特值。第一个8个比特分量是块中样本值的平均μ。
&mu; = &Sigma; 0 &le; i < 8 , 0 &le; j < 8 B &lsqb; i , j &rsqb; 64 .
对于第二和第三8比特分量,使用块的平均值μ获取样本值的级别图L。
第二8比特分量r是基于沿着级别图L的行的XOR(异或)操作。对于级别图L的每行0≤j<8,第二分量的比特r[j]被确定。
r [ j ] = L [ 0 , j ] &CirclePlus; L [ 1 , j ] &CirclePlus; L [ 2 , j ] &CirclePlus; L [ 3 , j ] &CirclePlus; L [ 4 , j ] &CirclePlus; L [ 5 , j ] &CirclePlus; L [ 6 , j ] &CirclePlus; L [ 7 . j ] ,
其中表示XOR操作。
第三8比特分量c是基于沿着级别图L的列的XOR操作。对于级别图L的每列0≤i<8,第三分量的比特c[j]被确定。
c [ i ] = L [ i , 0 ] &CirclePlus; L [ i , 1 ] &CirclePlus; L [ i , 2 ] &CirclePlus; L [ i , 3 ] &CirclePlus; L [ i , 4 ] &CirclePlus; L [ i , 5 ] &CirclePlus; L [ i , 6 ] &CirclePlus; L [ i , 7 ] .
因此,对于第二分量r,第j比特是第j行的级别图的XOR。并且,对于第三分量c,第i比特是第i列的级别图的XOR。24比特散列值是(μ<<16)+(r<<8)+c,其中<<表示向左移位操作。
对于这个散列函数,第二和第三分量(基于XOR操作)对样本值中的小变化敏感。然而,当用于基于散列的块匹配时,基于求平均和XOR操作的散列函数在寻找与当前块精确相同的匹配块时工作良好。
代替8×8的块,使用求平均和XOR操作的散列函数可被用于不同大小的块,例如,沿着16×16的块的行对或列对来计算XOR操作以确定8比特分量r或c,沿着32×32的块的四行或四列的组来计算XOR操作以确定8比特分量r或c,以此类推。替换地,使用求平均和XOR操作的散列函数可产生具有不同数量的比特的散列值。
在其它示例实现中,用于基于散列的块匹配(以及基于散列的块重构)的散列函数是位置敏感散列函数。在应用于类似输入值时,位置敏感散列函数倾向于产生相同的散列值。即,稍微改变块的样本值可通常不导致不同散列值。位置敏感散列函数可产生具有8比特、12比特、16比特、24比特、32比特或其它数量的比特的散列值。
例如,对于8×8的块B,64维向量从块B的64个样本值中生成。另外64维向量随机生成。散列函数取决于积例如,散列函数可以是其中d是从范围0…d范围中选择的实数。如果两个块类似,那么它们的向量类似,并且它们的散列值也应当是相同或类似。
在某些示例实现中,用于基于散列的块匹配(以及基于散列的块重构)的散列函数将块宽度和块高度包括为输入。例如,散列函数可以是经修改的CRC函数,使用求平均和XOR操作的经修改的散列函数、或经修改的位置敏感的散列函数,对于它们散列值部分取决于块高度和块宽度作为输入。对于散列函数的这一变型,不同大小的候选块(如64x64,32x32,16x16以及8x8)在它们具有相同的散列值的情况下可被编组在一起,且不同大小的候选块可被组织在单个数据结构内。
替换地,另一散列函数被用于基于散列的块匹配。
H.帧内BC预测模式——实现选项。
具有帧内BC预测的预测模式的块可以是CB、PB或其它块。当块是CB时,可以在CU级上信号化块的BV值(而CU中的其它CB使用相同的BV值或其经缩放的版本)。或者,当块是PB时,可以在PU级上信号化块的BV值(而PU中的其它PB使用相同的BV值或其经缩放的版本)。更一般地,在块的适当的语法级上信号化帧内BC预测块的BV值。
根据帧内BC预测模式,预测的块复制操作可以在CB级(当每CB信号化BV值时)或PB(当每PB信号化BV值时)被执行。例如,假设16×16CB具有单个16×16PB。(PB的)BV值被应用于块复制16×16区域。替换地,即使当为PB或CB信号化BV值时,可以在PB或CB内的TB级执行块复制操作。在这种方式中,BV值,用于TB,可参考相同PB或CB中的其它TB的位置。
在一些实现中,对于帧内BC预测的CU,对PU中的色度块的帧内BC预测使用与对于PU中的亮度块的帧内BC预测相同的BV值,这通常是当色度数据已减少了相对于亮度数据的分辨率时(例如,当格式是YUV4:2:0时)在缩放和舍入之后进行的。替代地,可针对PU的亮度块和色度块用信号指示不同的BV值。
鉴于可应用所公开的本发明的原理的许多可能的实施例,应当认识到,所示实施例仅是本发明的优选示例,并且不应认为是限制本发明的范围。相反,本发明的范围由后续的权利要求来界定。我们要求作为我们的发明保护落入这些权利要求范围和精神内的所有内容。

Claims (34)

1.一种在具有视频编码器或图像编码器的计算设备中的方法,所述方法包括:
编码图片的当前块的数据,包括:
确定所述当前块的散列值;
至少部分地基于所述当前块的散列值来标识多个候选块中的匹配块;以及
标识所述匹配块的块向量值;以及
输出经编码数据,其中所述经编码数据包括所述块向量值。
2.如权利要求1所述的方法,其特征在于,所述当前块的编码进一步包括编码所述块向量值。
3.如权利要求1所述的方法,其特征在于,所述确定所述当前块的散列值使用循环冗余校验函数。
4.如权利要求1所述的方法,其特征在于,所述确定所述当前块的散列值使用包括取平均和XOR操作的散列函数。
5.如权利要求1所述的方法,其特征在于,所述确定所述当前块的散列值使用位置敏感散列函数。
6.如权利要求1所述的方法,其特征在于,所述确定所述当前块的散列值使用包括包括块宽度和块高度作为输入的散列函数。
7.如权利要求1所述的方法,其特征在于,包括所述当前块的图片还包括所述多个候选块,并且其中编码所述当前块的数据使用图片内块复制预测。
8.如权利要求1所述的方法,其特征在于,另一图片包括所述多个候选块中的至少一些。
9.如权利要求1所述的方法,其特征在于,编码所述当前块的数据包括对于所述多个候选块中的一者或多者中的每一者,将所述当前块的散列值与所述候选块的散列值相比较。
10.如权利要求1所述的方法,其特征在于,所述当前块的散列值是使用第一散列函数确定的第一散列值,并且其中编码所述当前块的数据进一步包括:
使用不同于所述第一散列函数的第二散列函数来确定所述当前块的第二散列值,其中标识所述匹配块也至少部分地基于所述当前块的所述第二散列值。
11.如权利要求1所述的方法,其特征在于,数据结构根据散列值来组织所述多个候选块,并且其中标识所述匹配块包括:
使用所述当前块的散列值来选择候选块列表;以及
确定所选择的列表中的任何候选块中的匹配块。
12.如权利要求11所述的方法,其特征在于,确定所述匹配块包括对于所选择的列表中的给定候选块,在所述当前块与所述给定候选块的样本值之间执行块匹配操作。
13.如权利要求11所述的方法,其特征在于,进一步包括更新所述数据结构以将与所述当前块交叠的新候选块纳入考虑。
14.如权利要求13所述的方法,其特征在于,所述更新包括对于所述新候选块中的每一者:
确定所述新候选块的散列值;
评估所述新候选块是否等同于所述数据结构中已表示的任何候选块;
如果是,则将所述新候选块或等同块保持在所述数据结构中;以及
如果否,则将所述新候选块添加到所述数据结构。
15.如权利要求1所述的方法,其特征在于,对于所述多个候选块中的每一者,根据包括所述候选块的图片的输入样本值来确定所述候选块的散列值,并且其中根据所述当前块的输入样本值来确定所述当前块的散列值。
16.如权利要求1所述的方法,其特征在于,对于所述多个候选块中的每一者,根据包括所述候选块的图片的经重构的样本值来确定所述候选块的散列值,并且其中根据所述当前块的输入样本值来确定所述当前块的散列值。
17.一种在具有视频编码器或图像编码器的计算设备中的方法,所述方法包括:
创建根据散列值组织多个候选块的数据结构;
编码图片的当前块的数据,包括将所述数据结构用于基于散列的块匹配以进行块向量估计;以及
输出所述图片的经编码数据。
18.如权利要求17所述的方法,其特征在于,编码所述当前块的数据包括:
确定所述当前块的散列值;以及
使用所述当前块的散列值来选择候选块列表;以及
确定所选择的列表中的任何候选块中的匹配块。
19.如权利要求18所述的方法,其特征在于,确定所述匹配块包括对于所选择的列表中的给定候选块,在所述当前块与所述给定候选块的样本值之间执行块匹配操作。
20.如权利要求17所述的方法,其特征在于,进一步包括更新所述数据结构以将与所述当前块交叠的新候选块纳入考虑。
21.如权利要求20所述的方法,其特征在于,所述更新包括对于所述新候选块中的每一者:
确定所述新候选块的散列值;
评估所述新候选块是否等同于所述数据结构中已表示的任何候选块;
如果是,则将所述新候选块或等同块保持在所述数据结构中;以及
如果否,则将所述新候选块添加到所述数据结构。
22.如权利要求20所述的方法,其特征在于,所述更新包括对于所述新候选块中的每一者:
分别使用第一和第二散列函数来确定所述新候选块的第一和第二散列值;
使用所述第一和第二散列值来评估所述新候选块是否等同于所述数据结构中已表示的任何候选块;
如果是,则将所述新候选块或等同块保持在所述数据结构中;以及
如果否,则将所述新候选块添加到所述数据结构。
23.如权利要求17所述的方法,其特征在于,所述数据结构包括一个或多个可能的散列值中的每一者的一个或多个块地址的列表。
24.如权利要求17所述的方法,其特征在于,包括所述当前块的图片还包括所述多个候选块,并且其中编码所述当前块的数据使用图片内块复制预测。
25.一种在具有视频编码器或图像编码器的计算设备中的方法,所述方法包括:
编码图片的当前块的数据,其中所述编码包括用于块向量估计的分层的基于散列的块匹配;以及
输出所述图片的经编码数据。
26.如权利要求25所述的方法,其特征在于,用于所述当前块的所述分层的基于散列的块匹配包括标识多个候选块中的匹配块,包括在多个迭代中的每一迭代中:
确定所述当前块的散列值;以及
至少部分地基于所述当前块的散列值来消除所述多个候选块中的至少一些以免于考虑。
27.如权利要求26所述的方法,其特征在于,确定所述散列值在所述多个迭代中使用不同的散列函数。
28.如权利要求26所述的方法,其特征在于,用于所述当前块的分层的基于散列的块匹配进一步包括在所述多个迭代之后在所述当前块与剩余候选块的样本值之间执行块匹配操作。
29.如权利要求26所述的方法,其特征在于,包括所述当前块的图片还包括所述多个候选块,并且其中编码所述当前块的数据使用图片内块复制预测。
30.如权利要求25所述的方法,其特征在于,数据结构根据来自第一散列函数的第一散列值并根据来自不同于所述第一散列函数的第二散列函数的第二散列值来组织多个候选块。
31.如权利要求25所述的方法,其特征在于,数据结构包括根据来自第一散列函数的第一散列值来索引的一个或多个第一候选块列表,并且其中所述一个或多个第一候选块列表中的每一者包括根据来自不同于所述第一散列函数的第二散列函数的第二散列值索引的一个或多个第二候选块列表。
32.如权利要求25所述的方法,其特征在于,所述数据结构包括根据来自第一散列函数的第一散列值索引的一个或多个列表,并且其中对于多个候选块中的每一者,所述数据结构还存储来自不同于所述第一散列函数的第二散列函数的第二散列值。
33.一种被适配成执行权利要求1-32中的任一项所述的方法的计算设备。
34.一个或多个存储计算机可执行指令的计算机可读介质,所述计算机可执行指令使得计算设备因此被编程为执行如权利要求1-32中的任一项所述的方法。
CN201380080482.XA 2013-10-25 2013-10-25 视频和图像编码中的基于散列的块匹配 Active CN105684441B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2013/085937 WO2015058395A1 (en) 2013-10-25 2013-10-25 Hash-based block matching in video and image coding

Publications (2)

Publication Number Publication Date
CN105684441A true CN105684441A (zh) 2016-06-15
CN105684441B CN105684441B (zh) 2018-09-21

Family

ID=52992152

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380080482.XA Active CN105684441B (zh) 2013-10-25 2013-10-25 视频和图像编码中的基于散列的块匹配

Country Status (5)

Country Link
US (1) US10264290B2 (zh)
EP (1) EP3061253A1 (zh)
KR (1) KR20160075705A (zh)
CN (1) CN105684441B (zh)
WO (1) WO2015058395A1 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110024398A (zh) * 2016-11-30 2019-07-16 微软技术许可有限责任公司 针对屏幕远程处理场景的局部的基于散列的运动估计
CN113170194A (zh) * 2019-01-02 2021-07-23 北京字节跳动网络技术有限公司 基于散列的运动搜索的简化
TWI737184B (zh) * 2019-02-22 2021-08-21 聯發科技股份有限公司 幀内塊複製模式的合併列表生成的方法和裝置
CN113873096A (zh) * 2020-06-30 2021-12-31 晶晨半导体(上海)股份有限公司 场景检测方法、芯片、电子设备以及存储介质
CN115484463A (zh) * 2018-09-05 2022-12-16 Lg电子株式会社 对视频信号进行解码/编码及发送数据的设备
US11736701B2 (en) 2014-09-30 2023-08-22 Microsoft Technology Licensing, Llc Hash-based encoder decisions for video coding

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160075705A (ko) 2013-10-25 2016-06-29 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 비디오 및 이미지 코딩에서의 해시 기반 블록 매칭
WO2015058397A1 (en) 2013-10-25 2015-04-30 Microsoft Technology Licensing, Llc Representing blocks with hash values in video and image coding and decoding
US10567754B2 (en) 2014-03-04 2020-02-18 Microsoft Technology Licensing, Llc Hash table construction and availability checking for hash-based block matching
US10368092B2 (en) 2014-03-04 2019-07-30 Microsoft Technology Licensing, Llc Encoder-side decisions for block flipping and skip mode in intra block copy prediction
US9715559B2 (en) * 2014-03-17 2017-07-25 Qualcomm Incorporated Hash-based encoder search for intra block copy
KR102287779B1 (ko) 2014-06-23 2021-08-06 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 해시 기반의 블록 매칭의 결과에 기초한 인코더 결정
GB2531003A (en) * 2014-10-06 2016-04-13 Canon Kk Method and apparatus for vector encoding in video coding and decoding
US10091511B2 (en) * 2015-01-05 2018-10-02 Getgo, Inc. Efficient video block matching
EP3251350B1 (en) 2015-01-29 2023-04-19 VID SCALE, Inc. Intra-block copy searching
US10390039B2 (en) 2016-08-31 2019-08-20 Microsoft Technology Licensing, Llc Motion estimation for screen remoting scenarios
US10986349B2 (en) 2017-12-29 2021-04-20 Microsoft Technology Licensing, Llc Constraints on locations of reference blocks for intra block copy prediction
CN110545428B (zh) * 2018-05-28 2024-02-23 深信服科技股份有限公司 一种运动估计方法及装置、服务器及计算机可读存储介质
CN117915083A (zh) 2018-11-29 2024-04-19 北京字节跳动网络技术有限公司 块内拷贝模式和帧间预测工具之间的交互
WO2020156549A1 (en) 2019-02-02 2020-08-06 Beijing Bytedance Network Technology Co., Ltd. Buffer access methods for intra block copy in video coding
EP3900357A4 (en) 2019-02-02 2022-06-08 Beijing Bytedance Network Technology Co., Ltd. BUFFER INITIALIZATION FOR INTRA BLOCK COPY IN VIDEO ENCODING
CN117395439A (zh) 2019-03-01 2024-01-12 北京字节跳动网络技术有限公司 用于视频编解码中的帧内块复制的基于方向的预测
KR102621959B1 (ko) * 2019-03-04 2024-01-05 후아웨이 테크놀러지 컴퍼니 리미티드 임의의 ctu 크기에 대한 ibc 검색 범위 최적화를 사용하는 인코더, 디코더 및 대응하는 방법
KR20210125506A (ko) 2019-03-04 2021-10-18 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 비디오 코딩에서 인트라 블록 복사를 위한 버퍼 관리
KR20230170800A (ko) 2019-07-06 2023-12-19 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 비디오 코딩에서 인트라 블록 카피를 위한 가상 예측 버퍼
BR112022000358A2 (pt) 2019-07-10 2022-05-10 Beijing Bytedance Network Tech Co Ltd Método e aparelho para processar dados de vídeo e meios de armazenamento e gravação não transitórios legíveis por computador
KR20220030957A (ko) 2019-07-11 2022-03-11 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 비디오 코딩에서 인트라 블록 카피를 위한 비트스트림 적합 제약
US11202085B1 (en) 2020-06-12 2021-12-14 Microsoft Technology Licensing, Llc Low-cost hash table construction and hash-based block matching for variable-size blocks
US20230334618A1 (en) * 2022-04-15 2023-10-19 Meta Platforms Technologies, Llc Block-Based Random Access Capable Lossless Graphics Asset Compression
US11882295B2 (en) 2022-04-15 2024-01-23 Meta Platforms Technologies, Llc Low-power high throughput hardware decoder with random block access

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101283578A (zh) * 2005-10-31 2008-10-08 索尼英国有限公司 视频运动检测
CN101710324A (zh) * 2008-09-04 2010-05-19 威睿公司 使用标准块和标准块标识符的文件传送
US20130148721A1 (en) * 2011-12-07 2013-06-13 Cisco Technology, Inc. Reference Frame Management for Screen Content Video Coding Using Hash or Checksum Functions
CN103281538A (zh) * 2013-06-06 2013-09-04 上海交通大学 基于滚动哈希和块级别帧内预测的帧内编码方法
US20130266078A1 (en) * 2010-12-01 2013-10-10 Vrije Universiteit Brussel Method and device for correlation channel estimation

Family Cites Families (158)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US2239538A (en) 1939-03-30 1941-04-22 Zeiss Carl Fa Photographic teleobjective
US2718173A (en) 1950-09-26 1955-09-20 Cycloptic Anstalt Fur Optik Un High intensity five component photographic objective
US3059528A (en) 1957-07-02 1962-10-23 Allan Ted Panoramic motion picture camera
US3142236A (en) 1961-03-08 1964-07-28 American Optical Corp Cameras and high speed optical system therefor
CH486707A (de) 1968-06-14 1970-02-28 Voigtlaender Ag Lichtstarkes objektiv aus mindestens vier in Luft stehenden Gliedern vom erweiterten Triplet-typus
US5016980A (en) 1985-11-12 1991-05-21 Waldron Robert D Systems for deviating and (optionally) converging radiation
US4918583A (en) 1988-04-25 1990-04-17 Nikon Corporation Illuminating optical device
US5610841A (en) 1993-09-30 1997-03-11 Matsushita Electric Industrial Co., Ltd. Video server
US5850312A (en) 1993-10-22 1998-12-15 Olympus Optical Co., Ltd. Three-unit zoom lens
JP3580869B2 (ja) 1994-09-13 2004-10-27 オリンパス株式会社 立体視内視鏡
US5613004A (en) * 1995-06-07 1997-03-18 The Dice Company Steganographic method and device
US5774271A (en) 1996-07-29 1998-06-30 Welch Allyn, Inc. Lamp assembly
JP3869895B2 (ja) 1996-12-27 2007-01-17 キヤノン株式会社 防振機能を有した光学系
US7206346B2 (en) 1997-06-25 2007-04-17 Nippon Telegraph And Telephone Corporation Motion vector predictive encoding method, motion vector decoding method, predictive encoding apparatus and decoding apparatus, and storage media storing motion vector predictive encoding and decoding programs
US6904110B2 (en) 1997-07-31 2005-06-07 Francois Trans Channel equalization system and method
US6879266B1 (en) 1997-08-08 2005-04-12 Quickshift, Inc. Memory module including scalable embedded parallel data compression and decompression engines
JPH1166301A (ja) 1997-08-15 1999-03-09 Nippon Telegr & Teleph Corp <Ntt> カラー画像分類方法及び装置及びこの方法を記録した記録媒体
US6895048B2 (en) 1998-03-20 2005-05-17 International Business Machines Corporation Adaptive encoding of a sequence of still frames or partially still frames within motion video
US6487440B2 (en) 1998-07-08 2002-11-26 Lifespex, Inc. Optical probe having and methods for difuse and uniform light irradiation
US6332092B1 (en) 1998-07-08 2001-12-18 Lifespex, Incorporated Optical probe having and methods for uniform light irradiation and/or light collection over a volume
US6400764B1 (en) 1999-04-06 2002-06-04 Koninklijke Philips Electronics N. V. Motion estimation method featuring orthogonal-sum concurrent multi matching
US7216232B1 (en) * 1999-04-20 2007-05-08 Nec Corporation Method and device for inserting and authenticating a digital signature in digital data
US6785815B1 (en) * 1999-06-08 2004-08-31 Intertrust Technologies Corp. Methods and systems for encoding and protecting data using digital signature and watermarking techniques
US7430670B1 (en) * 1999-07-29 2008-09-30 Intertrust Technologies Corp. Software self-defense systems and methods
US6671407B1 (en) 1999-10-19 2003-12-30 Microsoft Corporation System and method for hashing digital images
JP2001228401A (ja) 2000-02-16 2001-08-24 Canon Inc 投影光学系、および該投影光学系による投影露光装置、デバイス製造方法
GB2375673A (en) 2001-05-14 2002-11-20 Salgen Systems Ltd Image compression method using a table of hash values corresponding to motion vectors
DE10158658A1 (de) 2001-11-30 2003-06-12 Bosch Gmbh Robert Verfahren zur gerichteten Prädiktion eines Bildblockes
US6922246B2 (en) 2002-02-22 2005-07-26 Xenogen Corporation Bottom fluorescence illumination assembly for an imaging apparatus
US6983020B2 (en) * 2002-03-25 2006-01-03 Citrix Online Llc Method and apparatus for fast block motion detection
JP4151374B2 (ja) 2002-03-29 2008-09-17 セイコーエプソン株式会社 動画像符号化装置および動画像符号化方法
US20040174570A1 (en) 2002-12-02 2004-09-09 Plunkett Richard Thomas Variable size dither matrix usage
ATE504446T1 (de) * 2002-12-02 2011-04-15 Silverbrook Res Pty Ltd Totdüsenausgleich
US7792121B2 (en) * 2003-01-03 2010-09-07 Microsoft Corporation Frame protocol and scheduling system
JP4499370B2 (ja) 2003-04-04 2010-07-07 オリンパス株式会社 結像光学系及びそれを用いた撮像装置
DE10316428A1 (de) 2003-04-08 2004-10-21 Carl Zeiss Smt Ag Katadioptrisches Reduktionsobjektiv
HUP0301368A3 (en) 2003-05-20 2005-09-28 Amt Advanced Multimedia Techno Method and equipment for compressing motion picture data
US8264489B2 (en) 2003-07-11 2012-09-11 Intel Corporation Interface remoting
US7609763B2 (en) 2003-07-18 2009-10-27 Microsoft Corporation Advanced bi-directional predictive coding of video frames
US7349583B2 (en) 2003-09-05 2008-03-25 The Regents Of The University Of California Global motion estimation image coding and processing
EP2293031B8 (en) 2003-10-27 2024-03-20 The General Hospital Corporation Method and apparatus for performing optical imaging using frequency-domain interferometry
US20050105621A1 (en) 2003-11-04 2005-05-19 Ju Chi-Cheng Apparatus capable of performing both block-matching motion compensation and global motion compensation and method thereof
EP1542053B1 (fr) 2003-12-11 2007-11-14 Tokendo Dispositif de métrologie pour sonde vidéoendoscopique
US20040133548A1 (en) 2003-12-15 2004-07-08 Alex Fielding Electronic Files Digital Rights Management.
US7095568B2 (en) 2003-12-19 2006-08-22 Victor Company Of Japan, Limited Image display apparatus
KR100995398B1 (ko) 2004-01-20 2010-11-19 삼성전자주식회사 수직 및 수평 방향의 패턴을 고려한 전역 움직임 보상순차주사화 방법
US7672005B1 (en) 2004-06-30 2010-03-02 Teradici Corporation Methods and apparatus for scan block caching
US20060062303A1 (en) 2004-09-17 2006-03-23 Sony Corporation Hybrid global motion estimator for video encoding
US7526607B1 (en) 2004-09-23 2009-04-28 Juniper Networks, Inc. Network acceleration and long-distance pattern detection using improved caching and disk mapping
CA2584121C (en) 2004-10-15 2014-08-19 The Regents Of The University Of Colorado, A Body Corporate Revocable biometrics with robust distance metrics
JP2006265087A (ja) 2004-12-13 2006-10-05 Ohara Inc 光学素子用プリフォーム
US20060224594A1 (en) * 2005-04-04 2006-10-05 Oracle International Corporation Methods and systems for identifying highly contended blocks in a database
CN100484233C (zh) 2005-06-03 2009-04-29 中国科学院研究生院 数字电视信号安全认证装置及带有该装置的电视设备
KR100716999B1 (ko) 2005-06-03 2007-05-10 삼성전자주식회사 영상의 대칭성을 이용한 인트라 예측 방법, 이를 이용한영상의 복호화, 부호화 방법 및 장치
US8107527B1 (en) 2005-07-28 2012-01-31 Teradici Corporation Progressive block encoding using region analysis
US8787460B1 (en) 2005-07-28 2014-07-22 Teradici Corporation Method and apparatus for motion vector estimation for an image sequence
KR101211665B1 (ko) 2005-08-12 2012-12-12 삼성전자주식회사 영상의 인트라 예측 부호화, 복호화 방법 및 장치
JP4815944B2 (ja) 2005-08-19 2011-11-16 富士ゼロックス株式会社 ホログラム記録方法及び装置
JP2007066191A (ja) 2005-09-01 2007-03-15 Toshiba Corp 再生装置および再生方法
KR20080066790A (ko) * 2005-10-12 2008-07-16 데이터캐슬 코퍼레이션 데이터 백업 시스템 및 방법
US7702127B2 (en) * 2005-10-21 2010-04-20 Microsoft Corporation Video fingerprinting using complexity-regularized video watermarking by statistics quantization
US7986844B2 (en) 2005-11-22 2011-07-26 Intel Corporation Optimized video compression using hashing function
US20070199011A1 (en) 2006-02-17 2007-08-23 Sony Corporation System and method for high quality AVC encoding
US7949186B2 (en) * 2006-03-15 2011-05-24 Massachusetts Institute Of Technology Pyramid match kernel and related techniques
US7636824B1 (en) 2006-06-28 2009-12-22 Acronis Inc. System and method for efficient backup using hashes
DE102006045565B3 (de) 2006-08-04 2008-06-26 Leica Camera Ag Weitwinkel-Aufstecksucher an Messsucherkameras für fotografische Aufnahmen mit unterschiedlichen Brennweiten
US7747584B1 (en) * 2006-08-22 2010-06-29 Netapp, Inc. System and method for enabling de-duplication in a storage system architecture
US8099415B2 (en) * 2006-09-08 2012-01-17 Simply Hired, Inc. Method and apparatus for assessing similarity between online job listings
GB0618057D0 (en) 2006-09-14 2006-10-25 Perkinelmer Ltd Improvements in and relating to scanning confocal microscopy
US8443398B2 (en) 2006-11-01 2013-05-14 Skyfire Labs, Inc. Architecture for delivery of video content responsive to remote interaction
US20080212687A1 (en) 2007-03-02 2008-09-04 Sony Corporation And Sony Electronics Inc. High accurate subspace extension of phase correlation for global motion estimation
US8494234B1 (en) 2007-03-07 2013-07-23 MotionDSP, Inc. Video hashing system and method
US8817878B2 (en) 2007-11-07 2014-08-26 Broadcom Corporation Method and system for motion estimation around a fixed reference vector using a pivot-pixel approach
CN101904173B (zh) 2007-12-21 2013-04-03 艾利森电话股份有限公司 用于视频编码的改进像素预测的方法及设备
WO2009102013A1 (ja) 2008-02-14 2009-08-20 Nec Corporation 移動ベクトル検出装置
US8295617B2 (en) 2008-05-19 2012-10-23 Citrix Systems, Inc. Systems and methods for enhanced image encoding
US8527482B2 (en) * 2008-06-06 2013-09-03 Chrysalis Storage, Llc Method for reducing redundancy between two or more datasets
GB2460844B (en) 2008-06-10 2012-06-06 Half Minute Media Ltd Automatic detection of repeating video sequences
KR101226394B1 (ko) 2008-06-30 2013-01-24 후지쯔 세미컨덕터 가부시키가이샤 메모리 장치
CN102144237B (zh) 2008-07-03 2014-10-22 美国唯美安视国际有限公司 压缩媒体的有效水印方法
US8213503B2 (en) 2008-09-05 2012-07-03 Microsoft Corporation Skip modes for inter-layer residual video coding and decoding
US8831103B2 (en) 2008-10-02 2014-09-09 Sony Corporation Image processing apparatus and method
WO2010046104A2 (en) * 2008-10-23 2010-04-29 University Of Ulster An encryption method
US20100119170A1 (en) 2008-11-07 2010-05-13 Yahoo! Inc. Image compression by comparison to large database
US20100166073A1 (en) 2008-12-31 2010-07-01 Advanced Micro Devices, Inc. Multiple-Candidate Motion Estimation With Advanced Spatial Filtering of Differential Motion Vectors
US8599929B2 (en) 2009-01-09 2013-12-03 Sungkyunkwan University Foundation For Corporate Collaboration Distributed video decoder and distributed video decoding method
WO2010086548A1 (fr) 2009-01-28 2010-08-05 France Telecom Procede et dispositif de codage d'une image, procede et dispositif de decodage, et programmes d'ordinateur correspondants
CA2750735C (en) 2009-02-02 2018-09-18 Calgary Scientific Inc. Image data transmission
US7868792B2 (en) 2009-02-05 2011-01-11 Polytechnic Institute Of New York University Generating a boundary hash-based hierarchical data structure associated with a plurality of known arbitrary-length bit strings and using the generated hierarchical data structure for detecting whether an arbitrary-length bit string input matches one of a plurality of known arbitrary-length bit springs
US8838824B2 (en) * 2009-03-16 2014-09-16 Onmobile Global Limited Method and apparatus for delivery of adapted media
US8355585B2 (en) * 2009-05-12 2013-01-15 Red Hat Israel, Ltd. Data compression of images using a shared dictionary
US8694547B2 (en) * 2009-07-07 2014-04-08 Palo Alto Research Center Incorporated System and method for dynamic state-space abstractions in external-memory and parallel graph search
US8345750B2 (en) 2009-09-02 2013-01-01 Sony Computer Entertainment Inc. Scene change detection
US8411750B2 (en) 2009-10-30 2013-04-02 Qualcomm Incorporated Global motion parameter estimation using block-based motion vectors
AU2011207444A1 (en) 2010-01-22 2012-08-09 Duke University Multiple window processing schemes for spectroscopic optical coherence tomography (OCT) and fourier domain low coherence interferometry
WO2012077928A1 (ko) * 2010-12-07 2012-06-14 한국전자통신연구원 초고해상도 영상을 부호화하는 장치 및 방법, 그리고 복호화 장치 및 방법
EP2365456B1 (en) * 2010-03-11 2016-07-20 CompuGroup Medical SE Data structure, method and system for predicting medical conditions
US8442942B2 (en) 2010-03-25 2013-05-14 Andrew C. Leppard Combining hash-based duplication with sub-block differencing to deduplicate data
US8619857B2 (en) 2010-04-09 2013-12-31 Sharp Laboratories Of America, Inc. Methods and systems for intra prediction
WO2011127964A2 (en) 2010-04-13 2011-10-20 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus for intra predicting a block, apparatus for reconstructing a block of a picture, apparatus for reconstructing a block of a picture by intra prediction
KR20110123651A (ko) 2010-05-07 2011-11-15 한국전자통신연구원 생략 부호화를 이용한 영상 부호화 및 복호화 장치 및 그 방법
EP2579083B1 (en) 2010-06-01 2021-05-26 HOYA Corporation Objective lens for endoscope, and endoscope
US8417039B2 (en) 2010-06-03 2013-04-09 Microsoft Corporation Motion detection techniques for improved image remoting
CN101866366B (zh) 2010-07-15 2012-01-18 哈尔滨工业大学 一种基于内容的图像格式中文文档检索方法
GB2483294B (en) 2010-09-03 2013-01-02 Canon Kk Method and device for motion estimation of video data coded according to a scalable coding structure
CN103098015B (zh) * 2010-09-30 2015-11-25 日本电气株式会社 存储系统
KR101894355B1 (ko) 2010-11-04 2018-09-04 지이 비디오 컴프레션, 엘엘씨 블록 병합 및 스킵 모드를 지원하는 화상 코딩
US20120170653A1 (en) 2010-12-30 2012-07-05 General Instrument Corporation Block based sampling coding systems
JP6061150B2 (ja) 2011-03-18 2017-01-18 ソニー株式会社 画像処理装置、画像処理方法、及び、プログラム
WO2012128242A1 (ja) 2011-03-18 2012-09-27 ソニー株式会社 画像処理装置、画像処理方法、及び、プログラム
US8480743B2 (en) 2011-03-25 2013-07-09 Vicente Vanaclocha Vanaclocha Universal disc prosthesis
US8582886B2 (en) 2011-05-19 2013-11-12 Microsoft Corporation Compression of text contents for display remoting
US9317933B2 (en) 2011-05-27 2016-04-19 Sony Corporation Image processing device and method
US9167020B2 (en) 2011-06-10 2015-10-20 Microsoft Technology Licensing, Llc Web-browser based desktop and application remoting solution
US8644620B1 (en) 2011-06-21 2014-02-04 Google Inc. Processing of matching regions in a stream of screen images
US11496760B2 (en) 2011-07-22 2022-11-08 Qualcomm Incorporated Slice header prediction for depth maps in three-dimensional video codecs
US9521418B2 (en) 2011-07-22 2016-12-13 Qualcomm Incorporated Slice header three-dimensional video extension for slice header prediction
US10031636B2 (en) 2011-09-08 2018-07-24 Microsoft Technology Licensing, Llc Remoting desktop displays using move regions
US9351808B2 (en) 2011-09-27 2016-05-31 Sharon M. E. McCarthy Apparatus for removing dental appliance and dental system
US9609217B2 (en) 2011-11-02 2017-03-28 Mediatek Inc. Image-based motion sensor and related multi-purpose camera system
US9332271B2 (en) 2011-11-03 2016-05-03 Cisco Technology, Inc. Utilizing a search scheme for screen content video coding
GB201119206D0 (en) 2011-11-07 2011-12-21 Canon Kk Method and device for providing compensation offsets for a set of reconstructed samples of an image
EP2781091B1 (en) 2011-11-18 2020-04-08 GE Video Compression, LLC Multi-view coding with efficient residual handling
KR101874100B1 (ko) 2011-12-02 2018-07-04 삼성전자주식회사 영상의 부호화 방법 및 장치, 그 복호화 방법 및 장치
US9223534B1 (en) 2011-12-30 2015-12-29 hopTo Inc. Client side detection of motion vectors for cross-platform display
US20140003494A1 (en) 2012-01-05 2014-01-02 Yaniv Frishman Device, system and method of video encoding
US9235313B2 (en) 2012-01-11 2016-01-12 Google Inc. Efficient motion estimation for remote desktop sharing
US9380320B2 (en) 2012-02-10 2016-06-28 Broadcom Corporation Frequency domain sample adaptive offset (SAO)
US20130258052A1 (en) 2012-03-28 2013-10-03 Qualcomm Incorporated Inter-view residual prediction in 3d video coding
US9154749B2 (en) 2012-04-08 2015-10-06 Broadcom Corporation Power saving techniques for wireless delivery of video
US20130268621A1 (en) 2012-04-08 2013-10-10 Broadcom Corporation Transmission of video utilizing static content information from video source
US9286862B2 (en) 2012-04-09 2016-03-15 Oracle International Corporation System and method for detecting a scrolling event during a client display update
US9123084B2 (en) * 2012-04-12 2015-09-01 Activevideo Networks, Inc. Graphical application integration with MPEG objects
US9549180B2 (en) 2012-04-20 2017-01-17 Qualcomm Incorporated Disparity vector generation for inter-view prediction for video coding
US9979958B2 (en) 2012-04-20 2018-05-22 Qualcomm Incorporated Decoded picture buffer processing for random access point pictures in video sequences
US9479776B2 (en) 2012-07-02 2016-10-25 Qualcomm Incorporated Signaling of long-term reference pictures for video coding
BR112015000480B1 (pt) 2012-07-09 2023-02-07 Vid Scale, Inc Arquitetura de codec para codificação de vídeo de camada múltipla, método e sistema
US9264713B2 (en) 2012-07-11 2016-02-16 Qualcomm Incorporated Rotation of prediction residual blocks in video coding with transform skipping
US9277237B2 (en) 2012-07-30 2016-03-01 Vmware, Inc. User interface remoting through video encoding techniques
US9467692B2 (en) 2012-08-31 2016-10-11 Qualcomm Incorporated Intra prediction improvements for scalable video coding
US9479782B2 (en) 2012-09-28 2016-10-25 Qualcomm Incorporated Supplemental enhancement information message coding
CN103841426B (zh) 2012-10-08 2017-04-26 华为技术有限公司 用于运动矢量预测的运动矢量列表建立的方法、装置
US9225979B1 (en) 2013-01-30 2015-12-29 Google Inc. Remote access encoding
US11317123B2 (en) 2013-04-25 2022-04-26 Vmware, Inc. Systems and methods for using pre-calculated block hashes for image block matching
CN104142939B (zh) 2013-05-07 2019-07-02 杭州智棱科技有限公司 一种基于运动特征信息匹配特征码的方法与设备
US9210434B2 (en) 2013-06-12 2015-12-08 Microsoft Technology Licensing, Llc Screen map and standards-based progressive codec for screen content coding
US20140369413A1 (en) 2013-06-18 2014-12-18 Vmware, Inc. Systems and methods for compressing video data using image block matching
US10812694B2 (en) 2013-08-21 2020-10-20 Faro Technologies, Inc. Real-time inspection guidance of triangulation scanner
US20150063451A1 (en) 2013-09-05 2015-03-05 Microsoft Corporation Universal Screen Content Codec
JP6212345B2 (ja) 2013-10-02 2017-10-11 ルネサスエレクトロニクス株式会社 動画像符号化装置およびその動作方法
KR20160075705A (ko) 2013-10-25 2016-06-29 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 비디오 및 이미지 코딩에서의 해시 기반 블록 매칭
WO2015058397A1 (en) 2013-10-25 2015-04-30 Microsoft Technology Licensing, Llc Representing blocks with hash values in video and image coding and decoding
US10368092B2 (en) 2014-03-04 2019-07-30 Microsoft Technology Licensing, Llc Encoder-side decisions for block flipping and skip mode in intra block copy prediction
US10567754B2 (en) 2014-03-04 2020-02-18 Microsoft Technology Licensing, Llc Hash table construction and availability checking for hash-based block matching
CN105359531B (zh) 2014-03-17 2019-08-06 微软技术许可有限责任公司 用于针对屏幕内容编码的编码器侧判定的方法和系统
CN106797458B (zh) 2014-07-31 2019-03-08 惠普发展公司,有限责任合伙企业 真实对象的虚拟改变
CN104574440A (zh) 2014-12-30 2015-04-29 安科智慧城市技术(中国)有限公司 一种视频运动目标跟踪方法及装置
US10390039B2 (en) 2016-08-31 2019-08-20 Microsoft Technology Licensing, Llc Motion estimation for screen remoting scenarios

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101283578A (zh) * 2005-10-31 2008-10-08 索尼英国有限公司 视频运动检测
CN101710324A (zh) * 2008-09-04 2010-05-19 威睿公司 使用标准块和标准块标识符的文件传送
US20130266078A1 (en) * 2010-12-01 2013-10-10 Vrije Universiteit Brussel Method and device for correlation channel estimation
US20130148721A1 (en) * 2011-12-07 2013-06-13 Cisco Technology, Inc. Reference Frame Management for Screen Content Video Coding Using Hash or Checksum Functions
CN103281538A (zh) * 2013-06-06 2013-09-04 上海交通大学 基于滚动哈希和块级别帧内预测的帧内编码方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11736701B2 (en) 2014-09-30 2023-08-22 Microsoft Technology Licensing, Llc Hash-based encoder decisions for video coding
CN110024398A (zh) * 2016-11-30 2019-07-16 微软技术许可有限责任公司 针对屏幕远程处理场景的局部的基于散列的运动估计
CN110024398B (zh) * 2016-11-30 2022-12-13 微软技术许可有限责任公司 针对屏幕远程处理场景的局部的基于散列的运动估计
CN115484463A (zh) * 2018-09-05 2022-12-16 Lg电子株式会社 对视频信号进行解码/编码及发送数据的设备
CN115484463B (zh) * 2018-09-05 2024-06-04 Lg电子株式会社 对视频信号进行解码/编码及发送数据的设备
CN113170194A (zh) * 2019-01-02 2021-07-23 北京字节跳动网络技术有限公司 基于散列的运动搜索的简化
TWI737184B (zh) * 2019-02-22 2021-08-21 聯發科技股份有限公司 幀内塊複製模式的合併列表生成的方法和裝置
US11122260B2 (en) 2019-02-22 2021-09-14 Mediatek Inc. Method and apparatus of Merge list generation for Intra Block Copy mode
CN113873096A (zh) * 2020-06-30 2021-12-31 晶晨半导体(上海)股份有限公司 场景检测方法、芯片、电子设备以及存储介质

Also Published As

Publication number Publication date
EP3061253A4 (en) 2016-08-31
US10264290B2 (en) 2019-04-16
WO2015058395A1 (en) 2015-04-30
CN105684441B (zh) 2018-09-21
KR20160075705A (ko) 2016-06-29
US20160234530A1 (en) 2016-08-11
EP3061253A1 (en) 2016-08-31

Similar Documents

Publication Publication Date Title
CN105684441A (zh) 视频和图像编码中的基于散列的块匹配
CN110024392B (zh) 用于视频译码的低复杂度符号预测
CN105556971B (zh) 针对帧内块复制预测中的块翻动和跳跃模式的编码器侧判定
CN105684409B (zh) 在视频和图像编码和解码中使用散列值来表示各块
CN105393537B (zh) 用于基于散列的块匹配的散列表构建和可用性检查
CN105917648B (zh) 具有非对称分区的帧内块复制预测以及编码器侧搜索图案、搜索范围和用于分区的方法
CN105359531B (zh) 用于针对屏幕内容编码的编码器侧判定的方法和系统
CN106576172B (zh) 用于编码/解码图像的方法和使用该方法的装置
CN105659602B (zh) 用于视频和图像编码的帧内块复制预测模式的编码器侧选项
RU2584498C2 (ru) Видеокодирование интра-режима
CN112470474A (zh) 基于历史的仿射合并和运动矢量预测
CN105706450A (zh) 根据基于散列的块匹配的结果的编码器决定
CN113424541B (zh) 视频编解码的方法和装置
CN105874791A (zh) 在对重叠区域内的经重构样本值的块向量预测和估计方面的创新
CN105247871A (zh) 帧内块复制预测中的块翻动和跳跃模式
EP2493198A1 (en) Moving image coding device, moving image decoding device, moving image coding/decoding system, moving image coding method and moving image decoding method
CN105917650A (zh) 视频和图像编码/解码中的块向量预测
CN105765974A (zh) 用于视频和图像编码和解码的帧内块复制预测模式的特征
CN105659606A (zh) 用于视频和图像编码和解码的基础颜色索引图模式的特征
CN105264888A (zh) 用于对色彩空间、色彩采样率和/或比特深度自适应切换的编码策略
CN105981382A (zh) 用于视频编码的基于散列的编码器判定
CN105432077A (zh) 在切换色彩空间时调整量化/缩放和逆量化/缩放
CN105230023A (zh) 色彩空间、色彩采样率和/或比特深度的自适应切换
KR20200003888A (ko) 비디오 압축에서의 엔트로피 코딩을 위한 선택적 혼합
JP2021519039A (ja) 動画の符号化並びに復号の方法、装置及びコンピュータプログラム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant