CN105684409A - 在视频和图像编码和解码中使用散列值来表示各块 - Google Patents

在视频和图像编码和解码中使用散列值来表示各块 Download PDF

Info

Publication number
CN105684409A
CN105684409A CN201380080483.4A CN201380080483A CN105684409A CN 105684409 A CN105684409 A CN 105684409A CN 201380080483 A CN201380080483 A CN 201380080483A CN 105684409 A CN105684409 A CN 105684409A
Authority
CN
China
Prior art keywords
block
current block
picture
hash 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
CN201380080483.4A
Other languages
English (en)
Other versions
CN105684409B (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 CN105684409A publication Critical patent/CN105684409A/zh
Application granted granted Critical
Publication of CN105684409B publication Critical patent/CN105684409B/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/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
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/44Secrecy systems
    • H04N1/4446Hiding of documents or document information
    • H04N1/4466Enveloping, wrapping, or sealing, i.e. keeping the document closed
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/44Secrecy systems
    • H04N1/448Rendering the image unintelligible, e.g. scrambling
    • H04N1/4486Rendering the image unintelligible, e.g. scrambling using digital data encryption
    • 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/136Incoming video signal characteristics or properties
    • 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/46Embedding additional information in the video signal during the compression process
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder

Abstract

基于散列的块匹配中的创新促进了在速率-失真性能和/或编码的计算效率方面更高效的块复制(“BC”)预测。例如,创新中的一些涉及通过使用基于散列的块匹配所确定的散列值来编码各块。其他创新涉及通过使用基于散列的块匹配所确定的散列值来重构各块。

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预测的编码器侧决策没有被有效作出。
概述
概括而言,本详细描述呈现了基于散列的块匹配中的创新。例如,各创新中的一些涉及用散列值来编码各块,其中编码器在搜索与被编码的当前块相匹配的块时使用各块的散列值。对应的解码器使用用信号通知的散列值来确定在重构期间要使用哪些块。
针对基于散列的块匹配的创新可以被实现为方法的一部分、被适配成执行该方法的计算系统的一部分或存储用于使计算系统执行该方法的计算机可执行指令的有形计算机可读介质的一部分。各创新可以结合地或分开地使用。
参考附图阅读以下详细描述,将更清楚本发明的前述和其他目标、特征和优点。
附图简述
图1是其中可实现所描述的一些实施例的示例计算系统的示图。
图2a和2b是其中可实现所描述的一些实施例的示例网络环境的示图。
图3是结合其可实现所描述的一些实施例的示例编码器系统的示图。
图4是结合其可实现所描述的一些实施例的示例解码器系统的示图。
图5a和5b是示出结合其可实现所描述的一些实施例的示例视频编码器的示图。
图6是示出结合其可实现所描述的一些实施例的示例视频解码器的示图。
图7是示出针对图片的块的帧内BC预测的示图。
图8是示出帧的块的块匹配中的候选块的示图。
图9是示出针对示例帧的块的块匹配中的多个候选块的示图。
图10是示出在基于散列的块匹配中的候选块的散列值的表。
图11a和11b是解说用于使用散列值来编码各块的技术的流程图。
图12a和12b是解说使用用信号通知的散列值来确定重构块的编码技术的流程图。
详细描述
本详细描述呈现了基于散列的块匹配的使用中的创新。具体而言,本详细描述呈现了用于使用散列值来编码各块并使用散列值来重构各块的创新。
虽然本文中描述的操作是被适当描述为由视频编码器来执行,但在许多情况中,这些操作可由另一类型的媒体处理工具(例如图像编码器)来执行。
本文中描述的一些创新是参考专用于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.基于散列的块匹配。
本章节呈现基于散列的块匹配的各特征。这些特征中的一些涉及用散列值来编码各块,而其他特征涉及使用散列值来重构各块。这些特征可促成从速率-失真性能和/或计算效率方面来看有效的帧内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个候选块,假定候选块平均分布到各散列值类别。
散列函数h()可以是循环冗余校验(“CRC”)函数或其它散列函数。一些类型的散列函数(例如,CRC函数)将相似的块映射到不同的散列值,这在寻找与当前块精确对应的匹配块是可能是高效的。其他类型的散列函数(例如,位置敏感散列函数)将相似的块映射到相同的散列值,这在匹配块近似于当前块时可能是合适的。下文描述了各示例散列函数。
通过散列函数h(),编码器确定当前块B当前的散列值。在图10中,散列值h(B当前)是h3。使用当前块的散列值,编码器可标识具有相同散列值的候选块(图10中的轮廓框所示),并过滤出其它候选块。当散列函数将类似块映射到不同散列值时,被标识的候选块(与当前块相同的散列值)包括可能与当前块相同的块。当散列函数将类似块映射到相同散列值时,被标识的候选块(与当前块相同的散列值)包括可能与当前块相同的或可能非常接近当前块的块。不管怎样,从这些标识出的候选块中,编码器可(例如,使用逐样本的块匹配操作)标识出当前块的匹配块。
总体地,因为散列值比较比逐样本的块匹配简单得多,基于散列的块匹配可使得在大搜索范围中评估候选块的过程高效得多。同样,候选块的散列值可以被重用于图片内的不同块的基于散列的块匹配,所以计算各候选块的散列值的成本可跨整个图片的各基于散列的块匹配操作来分摊。
C.用散列值表示块。
在某些示例实现中,编码器信号化代表当前块的匹配块的散列值,而不是发送当前块的匹配块的BV值。编码器,使用经信号化的散列值,根据散列值使用其自己的组织候选块的数据结构来重构当前块。在这一办法中,解码器创建并更新组织各候选块的数据结构。使用当前块的经信号化的散列值,解码器在数据结构中寻找合适的块,接着将那个块用作为当前块。在某些情况中,信号化散列值相比信号化BV值而言消耗较少比特。
在此方法中,编码器和解码器使用经重构的样本值来确定候选块的散列值,因此散列值在编码器和解码器处相同。数据结构的组织取决于实现。编码器可对每个当前块信号化多个散列值,以迭代地过滤出不匹配的块。或者,编码器可对每个当前块信号化单个散列值。或者,除了一个或多个散列值之外,编码器可信号化指示在多个余下的候选块中的匹配块的索引值。
这一办法在针对当前块用信号通知的散列值以高概率标识候选块中的等同块时工作良好。在针对当前块用信号通知的散列值标识了候选块中非等同的匹配块时,性能受损。然而,在这种情况下,编码器可以改为将另一形式的编码用于当前块(例如,图片内空间预测或其他图片内预测)。
图11a示出用于使用散列值来表示各块以编码图片的一般化技术(1100)。编码器(诸如参考图3或图5a-5b描述的编码器)可执行该技术(1100)。
编码器使用具有基于散列的块匹配的BC预测来编码(1110)图片的数据。BC预测可以是图片内BC预测(如果候选块与当前块处于同一图片中),或者BC预测可以参考另一图片(在同一视频序列中,在另一视频序列中,或者活动(sprite)或所生成的参考图片)中的候选块。候选块是搜索范围的一部分,这可包括在具有当前块的图片(或另一图片)中所有先前重构的内容,或可包括先前重构的内容的子集(例如,当前CTU中以及具有当前块的图片中的一个或多个其他CTU中经重构的内容,或与当前块相同的同一小块中的经重构的内容,或与当前块相同的同一片中的经重构的内容)。在它编码(1110)图片的数据时,编码器可以执行图11b中所示的技术(1111)。或者,编码器可以按某一其他方式执行图片的数据的编码(1110)。
根据图11b的技术(1111),编码器获得(1120)要编码的下一块并确定(1130)该块(作为当前块)的一个或多个散列值。散列函数可以是CRC函数,位置敏感的散列函数,或其他散列函数。
编码器至少部分地基于当前块的散列值来标识(1140)多个候选块中的匹配块。例如,对于候选块中的一者或多者中的每一者,编码器将当前块的散列值与候选块的散列值相比较。或者,在数据结构根据散列值来组织各候选块时,编码器使用当前块的散列值来选择候选块列表,随后确定所选择的列表中的任何候选块中的匹配块(例如,在当前块与给定候选块的样本值之间执行块匹配操作)。
如果基于散列的块匹配成功,则编码器用信号通知表示当前块的块匹配的散列值。编码器还可用信号通知候选块列表内匹配块的索引值(在适用的情况下)。编码器可以编码用信号通知的值,例如使用CABAC或另一形式的熵编码。否则,如果基于散列的块匹配失败,则编码器可以使用空间图片内预测或另一形式的图片内预测来编码当前块。
编码器检查(1150)是否继续图片中的下一块。如果是,则在数据结构根据散列值组织各候选块时,编码器可以更新(1160)该数据结构以将与刚编码的块交叠的新候选块纳入考虑,随后获取(1120)下一块并确定(1130)其散列值。
返回图11a,编码器输出(1190)经编码数据,它包括用信号通知的散列值。编码器可以针对下一图片重复该技术(1100)。
图12a示出用于使用散列值来表示各块以解码图片的一般化技术(1200)。解码器(诸如参考图4或图6描述的解码器)可执行该技术(1200)。
解码器接收(1210)图片的经编码数据,其中经编码数据包括表示图片的各块的散列值。解码器使用具有基于散列的块重构的BC预测来解码(1220)图片的数据。BC预测可以是图片内BC预测(如果候选块与当前块处于同一图片中),或BC预测可以参考另一图片中的候选块。在它解码(1220)图片的数据时,解码器可以执行图12b中所示的技术(1221)。或者,解码器可以按某一其他方式执行图片的数据的解码(1220)。
根据图12b的技术(1221),解码器获得(1230)要解码的下一块的数据,包括用信号通知的当前块的散列值且可能包括用信号通知的当前块的索引值。解码器可以解码用信号通知的值。
解码器至少部分地基于当前块的用信号通知的散列值来标识(1240)多个候选块中的重构块。例如,对于候选块中的一者或多者中的每一者,解码器将当前块的散列值与候选块的散列值相比较以找出重构块。对于候选块的散列值,散列函数可以是CRC函数,位置敏感的散列函数,或其他散列函数。在数据结构根据散列值来组织各候选块时,解码器可以使用当前块的散列值来找出数据结构中的重构块。或者,解码器可以使用当前块的散列值来找出数据结构中的候选块列表,随后找出所选择的列表中的任何候选块中的重构块(例如,使用用信号通知的索引值)。
在使用基于散列的块重构时,解码器将所标识的重构块用于(1250)当前块。否则,如果基于散列的块重构未被使用,则编码器可以使用空间图片内预测或另一形式的图片内预测来解码当前块。
解码器检查(1260)是否继续图片中的下一块。如果是,则在数据结构根据散列值组织各候选块时,解码器可以更新(1270)该数据结构以将与刚解码的块交叠的新候选块纳入考虑,随后获取(1220)下一块的散列值并继续。
解码器可以针对下一图片重复该技术(1200)。
D.示例散列函数
用于基于散列的块匹配(以及基于散列的块重构,见C小节)的散列函数取决于实现。
散列函数可产生具有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]⊕L[1,j]⊕L[2,j]⊕L[3,j]⊕L[4,j]⊕L[5,j]⊕L[6,j]⊕L[7,j],
其中⊕表示XOR操作。
第三8比特分量c是基于沿着级别图L的列的XOR操作。对于级别图L的每列0≤i<8,第三分量的比特c[j]被确定。
c[i]=L[i,0]⊕L[i,1]⊕L[i,2]⊕L[i,3]⊕L[i,4]⊕L[i,5]⊕L[i,6]⊕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)在它们具有相同的散列值的情况下可被编组在一起,且不同大小的候选块可被组织在单个数据结构内。
替换地,另一散列函数被用于基于散列的块匹配。
E.帧内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 (20)

