CN105981382B - 用于视频编码的基于散列的编码器判定 - Google Patents

用于视频编码的基于散列的编码器判定 Download PDF

Info

Publication number
CN105981382B
CN105981382B CN201480071892.2A CN201480071892A CN105981382B CN 105981382 B CN105981382 B CN 105981382B CN 201480071892 A CN201480071892 A CN 201480071892A CN 105981382 B CN105981382 B CN 105981382B
Authority
CN
China
Prior art keywords
block
value
candidate blocks
encoder
picture
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201480071892.2A
Other languages
English (en)
Other versions
CN105981382A (zh
Inventor
B·李
J-Z·徐
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
Priority to CN202211294002.7A priority Critical patent/CN115665423A/zh
Priority to CN201910375217.3A priority patent/CN110582001B/zh
Publication of CN105981382A publication Critical patent/CN105981382A/zh
Application granted granted Critical
Publication of CN105981382B publication Critical patent/CN105981382B/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/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/523Motion estimation or motion compensation with sub-pixel accuracy
    • 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/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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • 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/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • 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/142Detection of scene cut or scene change
    • 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/154Measured or subjectively estimated visual quality after decoding, e.g. measurement of distortion
    • 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

Landscapes

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

Abstract

呈现了使用基于散列的块匹配的结果的编码器侧判定方面的创新。例如,这些创新中的一些涉及构建包括一些(而非全部)均匀块的散列表的方式。其他创新涉及根据基于散列的块匹配的结果来确定运动向量分辨率的方式。又一些创新涉及编码期间的场景改变检测,包括长期参考图片选择和图片质量确定。

Description

用于视频编码的基于散列的编码器判定
背景
工程师使用压缩(也叫做源编码(source coding或source encoding))来降低数字视频的比特率。压缩通过将视频信息转换成较低比特率的形式来降低存储和传送该信息的成本。解压(也被称为解码)从压缩的形式中重构一种版本的原始信息。“编解码器”是编码器/解码器***。
在过去的二十年中,已采用了各种视频编解码器标准,包括ITU-T H.261、H.262(MPEG-2或ISO/IEC 13818-2)、H.263和H.264(MPEG-4AVC或ISO/IEC14496-10)标准、MPEG-1(ISO/IEC 11172 1 172-2)和MPEG-4可视(ISO/IEC14496-2)标准以及SMPTE 421M(VC-1)标准。最近,H.265/HEVC标准(ITU-T H.265或ISO/IEC 23008-2)已被批准。目前,(例如,用于可缩放视频编码/解码、用于在样本比特深度或色度采样率方面具有较高保真度的视频的编码/解码、用于屏幕捕捉内容、或用于多视图编码/解码的)H.265/HEVC标准的扩展处于开发中。视频编解码器标准通常定义针对经编码的视频比特流的句法的选项,从而详述当在编码和解码时使用特定特征时该比特流中的参数。在许多情况下,视频编解码器标准还提供关于解码器应当执行以在解码时取得一致的结果的解码操作的细节。除了编解码器标准外,各种专用编解码器格式定义针对经编码的视频比特流的句法的其他选项以及相应的解码操作。
一般而言,视频压缩技术包括“图像内”压缩和“图像间”压缩。图片内压缩技术压缩各个体图片,且图片间压缩技术参考前导和/或跟随图片(通常被称为参考或另一图片)来压缩图片。
图片间压缩技术通常使用运动估计和运动补偿通过利用视频序列中的时间冗余来降低比特率。运动估计是用于估计图片之间的运动的过程。在一个常用技术中,使用运动估计的编码器尝试将当前图片中的当前样本值块与另一图片(参考图片)中的搜索区域中的相同尺寸的候选块匹配。一般来说,参考图片是包含在对其他图片的解码过程中可用于预测的样本值的图片。
对于当前块,当编码器在参考图片中的搜索区域中找到精确或“足够接近”的匹配时,编码器将当前和候选块之间的位置改变参数化为运动数据(诸如运动矢量(“MV”))。常规上MV是二维值,具有指示左或右空间位移的水平MV分量和指示上或下空间位移的垂直MV分量。一般来说,运动补偿是使用运动数据从(诸)参考图片中重构图片的过程。
在一些编码技术中,将当前图片的块与一个或多个参考图片的块匹配。然而,在大量块需要被存储或匹配时,这样的匹配技术可遭受降低的性能。在其他编码技术中,运动向量精度可被改变(例如,在逐图片的基础上),但判定何时改变运动向量精度可以是困难的任务。在又一些编码技术中,场景改变检测被执行。然而,这样的检测技术可能无法高效或准确地检测涉及屏幕内容的场景改变。
概述
总而言之,详细描述呈现了在编码期间执行各种任务和操作时使用基于散列的块匹配的结果的编码器侧判定方面的创新。例如,这些创新中的一些涉及构建包括部分(而非全部)均匀块的散列表的方式。其他创新涉及根据基于散列的块匹配来确定运动向量分辨率。例如,图片的块可被分类成多个类别,并且向每一类别分配的块的数目可用于确定要使用哪个运动向量精度。其他创新涉及至少部分地使用基于散列的块匹配信息的场景改变检测。例如,图片可在场景改变的各个阶段(例如,在稳定场景期间、紧接在场景改变之前、在场景转变期间以及在新场景的开始处)被标识。场景改变信息可在编码期间在选择长期参考图片时和/或在调整图片质量时被使用。
参考附图阅读以下详细描述,将更清楚本发明的前述和其他目标、特征和优点。
附图简述
图1是其中可实现所描述的一些实施例的示例计算***的示图。
图2a和2b是其中可实现所描述的一些实施例的示例网络环境的示图。
图3是结合其可实现所描述的一些实施例的示例编码器***的示图。
图4a和4b是示出结合其可实现所描述的一些实施例的示例视频编码器的示图。
图5是示出具有可为屏幕捕捉提供输入的内容的计算机桌面环境的示图。
图6是示出具有自然视频内容和人工创建的视频内容的复合视频的示图。
图7是示出在基于散列的块匹配中的候选块的散列值的表。
图8a-8c是示出为基于散列的块匹配组织候选块的示例数据结构的表。
图9a-9c是示出为迭代的基于散列的块匹配组织候选块的示例数据结构的表。图10a-10c是示出候选块的模式的示图。
图11是示出用于在散列表构造期间使用均质选择准则来选择均质块的技术的流程图。
图12a和12b是示出利用分别具有整数样本空间位移和分数样本空间位移的MV值的运动补偿的示图。
图13是示出用于取决于块分类的结果来选择MV精度的技术的流程图。
图14是示出用于执行在选择MV精度时使用的块分类的技术的流程图。
图15是示出用于在视频编码期间检测场景改变的技术的流程图。
详细描述
该详细描述呈现了使用基于散列的匹配技术来改善各种类型的操作的性能的编码器侧判定方面的创新。例如,这些创新中的一些涉及构建包括部分(而非全部)均匀块(例如,仅包括满足选择准则的那些均质块)的散列表的方式。其他创新涉及根据基于散列的块匹配来确定运动向量分辨率。例如,图片的块可被分类成多个类别,并且向每一类别分配的块的数目可用于确定要使用哪个运动向量精度。其他创新涉及至少部分地使用基于散列的块匹配信息的场景改变检测。例如,图片可在场景改变的各个阶段(例如,在稳定场景期间、紧接在场景改变之前、在场景转变期间以及在新场景的开始处)标识。场景改变信息可在编码期间在选择长期参考图片时和/或在调整图片质量时被使用。
具体地,这些创新可提供用于在对人工创建的视频内容(诸如屏幕捕捉内容)进行编码期间设置参数的计算上高效的方式。
虽然本文中描述的操作是被适当描述为由视频编码器来执行,但在许多情况中,这些操作可由另一类型的媒体处理工具(例如图像编码器)来执行。
本文中描述的一些创新是参考专用于H.265/HEVC标准的句法元素和操作来示出的。例如,对H.265/HEVC标准的草稿版本JCTVC-P1005—即2014年2月的“高效视频编码(HEVC)范围扩展文本规范:第6稿”JCTVC-P1005_vl作出参考。本文中描述的各创新还可以被实现为用于其它标准或格式。
本文中描述的许多创新可在对某个人工创建的视频内容(诸如来自屏幕捕捉模块的屏幕捕捉内容)进行编码时改善决定作出过程。屏幕捕捉内容通常包括重复的结构(例如图形、文本字符)。屏幕捕捉内容一般以具有高色度的采样分辨率的格式(例如,YUV 4:4:4或RGB 4:4:4)来编码,但是也可以具有较低色度的采样分辨率的格式(例如,YUV 4:2:0)来编码。对屏幕捕捉内容进行编码/解码的常见场景包括远程桌面会议和对自然视频或其它“混合内容”视频的图形覆盖进行编码/解码。这些创新也可以被用于自然视频内容,但可能不像那样有效。
更一般地,本文中描述的各示例的各种替代是可能的。例如,本文中描述的一些方法可以通过改变描述的方法动作的顺序、通过拆分、重复或忽略某些方法动作等来更改。所公开的技术的各方面能够被组合地或分开地使用。不同的实施例使用所描述的创新中的一个或多个。本文中描述的一些创新解决了背景中指出的一个或多个问题。通常,所给出的技术/工具并不解决所有这些问题。
示例计算***
图1示出了其中可实现几个所描述的创新的合适计算***(100)的概括示例。计算***(100)并不旨对使用范围或功能提出任何限制,因为这些创新可以在不同的通用或专用计算***中实现。
参考图1,计算***(100)包括一个或多个处理单元(110、115)和存储器(120、125)。处理单元(110、115)执行计算机可执行指令。处理单元可以是通用中央处理单元(“CPU”)、专用集成电路(“ASIC”)中的处理器或任何其它类型的处理器。在多处理***中,多个处理单元执行计算机可执行指令以提高处理能力。例如,图1示出中央处理单元(110)以及图形处理单元或协处理单元(115)。有形存储器(120、125)可以是易失性存储器(例如,寄存器、高速缓存、RAM)、非易失性存储器(例如,ROM、EEPROM、闪存等)或两者的某种组合,可由处理单元存取。存储器(120,125)存储实现根据基于散列的块匹配的结果的编码器判定的一个或多个创新(例如,用于构建散列表、用于选择MV精度、以及用于检测场景改变并基于场景改变作出判定)的软件(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)。术语计算机可读存储介质不包括信号和载波。此外,术语计算机可读存储介质不包括通信连接(例如,170)。
各创新可在计算机可执行指令(诸如包括在程序模块中的在目标现实或虚拟处理器上在计算***中执行的那些计算机可执行指令)的一般上下文中描述。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、库、对象、类、组件、数据结构等。如各实施例中所描述的,这些程序模块的功能可以被组合,或者在这些程序模块之间拆分。针对各程序模块的计算机可执行指令可以在本地或分布式计算***中执行。
术语“***”和“设备”在此被互换地使用。除非上下文明确指示,否则,术语并不暗示对计算***或计算设备的类型的任何限制。一般说来,计算***或计算设备可以是本地的或分布式的,并且可以包括具有实现本文中描述的功能的软件的专用硬件和/或通用硬件的任意组合。
所公开的方法还可使用被配置成执行所公开的方法中的任一者的专用计算硬件来实现。例如,所公开的方法可以由被专门设计或配置成实现所公开的方法中的任一者的集成电路(例如,诸如ASIC数字信号处理器(“DSP”)之类的ASIC、图像处理单元(“GPU”)、或诸如场可编程门阵列(“FPGA”)之类的可编程逻辑器件(“PLD”))来实现。
为了呈现起见,本详细描述使用了如“确定”和“使用”等术语来描述计算***中的计算机操作。这些术语是对由计算机执行的操作的高级抽象,且不应与人类所执行的动作混淆。对应于这些术语的实际的计算机操作取决于实现而不同。
II.示例网络环境
图2a和2b示出了包括视频编码器(220)和视频解码器(270)的示例网络环境(201,202)。编码器(220)和解码器(270)使用合适的通信协议通过网络(250)连接。网络(250)可包括因特网或另一计算机网络。
在图2a所示的网络环境(201)中,每个实时通信(“RTC”)工具(210)都包括用于双向通信的编码器(220)和解码器(270)两者。给定的编码器(220)可以产生符合H.265/HEVC标准、SMPTE 421M标准、ISO/IEC 14496-10标准(也称为H.264或AVC)、另一标准、或专用格式的变型或扩展的输出,使得相应的解码器(270)接受来自编码器(220)的经编码的数据。双向通信可以是视频会议、视频电话呼叫或其它双方或多方通信场景的部分。虽然,图2a中的网络环境(201)包括两个实时通信工具(210),但网络环境(201)可改为包括参与多方通信的三个或更多个实时通信工具(210)。
实时通信工具(210)管理编码器(220)做出的编码。图3示出可以被包括在实时通信工具(210)中的示例编码器***(300)。替换地,实时通信工具(210)使用另一编码器***。实时通信工具(210)还管理解码器(270)做出的解码。
在图2b中示出的网络环境(202)中,编码工具(212)包括编码供递送给多个回放工具(214)的视频的编码器(220),此多个回放工具(214)包括解码器(270)。单向通信可被提供用于视频监视***、web相机监视***、远程桌面会议演示或在其中编码视频并将视频从一个位置发送到一个或多个其它位置的其它场景。虽然在图2b中的网络环境(202)包括两个回放工具(214),但该网络环境(202)可以包括更多或更少的回放工具(214)。一般来说,回放工具(214)与编码工具(212)通信以确定回放工具(214)要接收的视频流。回放工具(214)接收该流、缓冲所接收的经编码数据达合适的时间段并开始解码和回放。
图3示出可以被包括在编码工具(212)中的示例编码器***(300)。替换地,编码工具(212)使用另一编码器***。编码工具(212)还可以包括用于管理与一个或多个回放工具(214)的连接的服务器侧控制器逻辑。回放工具(214)还可以包括用于管理与编码工具(212)的连接的客户机侧控制器逻辑。
III.示例编码器***。
图3是结合其可实现所描述的一些实施例的示例编码器***(300)的框图。编码器***(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)分量的样本值表示色差值。色差值(以及从YUV色彩空间到诸如RGB的另一色彩空间和/或从另一色彩空间到YUV色彩空间的转换操作)的精确定义取决于实现。通常,如在此所用,术语YUV指示具有亮度(或照度)分量和一个或多个色度(或色差)分量的任意色彩空间,包括Y’UV、YIQ、Y’IQ和YDbDr以及诸如YCbCr和YCoCg之类的变体。色度采样值可以被子采样到较低的色度采样率(例如对于YUV 4:2:0格式),或者色度采样值可以具有与亮度采样值相同的分辨率(例如对于YUV4:4:4格式)。或者,视频可用另一格式(例如RGB 4:4:4格式、GBR 4:4:4格式或BGR 4:4:4格式)来编码。
编码器(340)编码所选的帧(331)以产生经编码的帧(341)并且还产生存储器管理控制操作(“MMCO”)信号(342)或参考图片集(“RPS”)信息。RPS是在针对当前帧或任意后续帧的运动补偿中可用于供参考的帧集。如果当前帧不是已被编码的第一帧,则在执行其编码处理时,编码器(340)可以使用已经被存储在经解码帧的临时存储器存储区域(360)中的一个或多个先前被编码/解码的帧(369)。这样的存储的经解码帧(369)被用作用于当前源帧(331)的内容的帧间预测的参考帧。MMCO/RPS信息(342)向解码器指示哪些经重构的帧可被用作参考帧,并且因此应该被存储在帧存储区域中。以下描述作出关于要将哪些参考图片保留在RPS中的判定的示例方式。
一般来说,编码器(340)包括执行编码任务的多个编码模块,编码任务为诸如分割成小块、帧内预测估计和预测、运动估计和补偿、频率变换、量化和熵编码。由编码器(340)执行的确切操作可以取决于压缩格式而变化。输出的经编码数据的格式可以是H.265/HEVC格式、Windows媒体视频格式、VC-1格式、MPEG-x格式(例如,MPEG-1、MPEG-2或MPEG-4)、H.26x格式(例如,H.261、H.262、H.263或H.264)或其它格式的变型或扩展。
编码器(340)可以将帧分割成相同尺寸或不同尺寸的多个小块。例如,编码器(340)沿小块行和小块列来拆分帧,这些小块行和小块列利用帧边界定义在该帧内的小块的水平和垂直边界,其中每个小块是矩形区域。小块通常被用于提供并行处理的选项。帧还可以被组织成一个或多个片,其中一个片可以是整个帧或该帧的区域。片可以独立于帧中的其它片编码,这改善了错误复原性。出于编码和解码的目的,片或小块的内容被进一步分隔成块或其它采样值集。
对于根据H.265/HEVC标准的句法来说,编码器将帧(或片或小块)的内容拆分成编码树单元。编码树单元(“CTU”)包括被组织为亮度编码树块(“CTB”)的亮度采样值,并且对应的色度采样值被组织为两个色度CTB。CTU(及其CTB)的尺寸由编码器来选择,并且可例如为64x64、32x32或16x16个样本值。CTU包括一个或多个编码单元。编码单元(“CU”)具有亮度编码块(“CB”)和两个对应的色度CB。例如,具有64x64亮度CTB和两个64x64色度CTB(YUV 4:4:4格式)的CTU可以被拆分成4个CU,其中每个CU包括一32x32亮度CB和两个32x32色度CB,并且每个CU可能被进一步拆分成更小的CU。或者,作为另一示例,具有64x64亮度CTB和两个32x32色度CTB(YUV 4: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具有最小尺寸(例如8×8)。在那个情况下,CU可被拆分成四个较小的PU(例如,如果最小CU尺寸为8x8,则PU为4x4),或者PU可具有最小CU尺寸,如针对CU的句法元素所指示的。出于残留编码/解码的目的,CU还具有一个或多个变换单元,其中变换单元(“TU”)具有一变换块(“TB”)和两个色度TB。在帧内预测的CU中的PU可以包含单个TU(尺寸与PU相同)或多个TU。编码器决定如何将视频分割成CTU、CU、PU、TU等。
在H.265/HEVC实现中,片可以包括单个片段(独立的片段)或被划分成多个片段(独立的片段和一个或多个从属的片段)。片段是在小块扫描中包含在单个网络抽象层(“NAL”)单元中的连续排序的整数个CTU。对于独立的片段,片段头部包括适用于该独立的片段的句法元素的值。对于从属片段,截断的片段头部包括适用于该从属片段的句法元素的几个值,并且从属片段的其它句法元素的值是以解码顺序从在前的独立的片段的值中推导出来的。
如本文中所使用的,术语“块”可以指示宏块、预测单元、残留数据单元、或者CB、PB或TB,或者某些其它样本值集,这取决于上下文。
回到图3,编码器根据来自源帧(331)中的其它、先前重构的样本值的预测来表示该帧(331)内编码的块。对于帧内块复制(“BC”)预测,图片内估计器或运动估计器估计块相对于同一帧中的其它、先前重构的样本值的位移。帧内预测参考区域是帧中被用于生成块的BC预测值的样本值区域。帧内预测区域可以用块矢量(“BV”)值来指示,该块矢量值可在比特流中被表示为运动矢量(“MV”)值。对于块的空间内预测,图片内估计器估计相邻的经重构的样本值到该块的外插。预测信息(诸如,针对帧内BC预测的BV/MV值、或针对帧内空间预测的预测模式(方向))可被熵编码并被输出。帧内预测预测器(或针对BV/MV值的运动补偿器)应用预测信息来确定帧内预测值。
编码器(340)依据来自一个或多个参考帧(369)的预测来表示源帧(331)的帧间编码的预测的块。运动估计器估计块相对于一个或多个参考帧(369)的运动。运动估计器可例如使用本文中描述的方法来选择MV精度(例如,整数样本MV精度、1/2样本MV精度或1/4样本MV精度),随后在运动估计期间使用所选的MV精度。当使用多个参考帧时,这多个参考帧可来自不同的时间方向或相同的时间方向。经运动补偿的预测参考区域是在参考帧中被用于生成当前帧的采样值的块的经运动补偿的预测值的采样值的区域。运动估计器输出诸如MV量信息之类的运动信息,该运动信息被熵编码。运动补偿器将MV应用于参考帧(369)以确定用于帧间预测的经运动补偿的预测值。
编码器可以确定在块预测值(帧内或帧间)和对应的原始值之间的差值(如果有的话)。这些预测残留值将进一步使用频率变换、量化和熵编码来编码。例如,编码器(340)为图片、小块、片和/或视频的其它部分设置量化参数(“QP”)的值,并相应地量化变换系数。编码器(340)的熵编码器压缩经量化的变换系数值以及某些辅助信息(例如MV信息、所选的MV精度、SAO滤波参数、RPS更新信息、QP值、模式决定、其他参数选择)。典型的熵编码技术包括指数-Golomb编码、Golomb-Rice编码、算术编码、差分编码、Huffman编码、行程长度编码、可变长度对可变长度(“V2V”)编码、可变长度对固定长度(“V2F”)编码、Lempel-Ziv(“LZ”)编码、字典编码、概率区间划分熵编码(“PIPE”)和上述编码的组合。熵编码器可对不同种类的信息使用不同的编码技术,并可组合地应用多个技术(例如,通过应用Golomb-Rice编码,随后应用算术编码),并可从特定编码技术内的多个码表中进行选择。
自适应去块滤波器可以被包括在编码器(340)中的运动补偿循环内以平滑经解码的帧中的块边界行和/或列上的间断。可替换地或另外地应用其它滤波(诸如去振铃滤波、自适应环路滤波(“ALF”)或SAO滤波)作为内环路滤波操作。
由编码器(340)产生的经编码的数据包括针对各层位流句法的句法元素。对于根据H.265/HEVC的标准的句法,例如,图片参数集(“PPS”)是包含了与图片相关联的句法元素的句法结构。PPS可被用于单个图片,或者PPS可被重用于序列中的多个图片。PPS典型地与图片的经编码的数据分开地发送信号(例如PPS的一个NAL单元和用于图片的经编码的数据的一个或多个其它NAL单元)。在图片的经编码数据内,句法元素指示要为该图片使用哪个PPS。类似地,对于根据H.265/HEVC的标准的句法,序列参数集(“SPS”)是包含了与图片的序列相关联的句法元素的句法结构。位流可包括单个SPS或多个SPS。SPS通常被信号化成与序列的其它数据分开,并且其它数据中的句法元素指示要使用哪个SPS。
经编码的帧(341)和MMCO/RPS信息(342)(或与MMCO/RPS信息(342)等价的信息,因为在编码器(340)处已经知道各帧的依赖关系和排序结构)由解码处理仿真器(350)处理。解码处理仿真器(350)实现了解码器的一些功能,例如对任务进行解码以重构参考帧。以与MMCO/RPS信息(342)相一致的方式,解码处理仿真器(350)确定给定的经编码帧(341)是否需要被重构并被存储以供在对要编码的后续帧的帧间预测中用作参考帧。如果经编码的帧(341)需要被存储,则解码处理仿真器(350)对将由解码器进行的解码处理建模,该解码器接收经编码的帧(341)并产生相应的经解码的帧(351)。通过这么做,当编码器(340)已经使用已被存储在经解码帧存储区域(360)中的经解码的帧(369)时,解码处理仿真器(350)还使用来自存储区域(360)的经解码的帧(369)作为解码处理的一部分。
经解码帧临时存储器存储区域(360)包括多个帧缓冲存储区域(361,362,…,36n)。以与MMCO/RPS信息(342)相一致的方式,解码处理仿真器(350)管理存储区域(360)中的内容,以便标识出具有编码器(340)不再需要将其用作参考帧的帧的任何帧缓冲区(361、362等)。在对解码处理进行建模之后,解码处理仿真器(350)在帧缓冲区(361、362等)中存储已经以此方式标识出的新解码的帧(351)。
经编码的帧(341)和MMCO/RPS信息(342)被缓冲在临时的经编码数据区域(370)中。被聚集在经编码数据区域(370)中的经编码数据包含一个或多个图片的经编码数据作为基本经编码视频位流的句法的一部分。在经编码数据区域(370)中被聚集的经编码数据还可包括与经编码的视频数据相关的媒体元数据(例如作为一个或多个补充增强信息(“SEI”)消息或视频可用性信息(“VUI”)消息中的一个或多个参数)。
来自临时的经编码数据区域(370)的经聚集的数据(371)由信道编码器(380)处理。信道编码器(380)可以分组化和/或复用经聚集的数据以供作为媒体流传输或存储(例如根据媒体程序流或传输流格式,例如ITU-T H.222.0|ISO/IEC 13818-1或因特网实时传输协议格式(例如IETF RFC 3550)),在这种情况中,信道编码器(380)可以添加句法元素作为媒体传输流的句法的一部分。或者,信道编码器(380)可以组织经聚集的数据以供存储成文件(例如根据媒体容器格式,诸如ISO/IEC 14496-12),在这种情况中信道编码器(380)可添加句法元素作为媒体存储文件的句法的一部分。或者,更一般地,信道编码器(380)可以实现一个或多个媒体***复用协议或传输协议,在这种情况中,信道编码器(380)可以添加句法元素作为(诸)协议的句法的一部分。信道编码器(380)将输出提供给信道(390),该信道(390)表示存储、通信连接或该输出的另一信道。信道编码器(380)或信道(390)还可以包括例如用于前向纠错(“FEC”)编码和模拟信号调制的其它元素(未示出)。
IV.示例视频编码器。
图4a和4b是可结合其实现所描述的一些实施例的通用视频编码器(400)的框图。编码器(400)接收包括当前图片的视频图片序列作为输入视频信号(405)并在经编码视频位流(495)中产生经编码数据作为输出。
编码器(400)是基于块的并使用取决于实现的块格式。块还可在不同的阶段上被进一步细分,例如在预测、频率变换和/或熵编码阶段。例如,图片可以被划分成64x64块、32x32块或16x16块,这些块随后可以被划分成更小的样本值块以用于编码和解码。在针对H.265/HEVC标准的编码的实现中,编码器将图片分割成CTU(CTB)、CU(CB)、PU(PB)和TU(TB)。
编码器(400)使用图片内编码和/或图片间编码来压缩图片。编码器(400)的许多组件被用于图片内编码和图片间编码两者。由这些组件执行的确切操作可取决于所压缩的信息的类型而变化。
小块化模块(410)可选地将图片分割成相同尺寸或不同尺寸的多个小块。例如,小块化模块(410)沿小块行和小块列来拆分图片,所述小块行和小块列利用图片边界定义在图片内的小块的水平和垂直边界,其中每个小块是矩形区域。在H.265/HEVC实现中,编码器(400)将图片分割成一个或多个片,其中每个片包括一个或多个片段。
通用编码控件(420)接收输入视频信号(405)的图片以及来自编码器(400)的各个模块的反馈(未示出)。整体上,通用编码控件(420)将控制信号(未示出)提供给其它模块(例如小块化模块(410)、变换器/缩放器/量化器(430)、缩放器/逆变换器(435)、图片内估计器(440)、运动估计器(450)、滤波控件(460)以及帧内/帧间切换)以设置和改变编码期间的编码参数。例如,在编码期间,通用编码控件(420)可管理关于散列表创建、MV精度、以及要将哪些参考图片保留在RPS中的判定。通用编码控件(420)还可以估计编码期间的中间结果,例如执行速率-失真分析来评估。通用编码控件(420)产生指示在编码期间所做出的决定的通用控制数据(422),使得对应的解码器可以作出一致的决定。通用控制数据(422)被提供给头部格式化器/熵编码器(490)。
如果使用图片间预测来预测当前的图片,运动估计器(450)相对于一个或多个参考图片估计输入视频信号(405)的当前图片的采样值的块的运动。经解码的图片缓冲器(470)缓冲一个或多个经重构的先前编码的图片以供用作参考图片。当使用多个参考图片时,这多个参考图片可以来自不同的时间方向或相同的时间方向。
与通用编码控件(420)和块散列字典(451)一起工作,运动估计器(450)可使用本文中描述的方法来选择MV精度(例如,整数样本MV精度、1/2样本MV精度或1/4样本MV精度),随后在运动估计期间使用所选的MV精度。对于运动估计期间的基于散列的块匹配,运动估计器(450)可使用块散列字典(451)来寻找当前块的MV值。块散列字典(451)是为基于散列的块匹配组织候选块的数据结构。块散列字典(451)是散列表的示例。在图4b中,块散列字典(451)是基于输入样本值来构建的。替换地,块散列字典可基于重构的样本值来构建并在编码器期间被更新,以存储关于新的候选块(如变得可用于供在基于散列的块匹配时使用的那些候选块)的信息。
运动估计器(450)产生诸如MV数据、合并模式索引值和参考图片选择数据之类的辅助信息运动数据(452)以及所选的MV精度。这些被提供给头部格式化器/熵编码器(490)以及运动补偿器(455)。
运动补偿器(455)将MV应用于来自DPB(470)的(诸)经重构的参考图片。运动补偿器(455)产生针对当前图片的经运动补偿的预测。
在编码器(400)内的分开的路径中,图片内估计器(440)确定如何执行对输入视频信号(405)的当前图片的样本值块的图片内预测。当前图片可全部或部分使用图片内编码来编码。对于空间内预测,使用当前图片的重构(438)的值,图片内估计器(440)确定如何从当前图片的邻近的、先前重构的样本值中空间地预测当前图片的当前块的样本值。图片内估计器(440)可确定要对当前块使用的空间预测的方向。
或者,对于使用BV/MV值的帧内BC预测,图片内估计器(440)或运动估计器(450)估计当前块的样本值相对于作为参考图片的当前图片内的不同候选参考区域的位移。对于基于散列的块匹配,图片内估计器(440)或运动估计器(450)可使用块散列字典(未示出)来寻找当前块的BV/MV值。或者,对于图片内字典编码模式,块中的像素是使用存储在字典或其他位置的先前的样本值来编码的,其中一像素是各共置样本值的集合(例如,RGB三元组或YUV三元组)。
图片内估计器(440)产生诸如模式信息、(针对帧内空间预测的)预测模式方向和(针对字典模式的)偏移和长度等作为辅助信息帧内预测数据(442)。图片内预测数据(442)被提供给头部格式化器/熵编码器(490)以及图片内预测器(445)。
根据图片内预测数据(442),图片内预测器(445)从当前图片的邻近的先前重构的采样值中在空间上预测当前图片的当前块的采样值。或者,对于帧内BC预测,图片内预测器(445)或运动补偿器(455)使用图片内预测参考区域的先前重构的样本值来预测当前块的样本值,图片内预测参考区域由针对当前块的BV/MC值指示。或者,对于图片内字典模式,图片内预测器(445)使用偏移和长度重构各像素。
帧内/帧间切换选择对给定块的预测(458)将是经运动补偿的预测还是图片内预测。
对于非跳跃模式块,预测(458)的块和输入视频信号(405)的原始当前图片的对应部分之间的差异(如果有的话)提供残留值(418)的值。在当前图片的重构期间,对于非跳跃模式块,经重构的残留值与预测(458)组合来从视频信号(405)中产生对原始内容的近似或精确的重构(438)。(在有损压缩中,一些信息从视频信号(405)中丢失。)
在变换器/缩放器/量化器(430)中,频率变换器将空间域视频信息转换为频域(即频谱、变换)数据。对于基于块的视频编码,频率变换器将离散余弦变换(“DCT”)、其整数近似、或其它类型的前向块变换(例如离散正弦变换或其整数近似)应用于预测残留数据的块(如果预测(458)为空则应用于采样值数据),产生频率变换系数的块。变换器/缩放器/量化器(430)可以应用具有可变块尺寸的变换。在一些情况下,编码器(400)还可跳过变换步骤。
缩放器/量化器对变换系数进行缩放和量化。例如,量化器将以逐图片基础、逐小块基础、逐片基础、逐块基础、频率专用基础或其它基础来变化的量化步进尺寸将死区标量量化应用于频域数据。经量化的变换系数数据(432)被提供给头部格式化器/熵编码器(490)。
在缩放器/逆变换器(435)中,缩放器/逆量化器对经量化的变换系数执行逆缩放和逆量化。当变换阶段没有被跳过时,逆频率变换器执行逆频率变换,生成经重构的预测残留值或采样值的块。对于非跳跃模式块,编码器(400)将经重构的残留值与预测(458)的值(例如,经运动补偿的预测值、图片内预测值)组合以形成重构(438)。对于跳跃模式块或字典模式块,编码器(400)使用预测(458)的值作为重构(438)。
对于空间图片内预测,重构(438)的值可以被馈送回图片内估计器(440)和图片内预测器(445)。对于帧内BC预测,重构(438)的值可被类似地馈送回以提供经重构的样本值。同样,重构(438)的值可以被用于对后续图片的经运动补偿的预测。
重构(438)的值可被进一步滤波。对于视频信号(405)的给定图片,滤波控件(460)确定如何对重构(438)的值执行去块滤波和SAO滤波。滤波控件(460)生成滤波控制数据(462),它被提供给头部格式化器/熵编码器(490)和合并器/(诸)滤波器(465)。
在合并器/(诸)滤波器(465)中,编码器(400)将来自不同小块的内容合并到图片的经重构版本中。编码器(400)根据滤波器控制数据(462)选择性地执行去块滤波。替换地或另外地,可应用其它滤波(例如去振铃滤波或ALF)。取决于编码器(400)的设置,小块边界可以被选择性地滤波或根本不被滤波,并且编码器(400)可以在经编码的位流内提供指示是否应用这样的滤波的句法。
DPB(470)缓冲经重构的当前图片以供在后续的经运动补偿的预测中使用。具体地,RPS中的参考图片可被缓冲在DPB(470)中。然而,DPB(470)具有有限的存储器空间。如果将经重构的当前图片保留在DPB(470)中以供用作参考图片,则可将另一图片从DPB(470)中移除(并将其从RPS中丢弃)。通用编码控件(420)决定要将哪些图片保留在RPS中并缓冲在DPB(470)中。使用块散列字典(451),通用编码控件(420)可作出关于要将哪些参考图片保留在RPS中的决定,如以下所解释的。
头部格式化器/熵编码器(490)对通用控制数据(422)、经量化的变换系数数据(432)、图片内预测数据(442)、运动数据(452)以及滤波器控制数据(462)进行格式化和/或熵编码。对于运动数据(452),头部格式化器/熵编码器(490)可以选择并熵编码合并模式索引值,或可使用默认的MV预测器。在一些情况中,头部格式化器/熵编码器(490)还确定针对MV值(相对于MV预测值)的MV差分,随后例如使用上下文自适应二进制算术编码对MV差分进行熵编码。
头部格式化器/熵编码器(490)在经编码的视频位流(495)中提供经编码数据。经编码的视频比特流的格式(495)可以是H.265/HEVC格式、Windows媒体视频格式、VC-1格式、MPEG-x格式(例如,MPEG-1、MPEG-2或MPEG-4)、H.26x格式(例如,H.261、H.262、H.263或H.264)或其它格式的变型或扩展。
取决于期望的实现和压缩类型,编码器(400)的模块可被添加、省略、分成多个模块、与其它模块组合、和/或用相似的模块来替代。在替换实施例中,具有不同模块和/或其它配置的模块的编码器执行一个或多个所描述的技术。编码器的具体实施例通常使用编码器(400)的变型或补充版本。所示的编码器(400)内的各模块之间的关系指示了信息在编码器中的一般流动;为简明起见,未示出其它关系。
V.视频的类型。
本文中描述的用于创建散列表、选择MV精度和确定场景改变的方法可在编码任何类型的视频时应用。然而,具体地,这些方法可在对某个人工创建的视频内容(诸如屏幕捕捉内容)进行编码时改善性能。
一般来说,屏幕捕捉视频表示计算机屏幕或其他显示器的输出。图5示出具有可为屏幕捕捉提供输入的内容的计算机桌面环境(510)。例如,屏幕捕捉内容的视频可表示整个计算机桌面(511)的一系列图像。或者,屏幕捕捉内容的视频可表示针对计算机桌面环境的窗口之一的一系列图像,窗口为诸如包括游戏内容的应用窗口(513)、具有网页内容的浏览器窗口(512)或具有文字处理器内容的窗口(514)。
作为计算机生成的、人工创建的视频内容,屏幕捕捉内容往往具有与使用摄像机捕捉的自然视频内容相比相对较少的离散样本值。例如,屏幕捕捉内容的区域通常包括单个均匀色彩,而自然视频内容中的区域更可能包括逐渐变化的色彩。同样,屏幕捕捉内容通常包括不同的结构(例如,图形、文本字符),这些不同的结构精确地逐帧重复,即使该内容可能在空间上被移位(例如,由于滚动)。屏幕捕捉内容通常是用具有高色度采样分辨率的格式(例如YUV4:4:4或RGB 4:4:4)来编码的,但是它也可以用具有较低色度采样分辨率的格式(例如YUV 4:2:0、YUV 4:2:2)来编码。
图6示出包括自然视频内容(621)和人工创建的视频内容的复合视频(620)。人工创建的视频内容包括自然视频内容(621)旁边的图形(622)以及在自然视频内容(621)下面运行的贴标(623)。与图5中示出的屏幕捕捉内容类似,图6中示出的人工创建的视频内容往往具有相对较少的离散样本值。它往往还具有精确地逐帧重复或逐帧逐渐偏移(例如,由于滚动)的不同的结构(例如,图形、文本字符)。
VI.基于散列的块匹配的示例。
在本文中描述的各创新中,视频编码器当在编码期间作出关于参数的决定时使用基于散列的块匹配的结果。本章节描述基于散列的块匹配的各示例。
基于散列的块匹配。
在编码器使用基于散列的块匹配时,该编码器为一个或多个参考图片的多个候选块中的每一者确定散列值。散列表存储这些候选块的散列值。编码器还通过相同散列方法来确定当前块的散列值,并接着搜索散列表寻找匹配散列值。如果两个块相同,它们的散列值相同。使用散列值,编码器可快速且高效地标识具有与当前块相同的散列值的候选块,并过滤出具有不同散列值的候选块。取决于实现和基于散列的块匹配的目标,编码器可随后进一步评估与当前块具有相同散列值的那些候选块。(不同块可具有相同的散列值。因此,编码器可进一步在具有相同散列值的各候选块之中标识出匹配当前块的候选块。)
在一些示例实现中,针对候选块的散列值是从针对包括候选块的图片(参考图片)的输入样本值中确定的。在基于散列的块匹配期间,编码器使用输入的样本值为当前块确定块散列值。编码器将其(或以其他方式使用散列值)与从候选块的输入的样本值中确定的散列值进行比较。即便如此,来自匹配块的经重构的样本值被用于代表当前块。因此,预测操作仍使用经重构的样本值。
替换地,在基于散列的块匹配中考虑的候选块包括经重构的样本值。即,候选块是图片中先前编码接着重构内容的部分。候选块的散列值从重构的样本值中确定。在基于散列的块匹配期间,编码器使用输入的样本值为当前块确定块散列值。编码器将其(或以其他方式使用散列值)与从候选块的重构的样本值中确定的散列值进行比较。
图7示出了在基于散列的块匹配中用于候选块B(x,y)的散列值(700),其中x和y分别指示给定候选块的左上位置的水平和垂直坐标。候选块具有使用散列函数h()确定的散列值。对于参考图片中的候选块B(x,y),编码器从针对参考图片的输入样本值中确定针对该候选块的散列值h(B)。编码器可为参考图片中的所有候选块确定散列值。或者,编码器可筛选出一些候选块。
一般而言,散列函数h()得到n个可能散列值,指定为h0到hn-1。对于给定散列值,具有那个散列值的候选块聚成组。例如,在图7中,候选块B(1266,263)、B(1357,365)、B(1429,401),B(502,464)…具有散列值h0。各组可包括不同数量的候选块。例如,在图7中,散列值h4的组包括单个候选块,而散列值h0的组包括4个以上候选块。
以此方式,可能的候选块被分发到n个分类。例如,如果散列函数h()产生12比特散列值,则候选块被拆分成212=4,096个类别。每散列值的候选块数可通过消除具有那个散列值的冗余的、相同的块或者通过筛选出具有某些样本值图案的候选块被进一步降低。同样,编码器可使用不同的散列函数迭代地过滤减少候选块的数量。
用于基于散列的块匹配的散列函数取决于实现。散列函数可产生具有8比特、12比特、16比特、24比特、32比特或其它数量的比特的散列值。如果散列值具有更少比特,则数据结构包括更少类别,但是每个类别可包括更多候选块。换言之,使用具有更多比特的散列值有助于增加组织候选块的数据结构的尺寸。如果散列值具有更多比特,则数据结构包括更多类别,但是每个类别可包括更少候选块。散列函数h()可以是密码散列函数、密码散列函数的一部分、循环冗余校验(“CRC”)函数、CRC的一部分、或另一散列函数(例如,使用求平均和XOR操作来确定候选块或当前块的签名)。某些类型的散列函数(例如,CRC函数)将类似块映射到不同散列值,其在搜索精确对应于当前块的匹配块时可能是高效的。其他类型的散列函数(例如,位置敏感的散列函数)将相似的块映射到相同的散列值。
在基于散列的块匹配期间,使用散列函数h(),编码器为当前块B当前确定散列值。在图7中,散列值h(B当前)是h3。使用当前块的散列值,编码器可标识具有相同散列值的候选块(图7中的轮廓框所示),并过滤出其它候选块。当散列函数将类似块映射到不同散列值时,被标识的候选块(与当前块相同的散列值)包括可能与当前块相同的块。当散列函数将类似块映射到相同散列值时,被标识的候选块(与当前块相同的散列值)包括可能与当前块相同的或可能非常接近当前块的块。不管怎样,从这些标识出的候选块中,编码器还可(例如,使用逐样本的块匹配操作、使用第二散列函数)标识出当前块的匹配块。
总体地,由于散列值比较与逐样本的块匹配相比要简单得多,因此基于散列的块匹配可使得评估(诸)参考图片中的候选块的过程变得高效得多。同样,在编码期间,候选块的散列值可在针对图片内的不同块的基于散列的块匹配中重新使用。在该情况下,计算针对这些候选块的散列值的成本可跨针对整个图片、针对使用相同的参考图片的其他图片以及针对使用这些散列值的其他编码器侧决定的基于散列的块匹配操作被分摊。
B.用于基于散列的块匹配的数据结构。
在某些示例实现中,编码器使用根据它们的散列值组织候选块的数据结构。数据结构可帮助使得基于散列的块匹配更加计算高效。数据结构实现,例如,如在此描述的块散列字典或散列表。
图8a示出为基于散列的块匹配组织候选块的示例数据结构(800)。对于散列函数h(),n个可能散列值为h0到hn-1。具有相同散列值的候选块在同一候选块列表中分类。给定候选块列表可包括零个或更多条目。例如,散列值h2的候选块列表没有条目,散列值h6的列表具有两个条目,以及散列值h1的列表具有四个以上的条目。
条目(hi,k)包括具有散列值hi的第k个候选块的信息。如图8b所示,候选块列表中的条目可包括块B(x,y)的地址(例如,该块的左上角位置的水平和垂直坐标)。或者,如图8c中所示,候选块列表中的条目可包括块B(x,y)的地址以及来自第二散列函数的散列值,其可用于进行迭代的基于散列的块匹配。
在针对当前块的基于散列的块匹配期间,编码器确定当前块的散列值h(B当前)。编码器保留具有相同散列值的候选块列表并排除其它n-1个列表。为选择匹配块,编码器可将当前块与保留的候选块列表中的候选块(如果有)进行比较。因此,通过使用散列值h(B当前)的简单的查找操作,编码器可消除候选块的(n-1)/n(平均),并聚焦于保留的列表中余下的1/n候选块(平均),显著减少了样本级块匹配操作的数量。
不同的数据结构可被用于不同的参考图片。替换地,数据结构中针对候选块的条目存储指示包括该候选块的参考图片的信息,该信息可在基于散列的块匹配中被使用。
同样,不同的数据结构可被用于不同尺寸的块。例如,一个数据结构包括8×8个候选块的散列值、第二数据结构包括16×16个候选块的散列值、第三数据结构包括32×32个候选块的散列值,以此类推。在基于散列的块匹配期间使用的数据结构取决于当前块的尺寸。可替换地,单个、统一的数据结构可被用于不同尺寸的块。散列函数可产生一个n比特散列值,其中n比特散列值的m比特根据一个m比特散列函数指示给定块尺寸的可能的块中的散列值,而余下的n比特散列值的n-m比特指示给定块尺寸。例如,14比特散列函数的前两个比特可指示块尺寸,而余下的12比特根据12比特的散列函数指示散列值。或者,散列函数可产生m比特散列值而不考虑块尺寸,且数据结构中的候选块的条目存储指示候选块的块尺寸的信息,其可被用于基于散列的块匹配中。
对于高分辨率图片,数据结构可存储代表很大数量的候选块的信息。为了减少用于数据结构的存储器的量,编码器可去除冗余值。例如,编码器可跳过将相同的块添加到该数据结构。一般而言,通过去除相同块来减少数据结构的尺寸可伤及编码效率。因此,通过决定是否去除相同块,编码器可折衷数据结构的存储器尺寸和编码效率。编码器还可取决于这些块的内容来筛选出候选块。
C.迭代的基于散列的块匹配。
当编码器使用具有n个可能散列值的单个散列函数时,该编码器可基于当前块的散列值来排除候选块的n-1个列表,但编码器可能还需要针对余下的候选块(如果有)执行样本级块匹配操作以查找具有匹配散列值的列表。同样,当更新组织候选块的数据结构时,编码器可能需要执行样本级块匹配操作来标识相同的块。总体而言,这些样本级块匹配操作可以是计算密集的。
因此,在某些示例实现中,编码器使用迭代的基于散列的块匹配。迭代的基于散列的块匹配可加速块匹配过程,并且还可以加速更新组织候选块的数据结构的过程。
迭代的基于散列的块匹配使用以不同散列函数确定的多个散列值。对于块B(当前块或候选块),除了散列值h(B),编码器使用不同散列函数h'()确定另一个散列值h'(B)。使用当前块的第一散列值h(B当前),编码器为第一散列函数h()标识具有相同散列值的候选块。为进一步排除这些被标识的候选块的一些,编码器使用当前块的使用不同散列函数确定的第二散列值h'(B当前)。编码器将第二散列值h'(B当前)与先前标识的候选块的第二散列值(其具有相同第一散列值)进行比较,以过滤出更多候选块。散列表根据不同散列函数跟踪候选块的散列值。
在图8a的示例中,如果h(B当前)=h3,那么编码器选择具有条目(3,0)、条目(3,1)、条目(3,2)、条目(3,3),…的候选块用于进一步细化。如图8c中所示,对于候选块B,条目包括块地址和来自散列函数h'()的第二散列值h'(B)。编码器将当前块的第二散列值h'(B当前)与具有条目(3,0)、条目(3,1)、条目(3,2)、条目(3,3),…的各候选块的第二散列值h'(B)进行比较。基于第二散列值比较的结果,编码器可排除更多候选块,留下具有分别匹配h(B当前)和h'(B当前)的第一和第二散列值的候选块(如果有)。编码器可在任何余下的候选块上执行样本级块匹配以选择匹配块。
图9a-9c示出使用不同数据结构的迭代的基于散列的块匹配的另一示例。图9a中的数据结构(900)依据来自第一散列函数h()(其具有n1个可能散列值)的第一散列值来组织候选块。数据结构(900)包括从h0…hn1-1的散列值的列表。在该示例中,编码器为当前块确定第一散列值h(B当前)=h2,并从结构(900)选择h2的列表。
如图9b所示,h2的列表(910)包括进一步依据来自第二散列函数h'()(其可能具有n2个可能散列值)的第二散列值来组织余下的候选块的多个列表。列表(910)包括从h'0…h'n2-1的散列值的列表,每个列表包括具有块地址的条目(例如,各候选块的左上角位置的水平和垂直坐标),如图9c中的条目(920)所示。在该示例中,编码器为当前块确定第二散列值h'(B当前)=h'0,并从列表(910)选择h'0的列表。对于h'0的列表中的候选块,编码器可执行样本级块匹配以选择匹配块。在此示例中,第二散列值的列表对于第一散列值的给定列表是专用的。替换地,有针对第二散列值的一组列表,且编码器标识(1)在第一散列值的匹配列表中的且还(2)在第二散列值的匹配列表中的任何候选块。
除了基于散列的块匹配之外,第二散列函数h'()可被用于简化更新组织候选块的数据结构的过程。例如,当编码器检查新候选块是否与已经表示在数据结构中的候选块相同时,编码器可使用具有不同散列函数的多个散列值来过滤出不相同的块。对于余下的候选块,编码器可执行样本级块匹配以标识任何相同块。
在前面的示例中,迭代基于散列的块匹配以及更新使用两个不同散列函数。替换地,编码器使用三个、四个或更多个散列函数以进一步加速基于散列的块匹配或过滤出不相同的块,并且因此减少样本级块匹配操作的数量。同样,对于低复杂度的编码器或对于较快的决定作出过程,在散列值匹配时,编码器可跳过逐样本的块匹配操作。对于具有大量可能散列值的散列函数,如果两个块的散列值匹配,则存在很高的可能性这两个块是相同的。具体地,在以下描述的编码器侧决定的一些示例实现中,编码器将散列值是否匹配作为基于散列的块匹配的结果来考虑,但不执行任何逐样本的块匹配操作。
VII.管理散列表尺寸
本章节呈现在基于散列的块匹配时使用的管理散列表的尺寸的各种方法。在一些解决方案中,散列表的尺寸通过筛选出(忽略)具有某些模式的样本值的候选块(例如,通过筛选出均质(homogeneous)块)来降低。在特定实现中,对于多个候选块中(例如,在参考图片中)的每一候选块,编码器评估候选块是否满足复杂度准则。如果是,那么编码器确定候选块的块散列值并向散列表添加该块散列值。可使用初始样本值或经重构的样本值来计算块散列值。如果候选块不满足复杂度准则,那么编码器不为候选块确定块散列值。例如,如果(a)给定候选块的至少一行具有非均匀样本值和/或(b)给定候选块的至少一列具有非均匀样本值,则该给定候选块可满足复杂度准则。对于该准则,编码器可筛选出均匀块(均质块)、具有均匀样本值行的块(水平均质块)和具有均匀样本值列的块(垂直均质块)。更一般地,在评估给定候选块是否满足复杂度准则时,编码器可为该候选块计算复杂度度量并将该复杂度度量与阈值比较。
图10a-10c示出编码器可在散列表构造期间在候选块的块散列值被添加到散列表之前可筛选出的候选块图案。图10a示出了具有均匀样本值的块(1000)。图10b示出其行各自具有均匀样本值的块(水平均质块)(1010),但是这些值可从行到行不一样。图10c示出了其列各自具有均匀样本值的块(垂直均质块)(1020),但是这些值可从列到列不一样。例如,为了标识出这些候选块图案,编码器可检查候选块的每行或每列是否都具有均匀样本值。
然而,将均质块(例如,所有均质块)排除作为散列表中的候选在某些情况下可负面地影响基于散列的匹配的益处。例如,一些编码算法在准确匹配被发现时更高效地操作(例如,通过一旦散列匹配被发现就终止匹配过程)。此外,将均质块排除作为候选可降低准确匹配的可能性。因此,编码效率的改善可通过保留散列表中的至少一些均质块来实现。
在本章节中呈现的方法中,散列表尺寸被管理使得一些均质块被包括在散列表中(例如,作为结果,这可改善找到散列匹配和/或准确匹配的机会,并改善编码效率),同时其他均质块仍被排除。例如,仅包括一些均质块(例如,仅给定图片中相对较小比例的均质块)仍可提供改善的编码效率的益处,同时还保留较小散列表的益处。
在一些实现中,仅满足均质选择准则的均质块被包括在散列表中。均质选择准则可包括检查给定均质块的坐标是否与图片的特定划分对准。例如,参考图片可被划分成具有特定水平和垂直间隔的网格(例如,16乘16像素网格、16乘8像素网格等)。如果均质块与该网格对准(例如,如果块的起始像素坐标被水平和/或垂直对准),则该均质块可被选择为匹配该准则。换言之,考虑从坐标(x,y)开始的具有宽乘高(W x H)的维度的块。均质选择准则可被定义为:
x%M==0&&y%N==0
其中M和N是预先定义的数字(例如,相同的数字或不同的数字)。陈述选择准则的另一方式为:
x&(M–1)==0&&Y&(N–1)==0
其中,M和N两者都是2的幂。在一些实现中,M和N两者都为16。例如,如果均质块在坐标32,32处,则在使用M=16且N=16值时该均质块会被选择(在0,0和32,0和64,0和0,32和0,64等处的块也会被选择),而在坐标35,32处的均质块不会被选择。在一些实现中,M被设为块的宽度(W),并且N被设为块的高度(H)。
图11是用于在散列表构造期间选择特定均质块的技术(1100)。图像编码器或视频编码器(诸如参考图3或图4a-4b描述的编码器)可执行技术(1100)。
编码器得到(1110)下一个候选块并评估(1120)候选块是否满足复杂度准则。例如,在一些示例实现中,如果(a)给定候选块的至少一行具有非均匀样本值和/或(b)给定候选块的至少一列具有非均匀样本值,则复杂度准则被满足,并且如果(a)块具有均匀样本值行(水平均质块)和/或块具有均匀样本值列(垂直均质块),则复杂度准则不被满足。或者,更一般地,编码器可计算候选块的复杂度度量,接着将复杂度度量与阈值进行比较。例如,复杂度度量是在频率变换之后(例如,DCT)候选块在非零水平位置和/或非零垂直位置的非零AC系数的计数,且阈值为零。如果在候选块的AC系数的顶行和AC系数的左列之外存在任何非零AC系数,则复杂度准则被满足。替换地,编码器考虑另一复杂度度量。复杂度准则可至少部分通过比较候选块的各部分(例如行、列、子块)的散列值来被评估。
如果候选块满足复杂度准则,则编码器确定(1130)候选块的块散列值并向散列表添加(1140)该块散列值。可使用任何散列方法确定块散列值。
如果候选块不满足复杂度准则(例如,如果该候选块是水平均质和/或垂直均质的),则该候选块被检查以确定(1160)其是否满足均质选择准则。如果候选块满足均质选择准则,则编码器确定(1130)候选块的块散列值并向散列表添加(1140)该块散列值。可使用任何散列方法确定块散列值。否则(如果候选块不满足均质选择准则),则不向散列表添加候选块的块散列值。
在一些实现中,在候选块的x和y起始坐标中的至少一者(例如,左上像素坐标)可被预定值整除时,该候选块满足均质选择准则。例如,如果预定值为16,则为0、16、32、48等的x坐标值将满足该准则。针对x和y坐标的预定值可不同。在一些实现中,针对x坐标的预定值被设为候选块的宽度,并且针对y坐标的预定值被设为候选块的高度。
编码器确定(1150)是否继续下一候选块。如果是,编码器通过得到(1110)下一个候选块并评估(1120)该下一个候选块是否满足复杂度准则来继续。通过这种方式,编码器可选择性地确定多个候选块(例如,诸如参考图片之类的图片的候选块)的块散列值,这取决于相应的候选块是否满足复杂度准则和均质选择准则。
VIII.MV分辨率的确定。
本章节呈现取决于基于散列的块匹配的结果(例如,匹配散列值)来在编码期间自适应确定运动矢量(“MV”)分辨率的各方法。通过在编码期间为MV分辨率选择合适的MV精度值,这些方法可促成在编码和解码的速率-失真性能和/或计算效率方面有效的压缩。MV精度可针对图片、块、片等确定。
不同的MV精度。
在对人工创建的视频内容进行编码时,MV值通常表示整数样本空间位移(整数MV精度),并且非常少的MV值表示分数样本空间位移(分数MV精度)。这为(例如,同时为整个图片或为图片的一部分)高效地确定MV精度以改善总体性能提供了机会。
图12a示出利用具有整数样本空间位移的MV(1220)的运动补偿。MV(1220)指示相对于参考图片中当前块的共置位置(1210)向左四个样本并向上一个样本的空间位移。例如,对于在当前图片中的位置(64、96)处的4x4当前块,MV(1220)指示其位置为参考图片中的(60,95)的4x4预测区域(1230)。预测区域(1230)包括在参考图片中的整数样本位置处的经重构的样本值。编码器或解码器不需要执行插值来确定预测区域(1230)的值。
图12b示出利用具有分数样本空间位移的MV(1221)的运动补偿。MV(1221)指示相对于参考图片中当前块的共置位置(1210)向左3.75个样本且向上0.5个样本的空间位移。例如,对于在当前图片中的位置(64、96)处的4x4当前块,MV(1221)指示其位置为参考图片中的(60.25,95.5)的4x4预测区域(1231)。预测区域(1231)包括在参考图片中的分数样本位置处的经插值的样本值。编码器或解码器执行插值来确定预测区域(1231)的样本值。当分数样本空间位移被允许时,存在可匹配当前块的更多的候选预测区域,并且由此至少对于一些类型的视频内容(例如,自然视频内容)来说运动补偿的预测的质量通常改善了。
B.MV值的表示。
MV值通常是使用其含义取决于MV精度的整数值来表示的。对于整数样本MV精度,例如,整数值1指示1个样本的空间位移,整数值2指示2个样本的空间位移并以此类推。对于1/4样本MV精度,整数值1指示0.25个样本的空间位移。整数值2、3、4和5分别指示0.5、0.75、1.0和1.25个样本的空间位移。不管MV精度为何,整数值均可指示空间位移的幅度,并且分开的标志值可指示该位移是负的还是正的。给定MV值的水平MV分量和垂直MV分量可使用两个整数值来表示。由此,表示MV值的两个整数值的含义取决于MV精度。例如,对于具有2样本水平位移和没有垂直位移的MV值,如果MV精度为1/4样本MV精度,则MV值被表示为(8,0)。然而,如果MV精度为整数样本MV精度,则该MV值被表示为(2,0)。
经编码的视频数据的比特流中的MV值通常(例如,在逐MV分量的基础上)被熵编码。MV值还可(例如,在逐MV分量的基础上)相对于预测的MV值被差分编码。在许多情况下,MV值等于预测的MV值,使得差分MV值为零,其可被非常高效地编码。可使用指数-Golomb编码、上下文自适应二进制算法编码或另一形式的熵编码来对差分MV值(或者在MV预测没有被使用的情况下,为MV值)进行熵编码。虽然MV值(或差分MV值)和经编码的比特之间的确切关系取决于所使用的熵编码的形式,但一般来说,较小的值被较高效地编码(即,使用较少的比特),因为它们较常见,而较大的值被较不高效地编码(即,使用较多的比特),因为它们较不常见。
C.自适应MV精度—介绍。
为了概述前面的两个章节,使用具有整数样本MV精度的MV值往往会降低与信号化MV值相关联的比特率,并降低进行编码和解码的计算复杂度(通过避免对在参考图片中的分数样本位置处的样本值进行插值),但至少对于一些类型的视频内容而言可降低运动补偿的预测的质量。另一方面,使用具有分数样本MV精度的MV值往往会增加与信号化MV值相关联的比特率,并增加进行编码和解码的计算复杂度(通过包括对在参考图片中的分数样本位置处的样本值进行插值),但至少对于一些类型的视频内容而言可改善运动补偿的预测的质量。一般来说,计算复杂度、用于信号化MV值的比特率以及运动补偿的预测的质量随着MV精度的增加(例如,从整数样本到1/2样本、或者从1/2样本到1/4样本)而增加,直到收益递减。
在对人工创建的视频内容进行编码时,分数样本MV精度(在比特率和计算复杂度方面)的增加的成本可能被证明是不正确的。例如,如果大多数MV值表示整数样本空间位移,且非常少的MV值表示分数样本空间位移,则分数样本MV精度的增加的成本是不值得的。编码器可在运动估计期间跳过在分数样本位置处进行搜索(以及用于确定这些位置处的样本值的插值操作)。对于这样的内容,可通过使用具有整数样本MV精度的MV值来降低比特率和计算复杂性,而没有对运动补偿的预测的质量的显著惩罚。
由于分数样本MV精度仍可对其他类型的视频内容(例如,通过相机捕捉的自然视频)有用,因此编码器和解码器可被适配成在各MV精度之间进行切换。例如,编码器和解码器可将整数样本MV精度用于人工创建的视频内容,但将分数样本MV精度(诸如,1/4样本MV精度)用于自然视频内容。在下一章节中描述了编码器在选择MV精度时可遵循的方法。编码器可使用比特流中的一个或多个句法元素来向解码器信号化所选的MV精度。
在用于信号化MV精度的一个方法中,在对MV精度的自适应选择被启用时,编码器在逐片的基础上选择MV精度。序列参数集合(“SPS”)、图片参数集合(“PPS”)或其他句法结构中的标志值指示对MV精度的自适应选择是否被启用。如果如此,则给定片的片头部中的一个或多个句法元素指示为那个片中的各块所选择的MV精度。例如,标志值0指示1/4样本MV精度,且标志值1指示整数样本MV精度。
在用于信号化MV精度的另一方法中,编码器在逐图片的基础上或在逐片的基础上选择MV精度。PPS中的句法元素指示以下三个MV精度模式之一:(0)针对与PPS相关联的图片的(诸)片的MV值的1/4样本MV精度,(1)针对与PPS相关联的图片的(诸)片的MV值的整数样本MV精度,或(2)取决于每个片头部被信号化的标志值的片自适应MV精度,其中该片头部中的标志值可为该片的MV值指示1/4样本MV精度或整数样本MV精度。
在用于信号化MV精度的又一方法中,在对MV精度的自适应选择被启用时,编码器在逐CU的基础上选择MV精度。给定CU的结构中的一个或多个句法元素指示为那个CU中的各块所选择的MV精度。例如,CU的CU句法结构中的标志值指示与该CU相关联的所有PU的MV值具有整数样本MV精度还是1/4样本MV精度。
在这些方法中的任一者中,编码器和解码器可针对水平和垂直MV分量使用不同的MV精度。在对已被水平地或垂直地缩放的人工创建的视频内容进行编码时,这可能是有用的(例如在未经缩放的维度中使用整数样本MV精度,并且在经缩放的维度中使用分数样本MV精度)。在一些示例实现中,如果比特率控制无法单独通过调整QP值来实现,则编码器可在水平上或垂直上重设视频的尺寸,以降低比特率,并随后对经重设尺寸的视频进行编码。在解码器侧,在进行解码之后将该视频缩放回到其原始大小。编码器可向解码器信号化各水平MV分量的MV精度并还信号化各垂直MV分量的MV精度。
更一般地,当对MV精度的自适应选择被启用时,编码器选择MV精度并按某种方式信号化所选的MV精度。例如,SPS、PPS或其他句法结构中的标志值可指示对MV精度的自适应选择是否被启用。当自适应MV精度被启用时,在序列层句法、GOP层句法、图片层句法、片层句法、小块层句法、块层句法或另一句法结构中的一个或多个句法元素可指示为MV值的水平和垂直分量选择的MV精度。或者,在序列层句法、GOP层句法、图片层句法、片头部层句法、片数据层句法、小块层句法、块层句法或另一句法结构中的一个或多个句法元素可指示针对不同MV分量的MV精度。当存在两个可用MV精度时,标志值可指示在这两个MV精度之间的选择。在存在更多可用MV精度的情况下,整数值可指示在这些MV精度之间的选择。
除了对信号化/解析指示(诸)所选的MV精度的句法元素的修改外,解码可被修改为取决于所选的MV精度而改变如何解释经信号化的MV值。MV值如何被编码和重构的细节可取决于MV精度而改变。例如,当MV精度为整数样本精度时,预测的MV值可被四舍五入到最接近的整数,并且差分MV值可指示整数样本偏移。或者,当MV精度为1/4样本精度时,预测的MV值可被四舍五入到最接近的1/4样本偏移,并且差分MV值可指示1/4样本偏移。或者,可按某一其他方式来信号化MV值。当MV值具有整数样本MV精度,且视频使用4:2:2或4:2:0色度采样时,色度MV值可通过可导致针对色度的1/2样本移位的缩放等推导出。或者,色度MV值可被四舍五入成整数值。
替换地,编码器不改变如何预测MV值或者如何将MV差异信号化在比特流中,并且解码器也不改变如何预测MV值或者如何重构MV差异,但对经重构的MV值的解释却取决于所选的MV精度而改变。如果所选的MV精度是整数样本精度,则重构的MV值在(以四分之一样本精度操作的)运动补偿过程中被使用之前被缩放四分之一。如果所选的MV精度为四分之一样本精度,则重构的MV值在运动补偿过程中被使用之前不被缩放。
D.使用类别确定MV分辨率。
当MV分辨率在视频编码期间可被适配时,编码器选择针对视频单元的MV精度(例如,针对该单元的各MV值的一个或两个分量的MV精度)。编码器可取决于将块分类成多个类别的结果来选择要使用的MV精度,分类可包括一个或多个分类操作中的基于散列的块匹配(例如,匹配散列值)。对MV精度的选择还可取决于其他因素,诸如块作为均匀块(例如,水平和/或垂直均质块)的块的分类。这些方法可提供计算高效的方式来选择合适的MV精度。
用于选择MV精度的示例技术。
图13示出用于取决于基于块分类的结果来选择MV精度的通用技术(1300)。该技术(1300)可由编码器(诸如参考图3或图4a和4b描述的编码器)或由另一编码器来执行。
编码器对视频进行编码以产生经编码的数据,并随后在比特流中输出该经编码的数据。作为该编码的一部分,编码器将该视频的单元分割(1310)成多个块(例如,分割视频的图片、片或另一单元)。随后,对于每一个块,编码器将该块分类(1320)成多个类别之一。类别可包括使用均质分类准则的均质类别和/或使用基于散列的匹配分类准则的散列匹配类别。基于这些分类(例如,多个类别中的一者或多者中的块计数),编码器确定(1330)视频的单元的MV精度。例如,编码器可确定使用整数MV精度还是分数MV精度(例如,1/4样本MV精度)。
图14示出用于执行在选择MV精度时使用的块分类的技术(1400)。该技术(1400)可由编码器(诸如参考图3或图4a和4b描述的编码器)或由另一编码器来执行。技术(1400)可用于实现以上结合13讨论的块分类(1320)。
为了对块进行分类,技术(1400)首先将该块分配给所有块类别(1410)。将该块分配给所有块类别可通过使与所有块类别相关联的块计数递增1来执行。
技术(1400)接着确定该块是否匹配(1420)参考图片中的共置块(例如,匹配该块所使用的一个或多个参考图片中的至少一个参考图片中的块),以及如果如此,则将该块分配给共置匹配类别(1430)。将该块分配给共置匹配类别可通过使与共置匹配类别相关联的块计数递增1来执行。
如果该块不匹配参考图片中的共置块,则技术(1400)继续检查(1440)该块是否是均质块(例如,该块是否满足均质分类准则,如果该块为水平均质和/或垂直均质,则均质分类准则可被满足),并且如果如此,则将该块分配给均质类别(1450)。将该块分配给均质类别可通过使与均质类别相关联的块计数递增1来执行。
如果该块不是均质块,则技术(1400)继续检查(1460)该块是否满足基于散列的匹配分类准则(例如,该块的散列值是否在从一个或多个参考图片的候选块中生成的散列表中被发现),并且如果如此,则将该块分配给散列匹配类别(1470)。将该块分配给散列匹配类别可通过使与散列匹配类别相关联的块计数递增1来执行。
一旦该块已被分类,技术(1400)继续分类下一块(1480)(如果有任何剩余块的话)(例如,以便对视频的单元的所有块进行分类)。
技术(1400)可被执行以通过以下来将视频单元的多个块分类成多个类别:在块被分配给每一类别时,递增与该类别相关联的计数器。
在一些实现中,当前图片的块被分类。当前图片可被分割成各非重叠的宽度(W)乘高度(H)块。在一个实现中,W=H=8。编码器可为当前图片中的所有块执行基于散列的块匹配。搜索范围可以是当前图片的一个(或多个)参考图片。在一个实现中,参考图片列表0中的第一参考图片被用于执行散列匹配。
在一些实现中,块是使用以下四个类别来分类的:第一类别称为“T”(例如,所有块类别)。所有块都被分配给“T”类别。
第二类别称为“C”(例如,共置匹配类别)。匹配参考图片中的共置块的块被分配给“C”类别。如果一个以上参考图片被使用,则在该块匹配这些参考图片中的至少一个参考图片中的共置块的情况下,该块被分配。
第三类别称为“S”(例如,均质或“平滑”类别)。尚未被分配给“C”类别并且为均质(例如,水平均质和/或垂直均质)的块被分配给“S”类别。
第四类别称为“M”(例如,散列匹配类别)。尚未被分配给“C”类别或“S”类别但具有在从一个或多个参考图片的候选块生成的散列表中发现的散列值的块被分配给“M”类别。
在使用“T”、“C”、“S”和“M”类别的各实现中,CSM率(例如,比率值)可被计算出,其为:
CSM率=(C+S+M)/T
CSM率指示图片(或其他视频单元)中“C”、“S”和“M”块的百分比。还可计算平均CSM率,该平均CSM率为当前图片的CSM率和数量“Ncsm”个先前编码图片的CSM率的平均值。还可计算为M率,其为MRate=M/T(“M”块的百分比)。平均M率是当前图片的M率和数量“Nm”个先前编码图片的M率的平均值。
使用以上描述的类别以及从“T”、“C”、“S”和“M”类别中计算出的值,以下规则中的一者或多者可被(单独地或组合地)应用来确定MV精度(例如,以决定使用整数MV精度还是分数MV精度,诸如1/4图素(pel)精度)。
规则1:如果CMS率大于阈值,则使用整数MV精度。否则,使用1/4图素精度。(如果当前图片的匹配率太慢,则使用分数精度MV。)
规则2:如果平均CMS率大于阈值,则使用整数MV精度。否则,使用1/4图素精度。(如果滑动窗口中的图片的匹配率太慢,则使用分数精度MV。)
规则3:如果M率大于阈值,则使用整数MV精度。否则,使用1/4图素精度。(如果非共置、非平滑块的匹配率高于阈值,则使用整数精度MV。)
规则4:如果平均M率大于阈值,则使用整数MV精度。否则,使用1/4图素精度。(如果滑动窗口中的图片的非共置、非平滑块的平均匹配率高于阈值,则使用整数精度MV。)
规则5:如果C==T,则使用整数MV精度。否则,使用1/4图素精度。(如果当前图片中的所有块与参考图片中的共置块匹配(两个图片相同),则使用整数精度MV。在一些实现中,这对编码效率可能不具有显著的影响,但可有助于节省编码时间,因为在编码过程中使用整数精度MV可跳过一些对分数像素的操作,诸如对分数像素的运动估计。)
规则6:如果M>(T-C-S)/比率1,则使用整数MV精度。否则,使用1/4图素精度。(如果匹配块在所有非共置、非平滑块中的百分比高于阈值,则使用整数精度MV。)
规则7:如果CSM率>阈值1并且M率>阈值2,则使用整数MV精度。否则,使用1/4图素精度。(如果CSM块的百分比大于阈值(在一些实现中,该阈值接近1以保证大多数块适合于使用整数精度MV)并且M块i的百分比大于阈值(例如,以保证还可找到对非共置、非平滑块的一些匹配),则使用整数精度MV。)
规则8:如果平均CSM率+平均M率>阈值3,则使用整数MV精度。否则,使用1/4图素精度。(条件与以上类似,但考虑滑动窗口中的图片。)
在示例实现中,以下设置被应用。块尺寸为8x8。散列匹配仅对参考图片列表0中的第一参考图片执行。Ncsm和Nm两者都被设为31(包括当前图片,总共有32个图片)。在示例实现中,运动向量精度按以下次序决定(被满足的第一“如果(if)”条件设置MV精度,并且如果没有一个“如果”条件被满足,则“否则(otherwise)”条件将设置1/4图素精度):
如果CSM率<0.8,则使用1/4图素精度。
如果T==C,则使用整数精度。
如果平均CSM率<0.95,则使用1/4图素精度。
如果M>(T-C-S)/3,则使用整数精度。
如果CSM率>0.99&&M率>0.01,则使用整数精度。
如果平均CSM率+平均M率>1.01,,则使用整数精度。
否则,使用1/4图素精度。
在本章节中描述的技术中,编码器可在使用1/4样本MV精度和整数样本MV精度之间进行选择。更一般地,编码器在多个可用MV精度之间进行选择,多个可用MV精度可包括整数样本MV精度、1/2样本MV精度、1/4样本MV精度和/或另一MV精度。所选的MV精度可适用于该视频单元的各MV值的水平分量和/或垂直分量。
在本章节中描述的技术中,基于散列的块匹配使用从该单元的各输入样本值以及(对于候选块)针对一个或多个参考图片的输入样本值中确定的散列值。替换地,对于表示在散列表中的各候选块,基于散列的块匹配可使用从重构的样本值确定的散列值。
在本章节中描述的技术中,在确定针对视频单元的MV精度时,编码器还可考虑其他因素,诸如非匹配块是否包含大量的自然视频内容(相机捕捉的视频),如在下一章节中描述的。
替换和变型
当编码器逐图片地使用相同的小块模式时,编码器可逐图片地重复每小块的MV精度。逐图片位于共同位置的小块使用相同的MV精度。类似地,逐图片位于共同位置的片可使用相同的MV精度。例如,假设视频描绘计算机桌面,并且该桌面的一部分具有显示自然视频内容的窗口。可在桌面的该区域内逐图片地使用分数样本MV精度,而不管示出文本或其他渲染内容的区域是否是使用整数样本MV精度来编码的。
编码器可至少部分地基于整数样本MV精度为合适的置信程度来调整距离或相对该整数样本MV精度的偏移量。编码器还可至少部分地基于编码和/或解码的目标计算复杂度(支持整数样本MV精度以降低计算复杂度)来调整距离或相对该整数样本MV精度的偏移量。例如,编码器可调整比较操作中使用的阈值以使得整数样本MV精度更可能或更不可能被选择。
所选的MV精度可针对在视频的单元内的各块的MV值的水平MV分量和/或垂直MV分量,其中这些水平MV分量和垂直MV分量被准许具有不同的MV精度。或者,所选的MV精度可针对在视频的单元内的各块的MV值的水平MV分量和垂直MV分量两者,其中这些水平MV分量和垂直MV分量具有相同的MV精度。
在MV精度选择的大多数前述示例中,比特流中经编码的视频包括指示针对该单元的所选MV精度的一个或多个句法元素。解码器解析指示所选的MV精度的(诸)句法元素,并根据所选的MV精度来解释MV值。替换地,比特流中经编码的视频可缺少指示所选的MV精度的任何句法元素。例如,即使比特流支持对具有分数样本MV精度的MV值的信号化,编码器仍可包含对视频的单元的运动估计,以仅使用具有为零的分数部分的MV值,并且仅指示整数样本偏移的MV值被用在运动补偿中。解码器以分数样本MV精度重构并应用MV值(其中MV值指示整数样本偏移)。这可通过避免插值操作来降低编码的计算复杂度。
IX.使用散列匹配检测场景改变
本章节呈现用于基于散列匹配来检测场景改变的各方法。场景改变可在视频编码期间被检测到。例如,被标识为场景改变图片的图片可被用来改善编码效率(例如,参考图片可至少部分地基于给定图片是否是场景改变图片来被确定)。
检测场景改变图片。
场景改变至少部分地使用指示有多少当前图片的块在与先前图片有关的散列表中具有散列匹配的信息(一般被称为“匹配率”、“匹配比率”或“R”)来检测。在一些实现中,匹配率被计算为:R=(C+S+M)/T。替换地,匹配率可被计算为:R=(C+M)/T或被计算为R=M/T。对于当前图片,匹配率被标记为“Rcurr”。此外,平均匹配率可从(在当前图片之前的)先前图片计算。例如,所有先前编码的图片的平均可被维持,或者(例如,使用滑动窗口的)多个先前图片的平均可被维持。平均匹配率被标记为“Ravg”。
在一些实现中,如果Rcurr小于(例如,显著小于)Ravg,则当前图片可被标识为场景改变图片。在一些实现中,如果Rcurr<a*Ravg,则当前图片被检测为场景改变图片。在特定实现中,“a”的值(权重值)被设为0.5。
B.长期参考图片选择。
在视频编码中,来自参考图片的运动补偿被用于移除时间冗余。因此,参考图片可能对编码效率而言非常重要。在一些实现中,短期参考图片和长期参考图片两者都被使用。短期参考图片通常为距当前编码图片不太远的多个图片。长期参考图片可被存储在经解码的图片缓冲器(“DPB”)中达相对较长的时间。长期参考图片有助于改善一些屏幕内容的编码效率,其中稍后在视频序列中可发生重复的场景或者可发生重复的窗口。在一些实现中,场景改变之前的(例如,紧接在场景改变之前的)图片被保留作为长期参考图片,而场景改变期间的图片不被保留。
为了解说长期参考图片选择的各示例,以下示例图片序列被使用。
f0(s0),f1(s0),f2(s0),f3(s0),f4(s0),f5(s0),f6(s0),f7(s0->1),f8(s0->1),
f9(s0->1),f10(s0->1),f11(s1)f12(s1)
在该示例序列中,存在13个图片(被标记为“f0”到“f12”)以及两个场景(被标记为“s0”和“s1”)。第一场景和第二场景之间的转变被标记为“s0->1”。如在示例序列中描绘的,图片f0到f6属于第一场景s0,图片f7到f10是从第一场景s0到第二场景s1的转变图片,并且图片f11和f12属于第二场景s1。如果该示例图片序列包含屏幕内容,则f0、f1、f2、f3、f4、f5和f6的匹配率可能相对较高,f7、f8、f9、f10和f11的匹配率可能相对较低,并且f12的匹配率可能相对较高。
基于各编码情况的结果,保留先前场景的最后一个图片可有助于改善编码效率。因此,对于以上的示例序列,f6将被保留作为长期参考图片。在一些实现中,是否保留给定图片作为长期参考图片的判定是在对当前图片进行编码时作出的。例如,是否保留fn-1作为长期参考图片的判定是在对fn(当前图片)进行编码时作出的。在特定实现中,如果满足以下两个条件,则fn-1被保留作为长期参考图片:
1.匹配率Rn(当前图片fn的Rcurr)低于阈值(指示fn被检测到为场景改变图片)。
2.所有先前的X个图片的匹配率(Rn-1、Rn-2、…Rn-X)都高于阈值(指示稳定场景,这可将场景改变期间的图片(诸如f7、f8、f9)修剪出)。
使用以上两个条件,可检测到场景改变的开始紧接在X个图片的稳定场景之后发生。使用以上示例序列,如果在对当前图片f7进行编码时应用了这两个条件,则f7的匹配率可被发现低于阈值(指示f7是场景改变图片),而先前的X个图片(例如,f6、f5、f4等)可被发现高于阈值。结果,如果这两个条件被满足,则f6可被保留作为长期参考图片。
C.图片质量调整。
在以上示例序列中,如果在第二场景s1中存在许多图片(这些图片之间具有非常小的改变),则用较好的质量对s1中的头几个图片进行编码可有助于改善编码效率。在一些实现中,使用QPI和lambdaI对帧内图片和其他QP值进行编码,并且使用lambda(λ)值对P和B图片进行编码(例如,lambda值通常大于QPI和lambdaI,并且对于不同的P和B图片也可能是不同的)。
在一些实现中,如果通过基于散列的块匹配检测到当前图片在新场景的开始(或接近新场景的开始),则用较好的质量来对该当前图片进行编码(例如,使用QPI和lambdaI对该当前图片进行编码)。例如,通过用较好的质量对在稳定场景的开始处或附近的图片进行编码,可改善同一稳定场景中的后续图片的编码效率和/或质量。
如果预分析被允许,则检测当前图片是否在新稳定场景的开始处可以是直接任务。例如,当前图片之后接着的X个图片可被检查。如果当前图片具有相对较低的匹配率,而接着的X个图片具有相对较高的匹配率,则编码器可用相对较高的质量对当前图片进行编码。例如,使用以上的示例序列,编码器可发现f11的匹配率相对较低,而f12、f13和f14的匹配率相对较高。在该情况下,f11可被确定为在新稳定场景的开始处,并因此用较好的质量来编码。在特定实现中,如果满足下面的两个条件,则用较好的质量来对当前图片fn进行编码(例如,用QPI和lambdaI对当前图片fn进行编码)。
1.匹配率Rn低于阈值(指示fn被检测到为新场景的开始)。
2.所有将来的X个图片的匹配率(Rn+1,rn+2,…Rn+X)都高于阈值(指示稳定场景)。
如果预分析不被允许,则编码器可能不能够在新稳定场景的开始处作出判定,并可改为在新稳定场景可被确认之前必须等待几个图片。例如,编码器可等待多个图片X以确认新稳定图片已经到达,并随后用改善的质量来对当前图片进行编码。例如,参考以上的示例序列,如果f12、f13、f14和f15(其中X=4)具有相对高的匹配率(例如,并且f11具有相对低的匹配率),则f15可用经改善的质量来编码。在具体实现中,如果满足以下两个条件,则用更好的质量来对当前图片fn进行编码(例如,用QPI和lambdaI对当前图片进行编码):
1.当前图片和先前的X个图片的匹配率(Rn,Rn-1,Rn-2,…Rn-X)高于阈值。
2.图片n-X-1的匹配率(Rn-X-1)低于阈值。
D.示例实现
可提供用于使用基于散列的块匹配来检测场景改变的各种方法。此外,可在编码期间出于其他目的(诸如长期参考图片选择和图片质量设置)使用场景改变信息的结果。
图15示出用于至少部分地使用基于散列的块匹配的结果来在视频编码期间检测场景改变的一般技术(1500)。该技术(1500)可由编码器(诸如参考图3或图4a和4b描述的编码器)或由另一编码器来执行。
编码器对视频进行编码以产生经编码的数据,编码器将该经编码的数据作为比特流的一部分输出。在编码期间,编码器计算(1510)当前图片的匹配率。匹配率至少部分地使用当前图片(相对于一个或多个参考图片)的基于散列的块匹配来计算。在一些实现中,匹配率通过将当前图片的块分类成多个类别来计算。在一些实现中,匹配率被计算为R=(C+S+M)/T或被计算为R=(C+M)/T或被计算为R=M/T。
编码器随后计算(1520)多个先前图片的平均匹配率。平均匹配率可通过计算每一个先前图片的个体匹配率并对各个体匹配率求平均来计算。在一些实现中,匹配率通过将给定的先前图片的块分类成多个类别来计算。在一些实现中,匹配率被计算为R=(C+S+M)/T或被计算为R=(C+M)/T或被计算为R=M/T。
编码器随后计算(1530)经加权的平均匹配率。例如,编码器可将平均匹配率乘以权重值,该权重值小于1.0。在特定实现中,使用为0.5的权重值。
编码器随后基于当前图片的匹配率以及经加权的平均匹配率确定(1540)当前图片是否是场景改变图片。例如,如果当前图片的匹配率小于经加权的平均匹配率,则当前图片可被确定为是场景改变图片。
在当前图片被检测为是场景改变图片时,可作出各判定。例如,紧接在当前图片之前的图片可被选为长期参考图片。此外,当在编码期间确定图片质量参数时,可使用关于场景改变中何时涉及一个(或多个)图片的信息。
鉴于可应用所公开的本发明的原理的许多可能的实施例,应当认识到,所示实施例仅是本发明的优选示例,并且不应认为是限制本发明的范围。相反,本发明的范围由后续的权利要求来界定。我们要求作为我们的发明保护落入这些权利要求范围和精神内的所有内容。

Claims (11)

1.一种在计算设备中构造散列表的方法,包括:
对于多个候选块中的每一个:
评估所述候选块是否满足复杂度准则,所述复杂度准则包括所述候选块在水平和/或垂直方向上的样本值均匀性度量;
如果所述候选块不满足所述复杂度准则:
评估所述候选块是否满足均质选择准则,包括检查所述候选块的坐标是否与参考图片的特定划分对准;
如果所述候选块满足所述均质选择准则;
确定所述候选块的块散列值;以及
将所述块散列值添加到散列表。
2.如权利要求1所述的方法,其特征在于,进一步包括:
如果所述候选块满足所述复杂度准则:
确定所述候选块的块散列值;以及
将所述块散列值添加到所述散列表。
3.如权利要求1所述的方法,其特征在于,进一步包括:
如果所述候选块不满足所述均质选择准则:
将所述候选块从所述散列表中省略。
4.如权利要求1所述的方法,其特征在于,当所述候选块是水平均质和垂直均质中的一者或多者时,所述候选块不满足所述复杂度准则。
5.如权利要求1所述的方法,其特征在于,所述均质选择准则基于所述候选块的开始坐标。
6.如权利要求1所述的方法,其特征在于,在所述候选块的x和y起始坐标中的至少一者能被预定值整除时,所述候选块满足所述均质选择准则。
7.如权利要求1所述的方法,其特征在于,在所述候选块的x起始坐标能被第一预定值整除且所述候选块的y起始坐标能被第二预定值整除时,所述候选块满足所述均质选择准则。
8.如权利要求7所述的方法,其特征在于,所述第一预定值是所述候选块的宽度并且所述第二预定值是所述候选块的高度。
9.如权利要求7所述的方法,其特征在于,所述第一预定值为16且所述第二预定值为16。
10.一种计算设备,所述计算设备包括处理单元和存储器,所述计算设备适配于执行如权利要求1-9中任一项所述的方法。
11.一个或多个存储计算机可执行指令的计算机可读存储介质,所述计算机可执行指令用于使得计算设备因此被编程为执行如权利要求1-9中的任一项所述的方法。
CN201480071892.2A 2014-09-30 2014-09-30 用于视频编码的基于散列的编码器判定 Active CN105981382B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202211294002.7A CN115665423A (zh) 2014-09-30 2014-09-30 用于视频编码的基于散列的编码器判定
CN201910375217.3A CN110582001B (zh) 2014-09-30 2014-09-30 用于视频编码的基于散列的编码器判定

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2014/087869 WO2016049834A1 (en) 2014-09-30 2014-09-30 Hash-based encoder decisions for video coding

Related Child Applications (2)

Application Number Title Priority Date Filing Date
CN201910375217.3A Division CN110582001B (zh) 2014-09-30 2014-09-30 用于视频编码的基于散列的编码器判定
CN202211294002.7A Division CN115665423A (zh) 2014-09-30 2014-09-30 用于视频编码的基于散列的编码器判定

Publications (2)

Publication Number Publication Date
CN105981382A CN105981382A (zh) 2016-09-28
CN105981382B true CN105981382B (zh) 2019-05-28

Family

ID=55629261

Family Applications (3)

Application Number Title Priority Date Filing Date
CN201480071892.2A Active CN105981382B (zh) 2014-09-30 2014-09-30 用于视频编码的基于散列的编码器判定
CN201910375217.3A Active CN110582001B (zh) 2014-09-30 2014-09-30 用于视频编码的基于散列的编码器判定
CN202211294002.7A Pending CN115665423A (zh) 2014-09-30 2014-09-30 用于视频编码的基于散列的编码器判定

Family Applications After (2)

Application Number Title Priority Date Filing Date
CN201910375217.3A Active CN110582001B (zh) 2014-09-30 2014-09-30 用于视频编码的基于散列的编码器判定
CN202211294002.7A Pending CN115665423A (zh) 2014-09-30 2014-09-30 用于视频编码的基于散列的编码器判定

Country Status (11)

Country Link
US (3) US11025923B2 (zh)
EP (3) EP3202142B1 (zh)
JP (1) JP6462119B2 (zh)
KR (2) KR102358276B1 (zh)
CN (3) CN105981382B (zh)
AU (1) AU2014408223B2 (zh)
BR (1) BR112017004490B1 (zh)
CA (2) CA2961089C (zh)
MX (1) MX2017004210A (zh)
RU (1) RU2679981C2 (zh)
WO (1) WO2016049834A1 (zh)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3061233B1 (en) 2013-10-25 2019-12-11 Microsoft Technology Licensing, LLC Representing blocks with hash values in video and image coding and decoding
WO2015131325A1 (en) 2014-03-04 2015-09-11 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
CN105706450B (zh) 2014-06-23 2019-07-16 微软技术许可有限责任公司 根据基于散列的块匹配的结果的编码器决定
KR102358276B1 (ko) 2014-09-30 2022-02-04 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 비디오 코딩을 위한 해시 기반 인코더 결정
CN107113443B (zh) * 2014-12-26 2020-04-28 索尼公司 影像处理设备和影像处理方法
US10462479B2 (en) * 2015-07-10 2019-10-29 Nec Corporation Motion picture encoding device, motion picture encoding method, and storage medium storing motion picture encoding program
CN105426413B (zh) * 2015-10-31 2018-05-04 华为技术有限公司 一种编码方法及装置
US10390039B2 (en) 2016-08-31 2019-08-20 Microsoft Technology Licensing, Llc Motion estimation for screen remoting scenarios
US10192295B2 (en) * 2016-11-09 2019-01-29 AI Analysis, Inc. Methods and systems for normalizing images
US11095877B2 (en) 2016-11-30 2021-08-17 Microsoft Technology Licensing, Llc Local hash-based motion estimation for screen remoting scenarios
US10694205B2 (en) * 2017-12-18 2020-06-23 Google Llc Entropy coding of motion vectors using categories of transform blocks
CN108495139A (zh) * 2018-04-18 2018-09-04 北方工业大学 屏幕内容编码的哈希块匹配
CN109168001B (zh) * 2018-09-27 2021-02-12 苏州科达科技股份有限公司 视频场景变化的检测方法、装置及视频采集设备
US11469881B2 (en) * 2018-12-26 2022-10-11 Korea Institute Of Science And Technology Apparatus and method for forgery prevention of digital information
EP3918801A4 (en) * 2019-01-28 2022-06-15 OP Solutions, LLC ONLINE AND OFFLINE CHOICE OF EXTENDED LONG-TERM REFERENCE IMAGE STORAGE
JP7384910B2 (ja) * 2019-02-02 2023-11-21 北京字節跳動網絡技術有限公司 映像符号化におけるイントラブロックコピーのためのバッファ管理
CN113396592B (zh) * 2019-02-02 2023-11-14 北京字节跳动网络技术有限公司 用于视频编解码中的帧内块复制的缓冲区管理
WO2020156547A1 (en) 2019-02-02 2020-08-06 Beijing Bytedance Network Technology Co., Ltd. Buffer resetting for intra block copy in video coding
EP3915265A4 (en) 2019-03-01 2022-06-22 Beijing Bytedance Network Technology Co., Ltd. DIRECTION-BASED PREDICTION FOR INTRA BLOCK COPY IN VIDEO CODING
KR20210125506A (ko) 2019-03-04 2021-10-18 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 비디오 코딩에서 인트라 블록 복사를 위한 버퍼 관리
CN111567044A (zh) * 2019-03-13 2020-08-21 北京大学 一种视频处理方法、装置、编码设备及解码设备
EP3981151A4 (en) 2019-07-06 2022-08-24 Beijing Bytedance Network Technology Co., Ltd. VIRTUAL PREDICTION BUFFER FOR INTRA-BLOCK COPY IN VIDEO ENCODING
MX2022000110A (es) 2019-07-10 2022-02-10 Beijing Bytedance Network Tech Co Ltd Identificacion de muestras para la copia intra-bloque en codificacion de video.
CN117579816A (zh) 2019-07-11 2024-02-20 北京字节跳动网络技术有限公司 用于视频编解码中的帧内块复制的比特流一致性约束
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
US11956441B2 (en) * 2021-12-23 2024-04-09 Ati Technologies Ulc Identifying long term reference frame using scene detection and perceptual hashing
US11882295B2 (en) 2022-04-15 2024-01-23 Meta Platforms Technologies, Llc Low-power high throughput hardware decoder with random block access
US20230334702A1 (en) * 2022-04-15 2023-10-19 Meta Platforms Technologies, Llc Hardware Encoder for Color Data in a 2D Rendering Pipeline

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101866366A (zh) * 2010-07-15 2010-10-20 哈尔滨工业大学 一种基于内容的图像格式中文文档检索方法
CN103281538A (zh) * 2013-06-06 2013-09-04 上海交通大学 基于滚动哈希和块级别帧内预测的帧内编码方法

Family Cites Families (238)

* 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
US5565921A (en) 1993-03-16 1996-10-15 Olympus Optical Co., Ltd. Motion-adaptive image signal processing system
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
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
US6487440B2 (en) 1998-07-08 2002-11-26 Lifespex, Inc. Optical probe having and methods for difuse and uniform light irradiation
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 投影光学系、および該投影光学系による投影露光装置、デバイス製造方法
GB0006153D0 (en) 2000-03-14 2000-05-03 Inpharmatica Ltd Database
CA2304433A1 (en) 2000-04-05 2001-10-05 Cloakware Corporation General purpose access recovery scheme
GB2364459B (en) 2000-06-30 2004-03-31 Nokia Mobile Phones Ltd Video error resilience
US6938128B1 (en) 2000-07-20 2005-08-30 Silicon Graphics, Inc. System and method for reducing memory latency during read requests
US6915387B1 (en) 2000-07-20 2005-07-05 Silicon Graphics, Inc. System and method for handling updates to memory in a distributed shared memory system
US6765963B2 (en) 2001-01-03 2004-07-20 Nokia Corporation Video decoder architecture and method for using same
US6920175B2 (en) 2001-01-03 2005-07-19 Nokia Corporation Video coding architecture and methods for using same
GB2375673A (en) 2001-05-14 2002-11-20 Salgen Systems Ltd Image compression method using a table of hash values corresponding to motion vectors
AU2002346116A1 (en) 2001-07-20 2003-03-03 Gracenote, Inc. Automatic identification of sound recordings
DE10158658A1 (de) 2001-11-30 2003-06-12 Bosch Gmbh Robert Verfahren zur gerichteten Prädiktion eines Bildblockes
US6819322B2 (en) * 2002-01-04 2004-11-16 Hewlett-Packard Development Company, L.P. Method and apparatus for detecting potential lock-up conditions in a video graphics controller
EP1467569A4 (en) 2002-01-18 2007-11-14 Toshiba Kk METHOD AND APPARATUS FOR ENCODING IMAGES IN MOTION, DECODING METHOD AND APPARATUS
US6894289B2 (en) 2002-02-22 2005-05-17 Xenogen Corporation Fluorescence illumination assembly for an imaging apparatus
US6922246B2 (en) 2002-02-22 2005-07-26 Xenogen Corporation Bottom fluorescence illumination assembly for an imaging apparatus
JP3983573B2 (ja) 2002-03-06 2007-09-26 富士重工業株式会社 ステレオ画像特性検査システム
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 セイコーエプソン株式会社 動画像符号化装置および動画像符号化方法
US7386049B2 (en) * 2002-05-29 2008-06-10 Innovation Management Sciences, Llc Predictive interpolation of a video signal
US7400774B2 (en) 2002-09-06 2008-07-15 The Regents Of The University Of California Encoding and decoding of digital data using cues derivable at a decoder
US20040174570A1 (en) 2002-12-02 2004-09-09 Plunkett Richard Thomas Variable size dither matrix usage
US7121639B2 (en) 2002-12-02 2006-10-17 Silverbrook Research Pty Ltd Data rate equalisation to account for relatively different printhead widths
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
US20050060643A1 (en) 2003-08-25 2005-03-17 Miavia, Inc. Document similarity detection and classification system
WO2005027491A2 (en) 2003-09-05 2005-03-24 The Regents Of The University Of California Global motion estimation image coding and processing
JP5567246B2 (ja) 2003-10-27 2014-08-06 ザ ジェネラル ホスピタル コーポレイション 周波数ドメイン干渉測定を利用して光学撮像を実行する方法および装置
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
DE602004010040T2 (de) 2003-12-11 2008-09-11 Tokendo Messvorrichtung für eine video-endoskopische Sonde
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 삼성전자주식회사 수직 및 수평 방향의 패턴을 고려한 전역 움직임 보상순차주사화 방법
WO2005116837A1 (en) 2004-05-26 2005-12-08 Intel Corporation Automatic caching generation in network applications
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
US7773784B2 (en) 2004-10-15 2010-08-10 University Of Colorado Board Of Regents Revocable biometrics with robust distance metrics
JP2006265087A (ja) 2004-12-13 2006-10-05 Ohara Inc 光学素子用プリフォーム
KR100677548B1 (ko) 2004-12-31 2007-02-02 삼성전자주식회사 복호된 영상의 오류 재은닉 방법 및 그 장치
US20060153295A1 (en) 2005-01-12 2006-07-13 Nokia Corporation Method and system for inter-layer prediction mode coding in scalable video coding
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 삼성전자주식회사 영상의 대칭성을 이용한 인트라 예측 방법, 이를 이용한영상의 복호화, 부호화 방법 및 장치
US7822278B1 (en) 2005-09-20 2010-10-26 Teradici Corporation Methods and apparatus for encoding a digital video signal
US8107527B1 (en) 2005-07-28 2012-01-31 Teradici Corporation Progressive block encoding using region analysis
US20070025442A1 (en) * 2005-07-28 2007-02-01 Sanyo Electric Co., Ltd. Coding method for coding moving images
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 再生装置および再生方法
FR2891685B1 (fr) 2005-10-03 2008-04-18 Envivio France Entpr Uniperson Procede et dispositif d'estimation de mouvement a references multiples, procede et dispositif de codage, produits programme d'ordinateur et moyens de stockage correspondants.
AU2006299819B2 (en) 2005-10-12 2011-02-10 Carbonite Gmbh Method and system for data backup
US7702127B2 (en) 2005-10-21 2010-04-20 Microsoft Corporation Video fingerprinting using complexity-regularized video watermarking by statistics quantization
RU2298226C1 (ru) 2005-10-28 2007-04-27 Самсунг Электроникс Ко., Лтд. Способ улучшения цифровых изображений
GB2431798A (en) 2005-10-31 2007-05-02 Sony Uk Ltd Motion vector selection based on integrity
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
US20070217702A1 (en) 2006-03-14 2007-09-20 Sung Chih-Ta S Method and apparatus for decoding digital video stream
US7949186B2 (en) 2006-03-15 2011-05-24 Massachusetts Institute Of Technology Pyramid match kernel and related techniques
KR100763917B1 (ko) 2006-06-21 2007-10-05 삼성전자주식회사 고속으로 움직임을 추정하는 방법 및 장치
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
BRPI0720806B1 (pt) * 2007-01-18 2023-03-28 Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. Corrente de dados de vídeo de qualidade escalonável
US8320683B2 (en) 2007-02-13 2012-11-27 Sharp Kabushiki Kaisha Image processing method, image processing apparatus, image reading apparatus, and image forming apparatus
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
JP4755624B2 (ja) 2007-04-23 2011-08-24 ルネサスエレクトロニクス株式会社 動き補償装置
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
KR101365444B1 (ko) 2007-11-19 2014-02-21 삼성전자주식회사 영상의 해상도의 조정을 통하여 동영상을 효율적으로부호화/복호화하는 방법 및 장치
JP5417342B2 (ja) 2007-12-21 2014-02-12 テレフオンアクチーボラゲット エル エム エリクソン(パブル) ビデオ符号化に対する改善された画素予測
US8213515B2 (en) 2008-01-11 2012-07-03 Texas Instruments Incorporated Interpolated skip mode decision in video compression
KR101446771B1 (ko) 2008-01-30 2014-10-06 삼성전자주식회사 영상 부호화장치 및 영상 복호화장치
WO2009102013A1 (ja) * 2008-02-14 2009-08-20 Nec Corporation 移動ベクトル検出装置
JP2009230537A (ja) 2008-03-24 2009-10-08 Olympus Corp 画像処理装置、画像処理プログラム、画像処理方法、および、電子機器
EP2277317B1 (en) 2008-05-19 2021-01-27 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
WO2010001433A1 (ja) 2008-06-30 2010-01-07 富士通マイクロエレクトロニクス株式会社 メモリ装置及びそれを制御するメモリコントローラ
US8515123B2 (en) 2008-07-03 2013-08-20 Verimatrix, Inc. Efficient watermarking approaches of compressed media
US9235577B2 (en) 2008-09-04 2016-01-12 Vmware, Inc. File transfer using standard blocks and standard-block identifiers
US8213503B2 (en) 2008-09-05 2012-07-03 Microsoft Corporation Skip modes for inter-layer residual video coding and decoding
JP5240530B2 (ja) 2008-10-02 2013-07-17 ソニー株式会社 画像処理装置および方法
EP2351288B1 (en) 2008-10-23 2014-12-10 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
EP2392130A4 (en) 2009-02-02 2013-04-03 Calgary Scient Inc TRANSMISSION OF IMAGE DATA
WO2010090630A1 (en) 2009-02-03 2010-08-12 Thomson Licensing Methods and apparatus for motion compensation with smooth reference frame in bit depth scalability
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
US9113169B2 (en) 2009-05-07 2015-08-18 Qualcomm Incorporated Video encoding with temporally constrained spatial dependency for localized decoding
US8724707B2 (en) 2009-05-07 2014-05-13 Qualcomm Incorporated Video decoding using temporally constrained spatial dependency
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
JP2011024066A (ja) 2009-07-17 2011-02-03 Sony Corp 画像処理装置および方法
KR101712097B1 (ko) 2009-08-19 2017-03-03 삼성전자 주식회사 유연한 직교 변환에 기초한 영상 부호화, 복호화 방법 및 장치
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
US8633838B2 (en) 2010-01-15 2014-01-21 Neverfail Group Limited Method and apparatus for compression and network transport of data in support of continuous availability of applications
US9274001B2 (en) 2010-01-22 2016-03-01 Duke University Dual window processing schemes for spectroscopic optical coherence tomography (OCT) and fourier domain low coherence interferometry
CN103385002A (zh) 2010-02-17 2013-11-06 韩国电子通信研究院 用于对超高清图像进行编码的装置及其方法、以及解码装置及其方法
US9237355B2 (en) * 2010-02-19 2016-01-12 Qualcomm Incorporated Adaptive motion resolution for video coding
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
EP2559238B1 (en) 2010-04-13 2015-06-03 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Adaptive image filtering method and apparatus
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 한국전자통신연구원 생략 부호화를 이용한 영상 부호화 및 복호화 장치 및 그 방법
CN102918441B (zh) 2010-06-01 2016-05-25 Hoya株式会社 内窥镜用物镜及内窥镜
US8417039B2 (en) 2010-06-03 2013-04-09 Microsoft Corporation Motion detection techniques for improved image remoting
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
WO2012042792A1 (en) 2010-09-30 2012-04-05 Nec Corporation Storage system
CN103477635B (zh) * 2010-10-08 2017-01-18 Ge视频压缩有限责任公司 编码器和编码方法与解码器和解码方法
EP4270957A3 (en) 2010-11-04 2024-06-19 GE Video Compression, LLC Picture coding supporting block merging and skip mode
EP2647202A1 (en) 2010-12-01 2013-10-09 iMinds Method and device for correlation channel estimation
US20120170653A1 (en) 2010-12-30 2012-07-05 General Instrument Corporation Block based sampling coding systems
CN107360420B (zh) 2011-02-09 2020-11-06 Lg 电子株式会社 一种图像解码装置和图像编码装置
HUE044727T2 (hu) 2011-02-09 2019-11-28 Lg Electronics Inc Eljárás kép adatok kódolására és dekódolására egy ideiglenes mozgás vektor becsléssel és azt alkalmazó készülék
KR20120095610A (ko) 2011-02-21 2012-08-29 삼성전자주식회사 다시점 비디오의 부호화 방법 및 장치, 그 복호화 방법 및 장치
JPWO2012128242A1 (ja) 2011-03-18 2014-07-24 ソニー株式会社 画像処理装置、画像処理方法、及び、プログラム
JP6061150B2 (ja) 2011-03-18 2017-01-18 ソニー株式会社 画像処理装置、画像処理方法、及び、プログラム
US8480743B2 (en) 2011-03-25 2013-07-09 Vicente Vanaclocha Vanaclocha Universal disc prosthesis
WO2012147350A1 (ja) * 2011-04-28 2012-11-01 パナソニック株式会社 高画質化に関わる記録媒体、再生装置、記録装置、符号化方法、復号化方法
US8582886B2 (en) 2011-05-19 2013-11-12 Microsoft Corporation Compression of text contents for display remoting
CN103563374B (zh) 2011-05-27 2017-02-08 索尼公司 图像处理设备及方法
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
JP5651560B2 (ja) * 2011-09-07 2015-01-14 日本放送協会 動きベクトル予測装置、符号化装置、復号装置、及びこれらのプログラム
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
GB2495301B (en) 2011-09-30 2018-01-17 Advanced Risc Mach Ltd Method of and apparatus for encoding data
US9357235B2 (en) 2011-10-13 2016-05-31 Qualcomm Incorporated Sample adaptive offset merged with adaptive loop filter in video coding
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
KR101616010B1 (ko) * 2011-11-04 2016-05-17 구글 테크놀로지 홀딩스 엘엘씨 비균일 움직임 벡터 그리드에 대한 움직임 벡터 스케일링
US10003817B2 (en) * 2011-11-07 2018-06-19 Microsoft Technology Licensing, Llc Signaling of state information for a decoded picture buffer and reference picture lists
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
EP3739886A1 (en) 2011-11-18 2020-11-18 GE Video Compression, LLC Multi-view coding with efficient residual handling
KR101874100B1 (ko) 2011-12-02 2018-07-04 삼성전자주식회사 영상의 부호화 방법 및 장치, 그 복호화 방법 및 장치
US9262986B2 (en) 2011-12-07 2016-02-16 Cisco Technology, Inc. Reference frame management for screen content video coding using hash or checksum functions
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
US20130268621A1 (en) 2012-04-08 2013-10-10 Broadcom Corporation Transmission of video utilizing static content information from video source
US9154749B2 (en) 2012-04-08 2015-10-06 Broadcom Corporation Power saving techniques for wireless delivery of video
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
US20130271565A1 (en) 2012-04-16 2013-10-17 Qualcomm Incorporated View synthesis based on asymmetric texture and depth resolutions
AU2012202352A1 (en) 2012-04-20 2013-11-07 Canon Kabushiki Kaisha Method, system and apparatus for determining a hash code representing a portion of an image
US9979959B2 (en) 2012-04-20 2018-05-22 Qualcomm Incorporated Video coding with enhanced support for stream adaptation and splicing
US9549180B2 (en) 2012-04-20 2017-01-17 Qualcomm Incorporated Disparity vector generation for inter-view prediction for video coding
US9479776B2 (en) 2012-07-02 2016-10-25 Qualcomm Incorporated Signaling of long-term reference pictures for video coding
CA2878807C (en) 2012-07-09 2018-06-12 Vid Scale, Inc. Codec architecture for multiple layer video coding
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
US9565452B2 (en) 2012-09-28 2017-02-07 Qualcomm Incorporated Error resilient decoding unit association
CN103841426B (zh) 2012-10-08 2017-04-26 华为技术有限公司 用于运动矢量预测的运动矢量列表建立的方法、装置
CN103916673B (zh) * 2013-01-06 2017-12-22 华为技术有限公司 基于双向预测的编码方法、解码方法和装置
US9225979B1 (en) 2013-01-30 2015-12-29 Google Inc. Remote access encoding
US9578339B2 (en) * 2013-03-05 2017-02-21 Qualcomm Incorporated Parallel processing for video coding
KR20140110221A (ko) * 2013-03-06 2014-09-17 삼성전자주식회사 비디오 인코더, 장면 전환 검출 방법 및 비디오 인코더의 제어 방법
US9201642B2 (en) 2013-03-15 2015-12-01 International Business Machines Corporation Extending platform trust during program updates
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 ルネサスエレクトロニクス株式会社 動画像符号化装置およびその動作方法
EP3061233B1 (en) 2013-10-25 2019-12-11 Microsoft Technology Licensing, LLC Representing blocks with hash values in video and image coding and decoding
EP3061253A1 (en) 2013-10-25 2016-08-31 Microsoft Technology Licensing, LLC Hash-based block matching in video and image coding
WO2015131325A1 (en) 2014-03-04 2015-09-11 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
CN105359531B (zh) 2014-03-17 2019-08-06 微软技术许可有限责任公司 用于针对屏幕内容编码的编码器侧判定的方法和***
US9715559B2 (en) 2014-03-17 2017-07-25 Qualcomm Incorporated Hash-based encoder search for intra block copy
US10091512B2 (en) 2014-05-23 2018-10-02 Futurewei Technologies, Inc. Advanced screen content coding with improved palette table and index map coding methods
CN105706450B (zh) 2014-06-23 2019-07-16 微软技术许可有限责任公司 根据基于散列的块匹配的结果的编码器决定
EP3175614A4 (en) 2014-07-31 2018-03-28 Hewlett-Packard Development Company, L.P. Virtual changes to a real object
KR102358276B1 (ko) 2014-09-30 2022-02-04 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 비디오 코딩을 위한 해시 기반 인코더 결정
GB2531811B (en) 2014-11-03 2021-02-17 Sony Europe Bv A method, system and apparatus for providing improved audience participation
CN104574440A (zh) 2014-12-30 2015-04-29 安科智慧城市技术(中国)有限公司 一种视频运动目标跟踪方法及装置
US10681326B2 (en) 2016-05-19 2020-06-09 AVAGO TECHNOLOGlES INTERNATIONAL SALES PTE. LIMITED 360 degree video system with coordinate compression
US10390039B2 (en) 2016-08-31 2019-08-20 Microsoft Technology Licensing, Llc Motion estimation for screen remoting scenarios
US11095877B2 (en) 2016-11-30 2021-08-17 Microsoft Technology Licensing, Llc Local hash-based motion estimation for screen remoting scenarios
US20180196609A1 (en) 2017-01-12 2018-07-12 Qualcomm Incorporated Data Deduplication Using Multi-Chunk Predictive Encoding
WO2018164955A1 (en) 2017-03-06 2018-09-13 Rivetz Corp. Device enrollment protocol
US10992939B2 (en) 2017-10-23 2021-04-27 Google Llc Directional intra-prediction coding
US10848782B2 (en) 2018-09-21 2020-11-24 Tencent America LLC Method and apparatus for video coding
US11146800B2 (en) 2018-09-24 2021-10-12 Tencent America LLC Low latency local illumination compensation
US11509919B2 (en) 2018-10-17 2022-11-22 Tencent America Reference sample memory size restrictions for intra block copy
US10917493B2 (en) 2018-10-19 2021-02-09 Bby Solutions, Inc. Dynamic edge cache content management
US10701385B1 (en) 2019-01-13 2020-06-30 Tencent America LLC Method and apparatus for reference sample memory reuse for intra picture block compensation
US10771799B2 (en) 2019-01-15 2020-09-08 Tencent America LLC Method and apparatus for video coding
US10958904B2 (en) 2019-02-01 2021-03-23 Tencent America LLC Method and apparatus for video coding
US11252442B2 (en) 2019-04-08 2022-02-15 Tencent America LLC Method and apparatus for video coding
US11363279B2 (en) 2019-04-15 2022-06-14 Tencent America LLC Method and apparatus in video coding with flexible coding order
US11930159B2 (en) 2019-11-29 2024-03-12 Intel Corporation Method and system of video coding with intra block copying
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101866366A (zh) * 2010-07-15 2010-10-20 哈尔滨工业大学 一种基于内容的图像格式中文文档检索方法
CN103281538A (zh) * 2013-06-06 2013-09-04 上海交通大学 基于滚动哈希和块级别帧内预测的帧内编码方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
An Efficient Intra Mode Selection Algorithm For H.264 Based On Fast Edge Classification;Zhenyu Wei et al;《IEEE International Symposium on Circuits and Systems》;20070625;全文

Also Published As

Publication number Publication date
US20170302936A1 (en) 2017-10-19
RU2017110461A3 (zh) 2018-10-04
EP3389276B1 (en) 2021-01-13
CN110582001A (zh) 2019-12-17
RU2017110461A (ru) 2018-10-04
EP3202142A1 (en) 2017-08-09
KR102490706B1 (ko) 2023-01-19
CN105981382A (zh) 2016-09-28
WO2016049834A1 (en) 2016-04-07
AU2014408223A1 (en) 2017-03-16
EP3202142B1 (en) 2020-11-11
RU2679981C2 (ru) 2019-02-14
CA2961089A1 (en) 2016-04-07
EP3202142A4 (en) 2018-02-28
US11025923B2 (en) 2021-06-01
BR112017004490B1 (pt) 2023-03-14
MX2017004210A (es) 2017-11-15
BR112017004490A2 (pt) 2017-12-05
US11736701B2 (en) 2023-08-22
JP2017535148A (ja) 2017-11-24
EP3416386B1 (en) 2021-01-13
EP3416386A1 (en) 2018-12-19
CA2961089C (en) 2023-03-28
JP6462119B2 (ja) 2019-01-30
EP3389276A1 (en) 2018-10-17
CN115665423A (zh) 2023-01-31
US20210218974A1 (en) 2021-07-15
KR20170063895A (ko) 2017-06-08
CN110582001B (zh) 2022-10-14
AU2014408223B2 (en) 2019-12-05
US20230345013A1 (en) 2023-10-26
KR102358276B1 (ko) 2022-02-04
KR20220019297A (ko) 2022-02-16
CA3186389A1 (en) 2016-04-07

Similar Documents

Publication Publication Date Title
CN105981382B (zh) 用于视频编码的基于散列的编码器判定
CN105706450B (zh) 根据基于散列的块匹配的结果的编码器决定
CN105359531B (zh) 用于针对屏幕内容编码的编码器侧判定的方法和***
CN105393537B (zh) 用于基于散列的块匹配的散列表构建和可用性检查
CN105917648B (zh) 具有非对称分区的帧内块复制预测以及编码器侧搜索图案、搜索范围和用于分区的方法
CN106416254B (zh) 在媒体编码期间跳过评估阶段
CN105556971B (zh) 针对帧内块复制预测中的块翻动和跳跃模式的编码器侧判定
CN105684409B (zh) 在视频和图像编码和解码中使用散列值来表示各块
CN105432077B (zh) 在切换色彩空间时调整量化/缩放和逆量化/缩放
CN105960802B (zh) 切换色彩空间时对编码和解码的调整
CN105874795B (zh) 在波前并行处理被启用时对图片内预测模式的规则
CN105264888B (zh) 用于对色彩空间、色彩采样率和/或比特深度自适应切换的编码策略
CN105230023B (zh) 色彩空间、色彩采样率和/或比特深度的自适应切换
CN105765974B (zh) 用于视频和图像编码和解码的帧内块复制预测模式的特征
CN105659602B (zh) 用于视频和图像编码的帧内块复制预测模式的编码器侧选项
CN105493505B (zh) 统一的帧内块复制和帧间预测模式
CN105874791B (zh) 在对重叠区域内的经重构样本值的块向量预测和估计方面的创新
CN106664405A (zh) 用调色板模式对经逸出编码的像素的稳健编码/解码
CN105917650A (zh) 视频和图像编码/解码中的块向量预测
CN105900420A (zh) 选择运动向量精度
CN107113422A (zh) 用于视频编码和解码的灵活的参考图片管理
CN107211155A (zh) 图内块拷贝预测模式下的合并的色度块的特殊情况处理
CN106031177A (zh) 用于硬件加速的视频编码的主编码器
CN105247871A (zh) 帧内块复制预测中的块翻动和跳跃模式
CN107431814A (zh) ρ域速率控制的变化

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