CN101116088B - 用于提供数字图像的可扩展编解码器体系结构的系统和方法 - Google Patents

用于提供数字图像的可扩展编解码器体系结构的系统和方法 Download PDF

Info

Publication number
CN101116088B
CN101116088B CN2005800480351A CN200580048035A CN101116088B CN 101116088 B CN101116088 B CN 101116088B CN 2005800480351 A CN2005800480351 A CN 2005800480351A CN 200580048035 A CN200580048035 A CN 200580048035A CN 101116088 B CN101116088 B CN 101116088B
Authority
CN
China
Prior art keywords
image
pixel format
digital picture
forming assembly
pixel
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.)
Expired - Fee Related
Application number
CN2005800480351A
Other languages
English (en)
Other versions
CN101116088A (zh
Inventor
D·阿尔伯特
F·A·克鲁格
R·高尔
P·A·格尔维奇
A·J·胡德森
R·C·玛格里特
T·W·奥尔森
R·V·帕特里
C·S·理查德森
R·E·辛克莱尔二世
R·S·小特纳
E·凡登伯格
R·A·沃德瑞扎克
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 Corp
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 Corp filed Critical Microsoft Corp
Publication of CN101116088A publication Critical patent/CN101116088A/zh
Application granted granted Critical
Publication of CN101116088B publication Critical patent/CN101116088B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/162User input
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • 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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • 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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • 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/172Methods 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 picture, frame or field

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Discrete Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Studio Devices (AREA)
  • Television Signal Processing For Recording (AREA)

Abstract

提供了一种用于数字图像的可扩展编解码器体系结构的改进的系统和方法。可执行软件代码可被操作上耦合至编解码器管理器以便请求对数字图像执行成像操作。编解码器管理器可接收对数字图像执行成像操作的请求,并可从计算机系统中所注册的一个或多个成像组件中选择诸如编解码器等一成像组件以便对该数字图像执行成像操作。仲裁管理器可包括用于请求枚举成像组件可对特定数字图像执行的操作的功能。一个或多个像素格式转换器然后可将数字图像中的像素格式转换成安装在系统上的成像组件所支持的像素格式。

Description

用于提供数字图像的可扩展编解码器体系结构的系统和方法
发明领域
本发明一般涉及计算机系统,尤其涉及用于提供数字图像的可扩展编解码器体系结构的改进的系统和方法。
发明背景
随着数字图像的普及度的增长,数字图像的图像格式持续发展。随着对数字图像的应用的扩展,新图像格式和对特定图像格式的工业标准的扩展定期出现。此外,诸如数码相机制造商等成像设备制造商可能提供特定成像设备专用的新图像格式或对图像格式的扩展。然而,可能存在一般安装在计算机系统上的应用程序可用的一组用于图像的固定的编译码器和像素格式。并且,被设置来对图像格式进行编码和解码的该组编解码器仅提供为诸如标准图像类型等现有格式设计的固定实现。当可能引入新图像格式或对图像格式的扩展时,必须为该新图像格式构建编解码器中的编码器和解码器的实现或者必须更新这些实现来处理对图像格式的扩展。不幸的是,用于更新编解码器的过程是昂贵且耗时的。
现有计算机系统体系结构不能无缝集成或自动安装用于标准或专有图像格式的附加编解码器以便在计算机系统的成像流水线中使用。现有体系结构的另一问题在于,计算机系统可能具有计算机系统中可用编解码器能够识别的固定数目的指定像素格式。如果创建了在计算机系统中引入一图像类型的新像素格式的解码器,则该计算机系统可能不能够识别该图像类型的新像素格式。而且,编解码器与特定图像格式之间的紧耦合和依赖性阻止了对用于对多个图像的单个图像文件中所包括的不同的图像格式编码和解码图像的可执行代码的简便重用。
需要一种使计算机系统能容易地适用于新图像格式的引入而不必发布编解码器的新实现以支持新图像格式的方式。这一系统和方法也应能无缝地支持使用图像格式和对现有图像格式的扩展的第三方实现的应用,并应允许将新像素图像格式自动转换成可由计算机系统上安装的编解码器识别的像素格式。
发明概述
简要地,本发明提供一种用于数字图像的可扩展编解码器体系结构的改进的系统和方法。为此,可执行软件代码可被操作上耦合至编解码器管理器以便请求对数字图像执行成像操作。编解码器管理器可接收对数字图像执行成像操作的请求,并可从计算机系统中所注册的一个或多个成像组件中选择诸如编解码器等一成像组件以便对该数字图像执行成像操作。例如,编解码器管理器可包括各自可具有解码器和编码器的一个或多个编解码器。编解码器管理器也可包括仲裁管理器和一个或多个像素转换器。
仲裁管理器可包括用于在计算机系统中所注册的若干成像组件之中选择一成像组件来执行所请求的操作的功能,且可请求每一成像组件枚举其可对特定数字图像执行的操作。如果不存在计算机系统中所注册的可使用该图像文件的像素格式来执行成像操作的成像组件,则可选择可对该数字图像类型的不同像素格式执行所请求的成像操作的成像组件。然后可使用操作上耦合至该编解码器的一个或多个像素格式转换器来执行像素格式转换以便将数字图像中的像素格式转换成被选择来对数字图像执行所请求的成像操作的编解码器组件所支持的像素格式。
作为安装的一部分,成像组件可安装一个或多个像素格式转换器,包括用于在该成像组件的像素格式和常见像素格式之间来回转换的像素格式转换器。而且,成像组件可在安装期间在注册表中注册信息。在一个实施例中,系统注册表中的信息可包括关于计算机系统中可用的成像组件和像素格式转换器的信息。通过使用由安装在计算机系统中的成像组件所注册的信息,可在无需首先实例化成像组件的情况下选择用于执行所请求的成像操作的适当的成像组件。
有利的是,该系统和方法可灵活地支持数字图像的新图像格式和新像素格式的添加。所提供的框架也可无缝地支持使用图像格式和对现有图像格式的扩展的第三方实现的应用。而且,该系统和方法可将新像素格式自动转换成可由安装在计算机系统上的成像组件识别的像素图像格式。通过结合附图考虑以下详细描述,其它优点将是显而易见的,附图中:
附图简述
图1是一般表示可在其中包括本发明的计算机系统的框图;
图2是根据本发明的一方面一般表示数字图像的可扩展编解码器体系结构的一个实施例中的各系统组件的示例性体系结构的框图;
图3是根据本发明的一方面一般表示在可扩展编解码器体系结构的一个实施例中用于对图像文件执行成像操作所采取的示例性步骤的流程图;
图4是根据本发明的一方面一般表示在一个实施例中用于选择编解码器组件以便对图像文件执行成像操作所采取的示例性步骤的流程图;
图5是根据本发明的一方面一般表示在一个实施例中用于执行像素格式转换所采取的示例性步骤的流程图;以及
图6是根据本发明的一方面一般表示在一个实施例中用于选择一个或多个像素格式转换器以便执行像素格式转换所采取的示例性步骤的流程图。
详细描述
示例性操作环境
图1示出了可在其上实现本发明的合适的计算系统环境100的示例。计算系统环境100只是合适的计算环境的一个示例,并不旨在对本发明的使用范围或功能提出任何限制。也不应该把计算环境100解释为对示例性操作环境100中示出的任一组件或其组合有任何依赖性或要求。
本发明可用众多其它通用或专用计算系统环境或配置来操作。适合在本发明中使用的公知的计算系统、环境和/或配置的示例包括,但不限于:个人计算机、服务器计算机、手持或膝上型设备、图形输入板设备、无头服务器、多处理器系统、基于微处理器的系统、机顶盒、可编程消费者电子产品、网络PC、小型机、大型机、包含上述系统或设备中的任一个的分布式计算机环境等。
本发明可在诸如程序模块等由计算机执行的计算机可执行指令的通用语境中描述。一般而言,程序模块包括例程、程序、对象、组件、数据结构等,它们执行特定任务或实现特定抽象数据类型。本发明也可以在分布式计算环境中实现,其中任务由通过通信网络链接的远程处理设备执行。在分布式计算环境中,程序模块可以位于包括存储器存储设备在内的本地和/或远程计算机存储介质中。
参考图1,用于实现本发明的一个示例性系统包括计算机110形式的通用计算设备。计算机110的组件可以包括,但不限于,处理单元120、系统存储器130和将包括系统存储器在内的各种系统组件耦合至处理单元120的系统总线121。系统总线121可以是若干类型的总线结构中的任一种,包括存储器总线或存储器控制器、外围总线和使用各种总线体系结构中的任一种的局部总线。作为示例,而非限制,这样的体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、扩展的ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线和外围部件互连(PCI)总线(也被称为Mezzanine总线)。
计算机110通常包括各种计算机可读介质。计算机可读介质可以是能够被计算机110访问的任何可用介质,且包括易失性和非易失性介质、可移动和不可移动介质。作为示例,而非限制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以任何方法或技术实现的用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括,但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术;CD-ROM、数字多功能盘(DVD)或其它光盘存储;磁带盒、磁带、磁盘存储或其它磁性存储设备;或能用于存储所需信息且可以由计算机110访问的任何其它介质。通信介质通常具体化为诸如载波或其它传输机制等已调制数据信号中的计算机可读指令、数据结构、程序模块或其它数据,且包含任何信息传递介质。术语“已调制数据信号”指的是这样一种信号,其一个或多个特征以在信号中编码信息的方式被设定或更改。作为示例,而非限制,通信介质包括诸如有线网络或直接线连接的有线介质,以及诸如声学、RF、红外线和其它无线介质的无线介质。上述中任一个的组合也应包括在计算机可读介质的范围之内。
系统存储器130包括易失性和/或非易失性存储器形式的计算机存储介质,诸如只读存储器(ROM)131和随机存取存储器(RAM)132。基本输入/输出系统133(BIOS)包含有助于诸如启动时在计算机110中元件之间传递信息的基本例程,它通常被存储在ROM 131中。RAM 132通常包含处理单元120可以立即访问和/或目前正在操作的数据和/或程序模块。作为示例,而非限制,图1示出了操作系统134、应用程序135、其它程序模块136和程序数据137。
计算机110也可以包括其它可移动/不可移动、易失性/非易失性计算机存储介质。仅作为示例,图1示出了从不可移动、非易失性磁介质中读取或向其写入的硬盘驱动器141,从可移动、非易失性磁盘152中读取或向其写入的磁盘驱动器151,以及从诸如CD ROM或其它光学介质等可移动、非易失性光盘156中读取或向其写入的光盘驱动器155。可以在示例性操作环境下使用的其它可移动/不可移动、易失性/非易失性计算机存储介质包括,但不限于,盒式磁带、闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等。硬盘驱动器141通常由诸如接口140等不可移动存储器接口连接至系统总线121,磁盘驱动器151和光盘驱动器155通常由诸如接口150等可移动存储器接口连接至系统总线121。
以上描述和在图1中示出的驱动器及其相关联的计算机存储介质为计算机110提供了对计算机可读指令、数据结构、程序模块和其它数据的存储。例如,在图1中,硬盘驱动器141被示为存储操作系统144、应用程序145、其它程序模块146和程序数据147。注意,这些组件可以与操作系统134、应用程序135、其它程序模块136和程序数据137相同或不同。操作系统144、应用程序145、其它程序模块146和程序数据147在这里被给定了不同的标号是为了说明至少它们是不同的副本。用户可以通过输入设备,诸如图形输入板或电子数字化仪164、麦克风163、键盘162和定点设备161(通常指鼠标、跟踪球或触摸垫)向计算机110输入命令和信息。图1中未示出的其它输入设备可以包括操纵杆、游戏垫、圆盘式卫星天线、扫描仪、或包括含有生物测定传感器、环境传感器、位置传感器或其它类型的传感器的设备在内的其它设备。这些和其它输入设备通常由耦合至系统总线的用户输入接口160连接至处理单元120,但也可以由其它接口或总线结构,诸如并行端口、游戏端口或通用串行总线(USB)连接。监视器191或其它类型的显示设备也经由接口,诸如视频接口190连接至系统总线121。监视器191也可与经由触摸屏接口192连接至系统总线121的触摸屏面板等集成。注意到,监视器和/或触摸屏面板可物理耦合至其中包括计算设备110的外壳,诸如在图形输入板类型个人计算机中那样。此外,诸如计算设备110的计算机也可包括其它外围输出设备,诸如扬声器194和打印机195,它们可以通过输出外围接口193等连接。
计算机110可使用至一个或多个远程计算机,诸如远程计算机180的逻辑连接在网络化环境下操作。远程计算机180可以是个人计算机、服务器、路由器、网络PC、对等设备或其它常见的网络节点,且通常包括上文相对于计算机110描述的许多或所有元件,尽管在图1中只示出存储器存储设备181。图1中所示逻辑连接包括局域网(LAN)171和广域网(WAN)173,但也可以包括其它网络。这样的连网环境在办公室、企业范围计算机网络、内联网和因特网中是常见的。当在LAN连网环境中使用时,计算机110通过网络接口或适配器170连接至LAN 171。当在WAN连网环境中使用时,计算机110通常包括调制解调器172或用于通过诸如因特网等WAN 173建立通信的其它装置。调制解调器172可以是内置或外置的,它可以通过用户输入接口160或其它合适的机制连接至系统总线121。在网络化环境中,相对于计算机110描述的程序模块或其部分可以存储在远程存储器存储设备中。作为示例,而非限制,图1示出了远程应用程序185驻留在存储器设备181上。可以理解,所示的网络连接是示例性的,且可以使用在计算机之间建立通信链路的其它手段。
数字图像的可扩展编解码器体系结构
本发明一般针对一种用于提供数字图像的可扩展编解码器体系结构的系统和方法。该系统和方法可有利地允许安装和发现可枚举其用于对数字图像执行成像操作的能力的新成像组件。通过在安装期间注册成像组件信息,可发现适当的成像组件以便执行所请求的成像操作而不必实例化该成像组件。如可见到的,该系统和方法可灵活地支持数字图像的新图像格式和新像素格式的添加,且还可将新像素图像格式自动转换成可由安装在计算机系统上的成像组件识别的像素图像格式。如可以理解的,此处所述的各个框图、流程图和情形仅是示例,且存在本发明可应用的众多其它情形。
转向附图的图2,它示出了一般表示数字图像的可扩展编解码器体系结构的一个实施例中的各系统组件的示例性体系结构。本领域的技术人员可以理解,在附图中所示的框内实现的功能可被实现为单独的组件,或者若干或所有框的功能可在单个组件内实现。作为示例,编解码器仲裁器208可在与编解码器管理器206分开的组件中实现。
图2中所示的可执行软件202可请求要对图像文件执行的任何数目的操作,包括从图像文件中解码图像数据和将图像数据编码成图像文件。可执行软件202可操作上耦合至成像应用程序编程接口(API)204以便请求从图像文件中解码图像以及请求将图像编码成图像文件。成像API又可操作上耦合至编解码器管理器206,后者发现并枚举计算机系统中所注册的可用编解码器,并实例化所选编解码器以便对图像文件执行所请求的操作。
编解码器管理器206可包括操作上耦合的成像组件,诸如编解码器仲裁器208、一个或多个像素格式转换器210、以及一个或多个编解码器212。编解码器管理器206、编解码器仲裁器208、像素格式转换器210、和编解码器212各自可以是任何可执行软件代码,包括内核组件、应用程序或应用组件、链接库组件、对象等。可能存在诸如编解码器212等为计算机系统所支持的每一图像文件类型设置的编解码器。例如,可能有用于GIF、JPEG、PNG、TIFF和其它图像文件格式的编解码器。每一编解码器可包括用于对图像编码的编码器214和用于对图像解码的解码器218。编码器214例如可包括用于将像素写入诸如图像文件242等图像文件的图像块中的块写入器216。解码器218可包括用于从诸如图像文件242等图像文件中解码图像块的块读取器220。图像文件242也可包括可描述一个或多个图像数据块246中所编码的图像的元数据块244。
诸如编解码器212等成像组件可使用诸如注册表224等注册表在计算机系统中安装并注册。注册表224可以是文件、可执行对象、数据库或其它持久数据结构。注册表224可包括用于计算机系统中所注册的编解码器的编解码器信息234、和用于计算机系统中所注册的像素格式转换器的像素格式转换器信息226以及其它系统信息。注册这样的成像组件可提供选择适当的成像组件以便执行所请求的成像操作而无需首先对其进行实例化的一种方式。在一个实施例中,编解码器可在注册表中写入关于自身的信息。编解码器信息234可包括例如,编解码器名236、可用于唯一地标识编解码器的全局唯一标识符(GUID)238、以及其它属性240,诸如编解码器作者姓名、对该编解码器的描述、制造商名、图像格式等。例如,可能存在如由参考标号260、262、264所示的用于图2中所示的每一编解码器212的编解码器信息。在各个实施例中,也可通过提供诸如编码器名、编码器标识符、和编码器的其它属性等信息来在注册表224中注册编码器;且类似地,可通过提供诸如解码器名、解码器标识符、和解码器的其它属性等信息来在注册表224中注册解码器。
在运行时,可使用注册表中的信息来找到这样一种编解码器,它可在无需首先实例化该编解码器的情况下对图像文件解码。在一实施例中,在编解码器为它可解码的图像所注册的的模式与图像文件之间进行比较。编解码器可提供任何类型的模式以便在与图像文件进行比较时使用,包括掩码。在一个实施例中,可在编解码器所注册的模式与图像文件中的首部信息之间进行比较。
模式匹配可导致发现计算机系统中所注册的可提供用于特定图像文件的各种操作的若干不同的编解码器。编解码器仲裁器208然后可提供用于在可各自被实例化且可各自枚举它可对特定图像文件执行的操作的若干编解码器之中选择一编解码器来执行所请求的操作的功能。在一实施例中,解码器例如可通过指示属性和/或它可对图像执行的操作来枚举其能力。这些属性和操作可包括,解码器是否由对该图像编码的编码器的同一厂商提供、解码器是否可对图像文件中的所有图像解码、解码器是否可对图像文件中的某些图像解码、解码器是否可枚举图像文件中的元数据、以及解码器是否可对图像文件中的缩略图解码。在各个实施例中,编解码器仲裁器208可对解码器可执行的每一操作分配权重,然后选择其表示所分配权重的总和的得分最高的编解码器。
可处理一图像类型的每一编解码器可支持该图像类型的众多像素格式。然而,如果不存在计算机系统中所注册的可对特定图像的一像素格式解码的任何编解码器,则可找到可对该类型图像的一不同像素格式解码的编解码器,且可使用像素格式转换器来将图像中的该像素格式转换成计算机系统中所注册的解码器可解码的像素格式。从而,编解码器管理器206可包括一个或多个操作上耦合的像素格式转换器210。这些像素格式转换器210中的每一个也可在计算机系统中注册。注册表224可包括用于所注册的每一像素格式转换器的像素格式转换器信息226。例如,可能存在如由参考标号248、250、252所示的用于图2中所示的每一像素格式转换器210的像素格式信息。在一个实施例中,注册表中每一像素格式转换器的信息可包括转换器名228、可用于唯一标识转换器的GUID 230、以及可各自表示诸如由对图2中所示的每一像素格式222的引用254、256和258所示的各个像素格式的标识符的像素格式GUID 232的列表。在各个其它实施例中,可与每一像素格式转换器的信息一起包括其它属性,包括厂商名、像素格式转换器的可执行代码的标识符等。
本领域的技术人员可以理解图2中所示的可扩展编解码器体系结构仅是用于实现本发明的一个示例性实施例,且可使用其它计算系统配置来实现本发明。例如,可提供应用程序的解码器而不提供编码器,它可对图像文件中的图像解码但不将信息编码成图像文件。作为另一示例,为了便于对编解码器创建的任何图像像素格式解码和编码,可由每一编解码器提供像素格式转换器来在该编解码器的像素格式和诸如32位PARGB或128位PABGR等一个或多个规范格式之间来回转换。
图3呈现了一般表示在可扩展编解码器体系结构的一个实施例中用于对图像文件执行成像操作而采取的示例性步骤的流程图。本领域的技术人员可以理解一种实现可选择以不同的顺序来执行这些步骤或可为效率或灵活性起见选择仅执行这些步骤中的某一些,而同时达到相同的效果且不背离本发明的范围。在步骤302处,可安装编解码器组件。在各个实施例中,可在计算机系统上安装编解码器、解码器和/或编码器。如此处所使用的,编解码器组件可以指的是编解码器、解码器或编码器。作为安装的一部分,编解码器组件可安装一个或多个像素格式转换器,包括用于在该编解码器组件的像素格式与诸如32位PARGB或128位PABGR等常见像素格式之间来回转换的像素格式转换器。
接着,在步骤304中,编解码器组件可在注册表中注册。在一个实施例中,编解码器组件可对自身进行注册来作为安装的一部分。在注册期间,编解码器组件可提供关于自身的信息,包括它可对其执行操作的任何图像格式和像素格式。编解码器组件信息可包括例如,编解码器组件名、用于唯一标识该编解码器组件的标识符、以及诸如编解码器组件的作者姓名、对该编解码器组件的描述、制造商名、图像格式等的其它属性。在各个实施例中,编解码器组件也可提供可用于标识它对其执行操作的图像文件的一个或多个模式。例如,编解码器组件可注册可与图像文件首部中的信息进行比较的一个或多个模式。在一个实施例中,可在编解码器组件所注册的模式与图像文件中的首部信息之间进行比较。
在步骤306处,可接收对图像文件执行成像操作的请求。该请求可用于编解码器组件所支持的任何成像操作,诸如对图像编码或对图像解码。接着,在步骤308处,可发现可对图像文件执行所请求的成像操作的编解码器组件。在各个实施例中,编解码器组件所注册的信息可用于发现计算机系统中所注册的可对图像文件执行所请求的成像操作的编解码器组件。例如,编解码器组件所注册的一个或多个模式可与图像文件进行匹配来标识是否存在编解码器组件可对图像文件执行的任何操作。这样的操作可包括,对图像文件中的一些图像解码、对图像文件中的图像编码、枚举图像文件中的元数据、对图像文件中的元数据编码、对图像文件中的缩略图解码等。如此处所使用的,成像操作指的是成像组件提供的包括操纵描述数字图像的元数据在内的用于操纵数字图像的任何操作。
然后可在步骤310中从所标识的可对图像文件执行操作的编解码器组件中选择一编解码器组件。在一个实施例中,可请求使用来自注册表的信息发现的编解码器组件枚举各自可对图像文件执行的操作。然后,可基于每一编解码器组件可对图像文件执行的操作的类型来选择编解码器组件。图4可更详细地表示一个这样的实施例中所采取的步骤。在另一实施例中,可向诸如应用程序等可执行码提供所标识的可对图像文件执行操作的编解码器组件的列表,且可执行码可选择要用于对图像文件执行操作的编解码器组件。
然后,在步骤312处,可确定编解码器组件是否需要像素格式转换来对图像文件执行成像操作。如果步骤310处所选的编解码器组件支持该图像文件的像素格式,则编解码器组件可对图像文件执行所请求的操作而无需像素格式转换。然而,可能不存在计算机系统中所注册的可使用图像文件的像素格式来执行成像操作的编解码器组件,而可在步骤310处选择可对该类型的图像的不同像素格式执行所请求的成像操作的编解码器组件。在这种情况中,可在步骤312处确定编解码器组件需要像素格式转换来对图像文件执行成像操作,且在步骤314处可执行像素格式转换。在一个实施例中,可使用像素格式转换器来将图像中的像素格式转换成步骤310处所选的编解码器组件所支持的像素格式以便对图像文件执行所请求的成像操作。图5可更详细地表示一个这样的实施例中所采取的步骤。
如果在步骤312处确定编解码器组件不需要像素格式转换来对图像文件执行成像操作,则在步骤316处编解码器组件可对图像文件执行成像操作。当在步骤318处编解码器组件对图像文件执行了成像操作之后,可结束处理。
在各个实施例中,应用程序可使用应用程序接口来安装和发现诸如编解码器等成像组件以便选择来对图像文件执行成像操作。这可允许应用程序使用可扩展元数据体系结构而不必公布(make public)诸如编解码器组件等成像组件。而且,当应用程序退出时,成像组件可被卸载,使得成像组件不能供另一应用程序使用。
图4是一般表示在一个实施例中用于选择编解码器组件来对图像文件执行成像操作所采取的示例性步骤的流程图。在步骤402处,可实例化在图3中的步骤308处通过使用来自注册表的信息标识的编解码器组件。在步骤404处,如果在成像操作请求中指示了优选编解码器厂商,则然后可实例化优选编解码器厂商所提供的编解码器组件。在步骤406处,可请求每一编解码器组件可对图像文件执行的属性和/或操作的枚举。在一个实施例中,编解码器组件可调用接口来枚举编解码器组件可执行的操作。
在步骤408处,可对每一编解码器组件所枚举的它可对图像文件执行的每一操作分配权重。在一个实施例中,诸如解码器等编解码器组件可响应,它可对一个帧解码、或者它可对元数据解码、或者它可对缩略图解码等。这些操作中的每一个将被分配一权重。例如,可对能够对图像文件中的所有图像解码分配权重8;可对能够对图像文件中的某些图像解码分配权重4;可对能够对缩略图图像解码分配权重2;以及可对能够对元数据解码分配权重1。
在对每一编解码器组件所枚举的它可对图像文件执行的每一操作分配了权重之后,在步骤410处可选择具有分配给所枚举的可对图像文件执行的操作的权重的最大总和的编解码器组件。在选择了编解码器组件之后,可结束处理。
图5呈现了一般表示一个实施例中用于执行像素格式转换所采取的示例性步骤。例如,可执行像素格式转换来将图像中的像素格式转换成诸如图3中步骤310处所选的可对该类型图像的不同像素格式执行所请求的成像操作的编解码器等编解码器组件所支持的像素格式。在步骤502处,可对一列像素格式转换器列表搜索可执行从数字图像的像素格式到另一像素格式的转换的一个或多个像素格式转换器。在一个实施例中,注册表可包括关于安装在计算机系统中的每一像素格式转换器的信息,包括与该像素格式转换器一起注册的该转换器可转换的像素格式列表。对像素格式转换器可转换成的每一像素格式,也可生成可从该像素格式转换成另一像素格式的像素格式转换器列表。在一个实施例中,可能存在一个或多个规范像素格式,每一成像组件可对其安装用于在这些规范像素格式与成像组件所支持的像素格式之间转换的一个或多个像素格式转换器。这可提供从源像素格式转换成一个或多个中间像素格式然后再转换成目标像素格式的一种方式。
在步骤504处,可选择用于将数字图像的像素格式转换成成像组件所支持的像素格式的一个或多个像素格式转换器的组合。在一个实施例中,如果存在计算机系统中安装并注册的将图像中的像素格式转换成成像组件所支持的像素格式的单个像素格式转换器,则可使用这一单个像素格式转换器。否则,可使用若干像素格式转换器将图像中的像素格式转换成一个或多个中间像素格式,之后中间像素格式可被转换成成像组件所支持的像素格式。图6可更详细地呈现一个这样的实施例中所采取的步骤。
一旦选择了用于执行转换的一个或多个像素格式转换器的组合,在步骤506处可使用被选择来将数字图像的像素格式转换成成像组件所支持的像素格式的该一个或多个像素格式转换器的组合来执行一个或多个像素格式转换。在执行了像素转换之后,可结束处理。
图6呈现了一般表示在一个实施例中用于选择一个或多个像素格式转换器以便执行像素格式转换所采取的示例性步骤的流程图。在步骤602处,可确定在一像素格式转换器列表中是否存在可将数字图像的像素格式转换成成像组件所支持的像素格式的像素格式转换器。如果是,则可在步骤608处选择该像素格式转换器以便执行像素格式转换。如果否,则可在步骤604处确定在该像素格式转换器列表中是否存在可将数字图像的像素格式转换成中间像素格式的像素格式转换器,以及在该像素格式转换器列表中是否存在可将图像从该中间像素格式转换成成像组件所支持的像素格式的另一像素格式转换器。如果是,则可在步骤608处选择这两个像素格式转换器以便执行像素格式转换。
如果否,则可在步骤606处确定是否存在可被选择以便首先将数字图像的像素格式转换成中间像素格式然后再转换成常见像素格式的两个像素转换器,以及是否可能存在可被选择以便从该常见像素格式转换成成像组件所支持的像素格式的第三像素格式转换器。如果是,则可在步骤608处选择这三个像素格式转换器以便执行像素格式转换。在一个实施例中,每一成像组件可安装一个或多个像素格式转换器以便在规范像素格式与成像组件所支持的像素格式之间转换。这可允许将图像格式转换成常见像素格式然后再从该常见像素格式转换成成像组件所支持的像素格式。当选择中间规范格式时,可首先选择具有最高保真度的规范格式。例如,在一个实施例中,枚举转换器可支持的规范格式的列表可指示位深度的保真度,诸如128位。以此方式,该系统和方法可支持所引入的新图像格式可用的最高保真度。
如从前述详细描述可见到的,本发明提供一种用于数字图像的可扩展编解码器体系结构的改进的系统和方法。该系统和方法可有利地允许安装并发现可枚举其对数字图像执行成像操作的能力的新成像组件。该系统和方法可因此灵活地支持数字图像的新图像格式和新像素格式的添加。所提供的框架也可无缝地支持使用图像格式和对现有格式的扩展的第三方实现的应用。而且,该系统和方法可自动将新像素图像格式转换成可由安装在计算机系统上的成像组件识别的像素图像格式。如现在所理解的,该系统和方法因此提供当代计算中所需的显著优点和好处。
尽管本发明易于作出各种修改和替换构造,但其某些示出的实施例在附图中示出并在以上详细描述。然而,应理解不旨在将本发明限于所公开的特定形式,而是相反,旨在覆盖落入本发明的精神和范围内的所有修改、替换构造和等效方案。

Claims (17)

1.一种用于提供数字图像的可扩展编解码器体系结构的计算机系统,包括:
用于在所述计算机系统中安装多个成像组件的安装组件,所述成像组件允许灵活地向所述成像组件添加数字图像的新图像格式和新像素格式,并且还允许将新像素图像格式自动转换成可由其它成像组件识别的像素图像格式;
用于在所述计算机系统中注册所述多个成像组件,使得所述成像组件中的至少一个可被发现供在执行成像操作时使用的注册组件;
用于接收对数字图像执行成像操作的请求的接收组件;
用于发现用于对所述数字图像执行所述成像操作的一个或多个成像组件的发现组件,所述成像组件包括可由所述成像组件对所述数字图像执行的多个操作;
用于从所述多个成像组件中选择一成像组件来对所述数字图像执行所述成像操作的选择组件,其中所选择的成像组件具有为每一可执行操作分配的权重总和,该总和大于为可由另一成像组件执行的每一可执行操作分配的权重总和;
用于确定是否对所述数字图像的像素格式执行像素格式转换的确定组件;
用于在要执行像素格式转换的情况下对所述数字图像执行像素格式转换的转换组件;以及
用于使用所选择的成像组件来对所述数字图像执行所述成像操作的执行组件。
2.如权利要求1所述的系统,其特征在于,还包括用于接收所述对数字图像执行成像操作的请求的成像应用程序编程接口组件。
3.如权利要求1所述的系统,其特征在于,还包括用于请求所述成像组件枚举所述成像组件可对所述数字图像执行的成像操作的编解码器仲裁器。
4.如权利要求1所述的系统,其特征在于,还包括用于将所述数字图像的像素格式转换成另一像素格式的像素格式转换器。
5.如权利要求1所述的系统,其特征在于,还包括用于提供关于所述计算机系统中所注册的成像组件的信息的注册表组件。
6.一种在计算机系统中用于提供数字图像的可扩展编解码器体系结构的方法,包括:
在所述计算机系统中安装多个成像组件,所述成像组件允许灵活地向所述成像组件添加数字图像的新图像格式和新像素格式,并且还允许将新像素图像格式自动转换成可由其它成像组件识别的像素图像格式;
在所述计算机系统中注册所述多个成像组件,使得所述成像组件中的至少一个可被发现供在执行成像操作时使用;
接收对数字图像执行成像操作的请求;
发现用于对所述数字图像执行所述成像操作的一个或多个成像组件,所述成像组件包括可由所述成像组件对所述数字图像执行的多个操作;
从所述多个成像组件中选择一成像组件来对所述数字图像执行所述成像操作,其中所选择的成像组件具有为每一可执行操作分配的权重总和,该总和大于为可由另一成像组件执行的每一可执行操作分配的权重总和;
确定是否对所述数字图像的像素格式执行像素格式转换;
在要执行像素格式转换的情况下对所述数字图像执行像素格式转换;以及
使用所选择的成像组件来对所述数字图像执行所述成像操作。
7.如权利要求6所述的方法,其特征在于,所述在计算机系统中安装成像组件包括安装可用于将所述数字图像从一个像素格式转换成另一像素格式的一个或多个像素格式转换器。
8.如权利要求6所述的方法,其特征在于,所述在计算机系统中注册成像组件包括注册所述成像组件可对其执行操作的一个或多个像素格式。
9.如权利要求6所述的方法,其特征在于,所述在计算机系统中注册成像组件包括,注册可用于确定所述成像组件是否可对所述数字图像执行所述成像操作的一个或多个模式。
10.如权利要求6所述的方法,其特征在于,所述发现用于对数字图像执行成像操作的成像组件包括使用所述成像组件在注册表中注册的信息。
11.如权利要求6所述的方法,其特征在于,所述选择一成像组件来对数字图像执行所述成像操作包括请求所述成像组件枚举所述成像组件可对所述数字图像执行的成像操作。
12.如权利要求6所述的方法,其特征在于,所述选择一成像组件来对所述数字图像执行所述成像操作包括:
实例化所述成像组件;以及
请求枚举所述成像组件可对所述数字图像执行的操作。
13.如权利要求6所述的方法,其特征在于,所述确定是否要对数字图像的像素格式执行像素格式转换包括确定被选择来对所述数字图像执行所述成像操作的所述成像组件是否包括可对所述数字图像的图像类型的不同像素格式执行所请求的成像操作的成像组件。
14.如权利要求6所述的方法,其特征在于,所述对数字图像执行像素格式转换包括:
对一像素格式转换器列表搜索可执行所述数字图像的所述像素格式到另一像素格式的转换的一个或多个像素格式转换器;
选择用于将所述数字图像的所述像素格式转换成所选来对所述数字图像执行所述成像操作的成像组件所支持的像素格式的一个或多个像素格式转换器的组合;以及
使用所述一个或多个像素格式转换器的组合来执行一个或多个像素格式转换,以便将所述数字图像的所述像素格式转换成所选来对所述数字图像执行所述成像操作的成像组件所支持的像素格式。
15.如权利要求14所述的方法,其特征在于,所述选择用于将数字图像的像素格式转换成所选来对数字图像执行成像操作的成像组件所支持的像素格式的一个或多个像素格式转换器的组合包括:
确定在所述像素格式转换器列表中是否存在可将所述数字图像的所述像素格式转换成所选来对所述数字图像执行所述成像操作的成像组件所支持的像素格式的像素格式转换器,如果是,则选择所述像素格式转换器作为用于将所述数字图像的所述像素格式转换成所选来对所述数字图像执行所述成像操作的成像组件所支持的像素格式的所述一个或多个像素格式转换器的组合;
如果否,则确定在所述像素格式转换器列表中是否存在可将所述数字图像的所述像素格式转换成第一中间像素格式的第一像素格式转换器,以及在所述像素格式转换器列表中是否存在可将所述第一中间像素格式转换成所选来对数字图像执行成像操作的成像组件所支持的像素格式的第二像素格式转换器,如果是,则选择所述第一像素格式转换器和所述第二像素格式转换器作为用于将所述数字图像的所述像素格式转换成所选来对所述数字图像执行所述成像操作的成像组件所支持的像素格式的所述一个或多个像素格式转换器的组合;以及
如果否,则确定在所述像素格式转换器列表中是否存在可将所述数字图像的所述像素格式转换成第一中间像素格式的第一像素格式转换器,在所述像素格式转换器列表中是否存在可将所述第一中间像素格式转换成第二中间像素格式的第二像素格式转换器,以及是否存在用于将所述第二中间像素格式转换成所选来对数字图像执行成像操作的成像组件所支持的像素格式的第三像素格式转换器,如果是,则选择所述第一像素格式转换器、所述第二像素格式转换器和所述第三像素格式转换器作为用于将所述数字图像的所述像素格式转换成所选来对所述数字图像执行所述成像操作的成像组件所支持的像素格式的所述一个或多个像素格式转换器的组合。
16.如权利要求6所述的方法,其特征在于,使用所述成像组件来对所述数字图像执行所述成像操作包括使用编解码器来对所述数字图像执行所述成像操作。
17.如权利要求6所述的方法,其特征在于,所述数字图像包括多个图像的单个图像文件中所包括的不同图像格式。
CN2005800480351A 2005-02-17 2005-07-28 用于提供数字图像的可扩展编解码器体系结构的系统和方法 Expired - Fee Related CN101116088B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/062,301 US7502516B2 (en) 2005-02-17 2005-02-17 System and method for providing an extensible codec architecture for digital images
US11/062,301 2005-02-17
PCT/US2005/026790 WO2006088495A2 (en) 2005-02-17 2005-07-28 Providing an extensible codec architecture for images

Publications (2)

Publication Number Publication Date
CN101116088A CN101116088A (zh) 2008-01-30
CN101116088B true CN101116088B (zh) 2010-06-16

Family

ID=36816998

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2005800480351A Expired - Fee Related CN101116088B (zh) 2005-02-17 2005-07-28 用于提供数字图像的可扩展编解码器体系结构的系统和方法

Country Status (4)

Country Link
US (1) US7502516B2 (zh)
KR (1) KR101201188B1 (zh)
CN (1) CN101116088B (zh)
WO (1) WO2006088495A2 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7706629B2 (en) 2006-02-24 2010-04-27 Apple Inc. Methods and apparatuses for pixel transformations
US8775474B2 (en) 2007-06-29 2014-07-08 Microsoft Corporation Exposing common metadata in digital images
US20100191765A1 (en) * 2009-01-26 2010-07-29 Raytheon Company System and Method for Processing Images
KR20110095800A (ko) * 2010-02-19 2011-08-25 삼성전자주식회사 코덱에 의해 압축된 동영상 컨텐트 전송 방법 및 그 장치
CN114600166A (zh) * 2020-10-30 2022-06-07 深圳市大疆创新科技有限公司 图像处理方法、图像处理装置和存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6587735B1 (en) * 1999-05-10 2003-07-01 Canon Kabushiki Kaisha Data processing apparatus and processor selection method

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5583665A (en) * 1995-02-13 1996-12-10 Eastman Kodak Company Method and apparatus for performing color transformations using a reference image combined with a color tracer
US6512924B2 (en) * 1997-10-01 2003-01-28 Ntt Mobile Communications Network Inc. Mobile communications system
SG75190A1 (en) * 1998-12-14 2000-09-19 Canon Kk Image processing method and apparatus image processing system and storage medium
EP2802120A1 (en) * 2000-03-30 2014-11-12 Sony Corporation Apparatus and method for setting up a content schedule
US20020046315A1 (en) * 2000-10-13 2002-04-18 Interactive Objects, Inc. System and method for mapping interface functionality to codec functionality in a portable audio device
US8126276B2 (en) * 2001-02-21 2012-02-28 International Business Machines Corporation Business method for selectable semantic codec pairs for very low data-rate video transmission
MXPA04002722A (es) * 2001-09-26 2005-11-04 Interact Devices Inc Sistema y metodo para comunicar senales de medios.
ES2741016T3 (es) * 2003-10-07 2020-02-07 Librestream Tech Inc Cámara para comunicar una transmisión continua multimedia a un Cliente Remoto
KR100617702B1 (ko) * 2004-01-13 2006-08-28 삼성전자주식회사 이미지 편집이 가능한 휴대용 단말기 및 이를 이용한이미지 편집 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6587735B1 (en) * 1999-05-10 2003-07-01 Canon Kabushiki Kaisha Data processing apparatus and processor selection method

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Photoshop 7 basic user manual.2002,1-11. *

Also Published As

Publication number Publication date
US20060184783A1 (en) 2006-08-17
WO2006088495A3 (en) 2007-08-02
KR20070111487A (ko) 2007-11-21
US7502516B2 (en) 2009-03-10
CN101116088A (zh) 2008-01-30
WO2006088495A2 (en) 2006-08-24
KR101201188B1 (ko) 2012-11-13

Similar Documents

Publication Publication Date Title
CN101330621B (zh) 解码和显示经压缩视频数据的方法和系统
WO2022142896A1 (zh) 可视化模板的生成方法、装置、设备及存储介质
CN101395572A (zh) 适用于分布式内容的辅助显示小配件
CN100378648C (zh) 创建卷映像
CN101467462A (zh) 在变换的数字媒体内容中保留关于数字媒体权限的信息
CN101116088B (zh) 用于提供数字图像的可扩展编解码器体系结构的系统和方法
CN101627364A (zh) 用于标识随遵循设备分发的硬件和软件许可证的数据结构
CN101401117A (zh) 基于edi实例的交易集合定义
CN101443753A (zh) 用于数字图像的可扩展元数据体系结构的系统和方法
CN101390122A (zh) Edi交换的可缩放变换和配置
US20180213104A1 (en) Information processing system, information processing apparatus, and information processing method
US20200195809A1 (en) Information processing system, information processing apparatus, and information processing method
US20100247076A1 (en) Image supply apparatus, image supply system, image supply method, and computer program product
CN101563684A (zh) 统一存储安全模型
US20060184554A1 (en) System and method for extensible metadata architecture for digital images using in-place editing
CN1783015A (zh) 启用子系统间的资源共享
US6816277B2 (en) Systems and methods for converting image data
US20090109199A1 (en) Display control apparatus, display control method and program
CN101535974A (zh) 远程控制存储在设备上的内容的回放
US8443111B2 (en) Communication method to transfer user operation information between electronic device and host device and electronic device using the same
US20190095636A1 (en) Information processing device and medium storing information processing program
US20070076750A1 (en) Device driver interface architecture
CN101766027B (zh) 以电视为中心的系统
US7509485B2 (en) Method for loading a program module in an operating system
JP2008287725A (ja) リモート処理サービス・システムおよび方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150427

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150427

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100616

Termination date: 20200728