1.一种在具有视频编码器或图像编码器的计算设备中的方法,所述方法包括:
编码图片的当前块的数据,包括:
确定所述当前块的散列值;以及
至少部分地基于所述当前块的散列值来标识多个候选块中的匹配块;以及
输出经编码数据,其中所述经编码数据包括所述匹配块的散列值以表示所述当前块。
2.如权利要求1所述的方法,其特征在于,编码所述当前块的数据进一步包括编码所述当前块的散列值。
3.如权利要求1所述的方法,其特征在于,所述确定所述当前块的散列值使用循环冗余校验函数。
4.如权利要求1所述的方法,其特征在于,所述确定所述当前块的散列值使用包括取平均和XOR操作的散列函数。
5.如权利要求1所述的方法,其特征在于,所述确定所述当前块的散列值使用位置敏感散列函数。
6.如权利要求1所述的方法,其特征在于,所述确定所述当前块的散列值使用包括包括块宽度和块高度作为输入的散列函数。
7.如权利要求1所述的方法,其特征在于,包括所述当前块的图片还包括所述多个候选块,并且其中编码所述当前块的数据使用图片内块复制预测。
8.如权利要求1所述的方法,其特征在于,另一图片包括所述多个候选块中的至少一些。
9.如权利要求1所述的方法,其特征在于,标识所述匹配块包括对于所述多个候选块中的一者或多者中的每一者,将所述当前块的散列值与所述候选块的散列值相比较。
10.一种在具有视频解码器或图像解码器的计算设备中的方法,所述方法包括:
接收图片的经编码数据,其中所述经编码数据包括所述图片的当前块的散列值;以及
解码所述当前块,包括:
至少部分地基于所述当前块的散列值来标识多个候选块中的重构块;以及
将所述重构块用于所述当前块。
11.如权利要求10所述的方法,其特征在于,解码所述当前块进一步包括解码所述当前块的散列值。
12.如权利要求10所述的方法,其特征在于,数据结构根据散列值组织所述多个候选块。
13.如权利要求10所述的方法,其特征在于,进一步包括对于所述多个候选块中的每一者,使用循环冗余校验函数来确定散列值。
14.如权利要求10所述的方法,其特征在于,进一步包括对于所述多个候选块中的每一者,使用包括取平均和XOR操作的散列函数来确定散列值。
15.如权利要求10所述的方法,其特征在于,进一步包括对于所述多个候选块中的每一者,使用位置敏感散列函数来确定散列值。
16.如权利要求10所述的方法,其特征在于,进一步包括对于所述多个候选块中的每一者,使用包括块宽度和块高度作为输入的散列函数来确定散列值。
17.如权利要求10所述的方法,其特征在于,包括所述当前块的图片还包括所述多个候选块,并且其中解码所述当前块使用图片内块复制预测。
18.如权利要求10所述的方法,其特征在于,另一图片包括所述多个候选块中的至少一些。
19.一种被适配成执行权利要求1-18中的任一项所述的方法的计算设备。
20.一个或多个存储计算机可执行指令的计算机可读介质,所述计算机可执行指令使得计算设备因此被编程为执行如权利要求1-18中的任一项所述的方法。
CN201380080483.4A 2013-10-25 2013-10-25 在视频和图像编码和解码中使用散列值来表示各块 Active CN105684409B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2013/085939 WO2015058397A1 (en) 2013-10-25 2013-10-25 Representing blocks with hash values in video and image coding and decoding

Publications (2)

Publication Number Publication Date
CN105684409A true CN105684409A (zh) 2016-06-15
CN105684409B CN105684409B (zh) 2019-08-13

Family

ID=52992154

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380080483.4A Active CN105684409B (zh) 2013-10-25 2013-10-25 在视频和图像编码和解码中使用散列值来表示各块

Country Status (5)

Country Link
US (1) US11076171B2 (zh)
EP (1) EP3061233B1 (zh)
KR (1) KR102197505B1 (zh)
CN (1) CN105684409B (zh)
WO (1) WO2015058397A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113545068A (zh) * 2019-03-01 2021-10-22 北京字节跳动网络技术有限公司 用于视频编解码中的帧内块复制的基于顺序的更新
US11882287B2 (en) 2019-03-01 2024-01-23 Beijing Bytedance Network Technology Co., Ltd Direction-based prediction for intra block copy in video coding
US11936852B2 (en) 2019-07-10 2024-03-19 Beijing Bytedance Network Technology Co., Ltd. Sample identification for intra block copy in video coding

Families Citing this family (28)

* 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
CN105684441B (zh) 2013-10-25 2018-09-21 微软技术许可有限责任公司 视频和图像编码中的基于散列的块匹配
CN104754343B (zh) * 2013-12-27 2019-07-19 财团法人工业技术研究院 图像处理方法与系统、解码方法、编码器与解码器
US10402214B2 (en) * 2014-01-31 2019-09-03 Hewlett Packard Enterprise Development Lp Device provided script to convert command
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
WO2015131325A1 (en) 2014-03-04 2015-09-11 Microsoft Technology Licensing, Llc Hash table construction and availability checking for hash-based block matching
US9715559B2 (en) * 2014-03-17 2017-07-25 Qualcomm Incorporated Hash-based encoder search for intra block copy
GB2527099B (en) * 2014-06-11 2018-07-18 Gurulogic Microsystems Oy Apparatus and method for data compression
KR102287779B1 (ko) 2014-06-23 2021-08-06 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 해시 기반의 블록 매칭의 결과에 기초한 인코더 결정
MX2017004210A (es) 2014-09-30 2017-11-15 Microsoft Technology Licensing Llc Decisiones de codificador basadas en hash para codificar video.
US10091511B2 (en) * 2015-01-05 2018-10-02 Getgo, Inc. Efficient video block matching
KR102131142B1 (ko) 2015-01-29 2020-07-07 브이아이디 스케일, 인크. 인트라-블록 카피 검색
US10390026B2 (en) 2016-03-25 2019-08-20 Google Llc Smart reordering in recursive block partitioning for advanced intra prediction in video coding
US10390039B2 (en) 2016-08-31 2019-08-20 Microsoft Technology Licensing, Llc Motion estimation for screen remoting scenarios
US10523956B2 (en) 2016-11-16 2019-12-31 Citrix Systems, Inc. Multi-pixel caching scheme for lossless encoding
US11095877B2 (en) 2016-11-30 2021-08-17 Microsoft Technology Licensing, Llc Local hash-based motion estimation for screen remoting scenarios
US10827191B2 (en) 2018-11-02 2020-11-03 Fungible, Inc. Parallel coding of syntax elements for JPEG accelerator
WO2020092795A2 (en) * 2018-11-02 2020-05-07 Fungible, Inc. Parallel coding of syntax elements for jpeg accelerator
US10827192B2 (en) 2018-11-02 2020-11-03 Fungible, Inc. Work allocation for JPEG accelerator
US10931958B2 (en) 2018-11-02 2021-02-23 Fungible, Inc. JPEG accelerator using last-non-zero (LNZ) syntax element
US10848775B2 (en) 2018-11-02 2020-11-24 Fungible, Inc. Memory layout for JPEG accelerator
EP3871410A4 (en) 2018-11-29 2021-12-22 Beijing Bytedance Network Technology Co., Ltd. INTERACTION BETWEEN AN INTRABLOCK COPY MODE AND INTERPRETATION TOOLS
CN113170177A (zh) 2019-01-02 2021-07-23 北京字节跳动网络技术有限公司 基于散列的运动搜索
US11039150B2 (en) * 2019-04-19 2021-06-15 Tencent America LLC Method and apparatus for video coding
CN111614961A (zh) * 2020-05-25 2020-09-01 绍兴文理学院 采用不同方式计算哈希值建立哈希表进行搜索的编码方法
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
US11503336B2 (en) * 2020-12-07 2022-11-15 Tencent America LLC Method and apparatus for video coding
US20220286675A1 (en) * 2021-03-05 2022-09-08 Tencent America LLC Decoupled transform partitioning

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101710324A (zh) * 2008-09-04 2010-05-19 威睿公司 使用标准块和标准块标识符的文件传送
CN103281538A (zh) * 2013-06-06 2013-09-04 上海交通大学 基于滚动哈希和块级别帧内预测的帧内编码方法

Family Cites Families (209)

* 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
EP1410380B1 (en) * 2001-07-20 2010-04-28 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
CN1897701A (zh) 2002-01-18 2007-01-17 株式会社东芝 视频编码方法和装置以及视频解码方法和装置
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 セイコーエプソン株式会社 動画像符号化装置および動画像符号化方法
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
US7349583B2 (en) 2003-09-05 2008-03-25 The Regents Of The University Of California Global motion estimation image coding and processing
US7733497B2 (en) 2003-10-27 2010-06-08 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
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
AU2005295331A1 (en) * 2004-10-15 2006-04-27 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 光学素子用プリフォーム
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 삼성전자주식회사 영상의 대칭성을 이용한 인트라 예측 방법, 이를 이용한영상의 복호화, 부호화 방법 및 장치
US8107527B1 (en) 2005-07-28 2012-01-31 Teradici Corporation Progressive block encoding using region analysis
US7822278B1 (en) * 2005-09-20 2010-10-26 Teradici Corporation Methods and apparatus for encoding a digital video signal
US8787460B1 (en) 2005-07-28 2014-07-22 Teradici Corporation Method and apparatus for motion vector estimation for an image sequence
US20070025442A1 (en) 2005-07-28 2007-02-01 Sanyo Electric Co., Ltd. Coding method for coding moving images
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.
ATE504878T1 (de) * 2005-10-12 2011-04-15 Datacastle Corp Verfahren und system zur datensicherung
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
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
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 画像処理装置、画像処理プログラム、画像処理方法、および、電子機器
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
WO2010001433A1 (ja) 2008-06-30 2010-01-07 富士通マイクロエレクトロニクス株式会社 メモリ装置及びそれを制御するメモリコントローラ
US8515123B2 (en) 2008-07-03 2013-08-20 Verimatrix, Inc. Efficient watermarking approaches of compressed media
US8213503B2 (en) 2008-09-05 2012-07-03 Microsoft Corporation Skip modes for inter-layer residual video coding and decoding
CN102224734B (zh) 2008-10-02 2013-11-13 索尼公司 图像处理设备和方法
US8670560B2 (en) * 2008-10-23 2014-03-11 University Of Ulster 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
WO2010085899A1 (en) * 2009-02-02 2010-08-05 Calgary Scientific Inc. Image data transmission
CN102308579B (zh) 2009-02-03 2017-06-06 汤姆森特许公司 位深可分级中使用平滑参考帧的运动补偿的方法和设备
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
CA2787696A1 (en) 2010-01-22 2011-07-28 Adam Wax Multiple window processing schemes for spectroscopic optical coherence tomography (oct) and fourier domain low coherence interferometry
US9794556B2 (en) * 2010-02-17 2017-10-17 Electronics And Telecommunications Research Institute Method and device for simplifying encoding and decoding of ultra-high definition images
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
EP2559239A2 (en) 2010-04-13 2013-02-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
EP2559238B1 (en) 2010-04-13 2015-06-03 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Adaptive image filtering method and apparatus
KR20110123651A (ko) 2010-05-07 2011-11-15 한국전자통신연구원 생략 부호화를 이용한 영상 부호화 및 복호화 장치 및 그 방법
JP5668059B2 (ja) 2010-06-01 2015-02-12 Hoya株式会社 内視鏡用対物レンズ、及び内視鏡
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
CA2811437C (en) * 2010-09-30 2016-01-19 Nec Corporation Distributed storage system with duplicate elimination
PL3962088T3 (pl) 2010-11-04 2023-11-27 Ge Video Compression, Llc Kodowanie obrazu wspomagające scalanie bloków i tryb przeskoku
WO2012072637A1 (en) * 2010-12-01 2012-06-07 Ibbt Method and device for correlation channel estimation
US20120170653A1 (en) 2010-12-30 2012-07-05 General Instrument Corporation Block based sampling coding systems
KR20120095610A (ko) 2011-02-21 2012-08-29 삼성전자주식회사 다시점 비디오의 부호화 방법 및 장치, 그 복호화 방법 및 장치
JP6061150B2 (ja) 2011-03-18 2017-01-18 ソニー株式会社 画像処理装置、画像処理方法、及び、プログラム
US9445092B2 (en) 2011-03-18 2016-09-13 Sony Corporation Image processing apparatus, image processing method, and program
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
US9521418B2 (en) 2011-07-22 2016-12-13 Qualcomm Incorporated Slice header three-dimensional video extension for slice header prediction
US11496760B2 (en) 2011-07-22 2022-11-08 Qualcomm Incorporated Slice header prediction for depth maps in three-dimensional video codecs
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
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
WO2013072484A1 (en) 2011-11-18 2013-05-23 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. 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
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
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
US9979958B2 (en) 2012-04-20 2018-05-22 Qualcomm Incorporated Decoded picture buffer processing for random access point pictures in video sequences
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
KR20210129266A (ko) 2012-07-09 2021-10-27 브이아이디 스케일, 인크. 멀티 레이어 비디오 코딩용 코덱 아키텍처
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 华为技术有限公司 用于运动矢量预测的运动矢量列表建立的方法、装置
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 ルネサスエレクトロニクス株式会社 動画像符号化装置およびその動作方法
EP3061233B1 (en) 2013-10-25 2019-12-11 Microsoft Technology Licensing, LLC Representing blocks with hash values in video and image coding and decoding
CN105684441B (zh) 2013-10-25 2018-09-21 微软技术许可有限责任公司 视频和图像编码中的基于散列的块匹配
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
US9715559B2 (en) 2014-03-17 2017-07-25 Qualcomm Incorporated Hash-based encoder search for intra block copy
EP3120556B1 (en) 2014-03-17 2021-01-13 Microsoft Technology Licensing, LLC Encoder-side decisions for screen content encoding
US10091512B2 (en) 2014-05-23 2018-10-02 Futurewei Technologies, Inc. Advanced screen content coding with improved palette table and index map coding methods
KR102287779B1 (ko) 2014-06-23 2021-08-06 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 해시 기반의 블록 매칭의 결과에 기초한 인코더 결정
CN106797458B (zh) 2014-07-31 2019-03-08 惠普发展公司,有限责任合伙企业 真实对象的虚拟改变
MX2017004210A (es) 2014-09-30 2017-11-15 Microsoft Technology Licensing Llc Decisiones de codificador basadas en hash para codificar video.
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 安科智慧城市技术(中国)有限公司 一种视频运动目标跟踪方法及装置
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101710324A (zh) * 2008-09-04 2010-05-19 威睿公司 使用标准块和标准块标识符的文件传送
CN103281538A (zh) * 2013-06-06 2013-09-04 上海交通大学 基于滚动哈希和块级别帧内预测的帧内编码方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113545068A (zh) * 2019-03-01 2021-10-22 北京字节跳动网络技术有限公司 用于视频编解码中的帧内块复制的基于顺序的更新
CN113545068B (zh) * 2019-03-01 2023-09-15 北京字节跳动网络技术有限公司 用于视频编解码中的帧内块复制的基于顺序的更新
US11882287B2 (en) 2019-03-01 2024-01-23 Beijing Bytedance Network Technology Co., Ltd Direction-based prediction for intra block copy in video coding
US11956438B2 (en) 2019-03-01 2024-04-09 Beijing Bytedance Network Technology Co., Ltd. Direction-based prediction for intra block copy in video coding
US11936852B2 (en) 2019-07-10 2024-03-19 Beijing Bytedance Network Technology Co., Ltd. Sample identification for intra block copy in video coding

Also Published As

Publication number Publication date
KR20160075709A (ko) 2016-06-29
US20160241876A1 (en) 2016-08-18
EP3061233B1 (en) 2019-12-11
WO2015058397A1 (en) 2015-04-30
CN105684409B (zh) 2019-08-13
EP3061233A4 (en) 2016-10-12
EP3061233A1 (en) 2016-08-31
KR102197505B1 (ko) 2020-12-31
US11076171B2 (en) 2021-07-27

Similar Documents

Publication Publication Date Title
CN105684409A (zh) 在视频和图像编码和解码中使用散列值来表示各块
CN105684441B (zh) 视频和图像编码中的基于散列的块匹配
CN110024398B (zh) 针对屏幕远程处理场景的局部的基于散列的运动估计
CN105393537B (zh) 用于基于散列的块匹配的散列表构建和可用性检查
CN105556971B (zh) 针对帧内块复制预测中的块翻动和跳跃模式的编码器侧判定
CN105917648B (zh) 具有非对称分区的帧内块复制预测以及编码器侧搜索图案、搜索范围和用于分区的方法
CN105765974B (zh) 用于视频和图像编码和解码的帧内块复制预测模式的特征
CN105659602B (zh) 用于视频和图像编码的帧内块复制预测模式的编码器侧选项
CN105052140B (zh) 用于下一代视频的模式和参考类型数据的内容自适应熵编码
CN105900420B (zh) 选择运动向量精度
CN105659606A (zh) 用于视频和图像编码和解码的基础颜色索引图模式的特征
JP7357684B2 (ja) ビデオ復号のための方法、装置、およびコンピュータプログラム
CN105359531A (zh) 针对屏幕内容编码的编码器侧判定
CN105706450A (zh) 根据基于散列的块匹配的结果的编码器决定
CN105917650A (zh) 视频和图像编码/解码中的块向量预测
CN113330749A (zh) 用于变换跳过模式和块差分脉冲编码调制的改进的残差编解码
CN107431814B (zh) ρ域速率控制的变化的方法、系统及计算机可读存储器
CN105247871A (zh) 帧内块复制预测中的块翻动和跳跃模式
CN106664405A (zh) 用调色板模式对经逸出编码的像素的稳健编码/解码
CN107113422A (zh) 用于视频编码和解码的灵活的参考图片管理
CN105493505A (zh) 统一的帧内块复制和帧间预测模式
CN105874791A (zh) 在对重叠区域内的经重构样本值的块向量预测和估计方面的创新
CN105474642B (zh) 使用频域差对图像集合重新编码的方法、系统以及介质
CN105432077A (zh) 在切换色彩空间时调整量化/缩放和逆量化/缩放
CN105981382A (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