CN102761740A - 使用存储器破坏来快速估计二进制数据长度 - Google Patents

使用存储器破坏来快速估计二进制数据长度 Download PDF

Info

Publication number
CN102761740A
CN102761740A CN2012100976772A CN201210097677A CN102761740A CN 102761740 A CN102761740 A CN 102761740A CN 2012100976772 A CN2012100976772 A CN 2012100976772A CN 201210097677 A CN201210097677 A CN 201210097677A CN 102761740 A CN102761740 A CN 102761740A
Authority
CN
China
Prior art keywords
data set
mark
finger url
data
memory cell
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
CN2012100976772A
Other languages
English (en)
Other versions
CN102761740B (zh
Inventor
布雷特·斯图尔特·福斯特
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.)
Maliki Innovation Co ltd
Original Assignee
Research in Motion Ltd
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 Research in Motion Ltd filed Critical Research in Motion Ltd
Publication of CN102761740A publication Critical patent/CN102761740A/zh
Application granted granted Critical
Publication of CN102761740B publication Critical patent/CN102761740B/zh
Active 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/65Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience
    • H04N19/68Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience involving the insertion of resynchronisation markers into the bitstream

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本文描述了用于处理包括第二数据集和第三数据集在内的第一数据集以定位所述第三数据集的方法和相关设备的各种实施例。所述第二数据集具有可变数据长度,并以结束标记终止,且所述第三数据集在所述结束标记之后开始。所述方法涉及:通过存储多个定位符标记来预处理存储器单元,在所述存储器单元中存储所述第一数据集,从而覆盖所述多个定位符标记中的一部分;对所述多个定位符标记中的最接近所述第一数据集的结束的那个定位符标记进行定位;以及通过基于所述最接近的定位符标记的位置搜索所述第二数据集的结束标记,来定位所述第三数据集。

Description

使用存储器破坏来快速估计二进制数据长度
交叉引用
本申请要求于2011年4月26日提交的美国临时申请No.61/479,227的优先权,并以引用的方式将其全文并入本文中。
技术领域
本文所述的各种实施例总体上涉及用于处理可变长度数据的方法和***。
背景技术
在电子设备中持续增加新的应用。例如,各种电子设备现在包括用于捕捉图像的相机单元。相机单元产生图像数据,该图像数据一般是使用用于产生JPEG图像数据的JPEG标准来编码的。此外,产生与JPEG图像数据相对应的未压缩的或原始的缩略图图像数据,并将其附加到JPEG数据之后。然后处理该原始缩略图图像数据,并将其显示在电子设备的显示器上,以供用户查看。相机可以连续获取图像,以该方式处理并在显示器上显示图像,同时用户决定捕捉哪个或哪些图像并在设备存储器中存储哪个或哪些图像。
由于基于相机单元捕捉的场景中的元素,JPEG图像数据具有可变数据大小,因此其是可变长度数据。例如,作为针对完全不同的场景捕捉的图像的结果,或作为在场景中的光或噪声的量存在巨大变化的条件下捕捉的图像的结果,JPEG数据集的大小可以有很大不同。因此,JPEG图像数据的大小可以根据相机单元捕捉的场景的图像或捕捉图像所处的条件而发生变化。由于在特定情况下,处理可变长度图像数据会是非常有挑战性的,因此这可能导致一些困难。
发明内容
附图说明
为了更好的理解本文描述的各种实施例,且更清楚地示出如何实现这些各种实施例,将参考作为示例的附图,这些附图示出了至少一个示例实施例,且在这些附图中:
图1是具有一个示例实施例的相机单元的移动设备的框图;
图2是图1的移动设备的通信子***组件的示例实施例的框图;
图3是一个示例实施例的无线网络的节点的框图;
图4是处理包括可变长度数据在内的图像数据的方法的示例实施例的流程图;
图5a是在根据图4的方法的预处理之后的存储器单元的说明图;
图5b是在存储图像数据之后的图5a的存储器单元的第一示例的说明图;
图6a是在根据图4的方法的预处理之后的存储器单元的说明图;
图6b是在存储图像数据之后的图6a的存储器单元的第二示例的说明图;
图7a是在根据图4的方法的预处理之后的存储器单元的说明图;以及
图7b是在根据图4的方法的备选版本的部分预处理之后的存储器单元的说明图;
具体实施方式
应当意识到为了说明的简单和清楚,在认为恰当的地方,在附图之间可以重复引用标号,以指示对应或相似的单元。此外,为了提供对本文所述实施例的全面理解,阐述了大量具体细节。然而,本领域普通技术人员应当理解,可以在没有这些具体细节的情况下实现本文所述的实施例。在其它实例中,并未详细描述众所周知的方法、过程和组件,以突出本文所述的实施例。此外,不应将描述视为对本文所述的实施例的范围加以限制。还应当注意到,术语“耦合”指示了两个单元可以直接彼此耦合或通过一个或多个中间单元彼此耦合。具体实施方式将首先对具有相机单元的移动设备进行一般性描述,然后进展到对可以与用于处理包括可变长度数据在内的图像数据的设备一起使用的方法的示例实施例进行描述。
为了帮助读者理解移动设备的结构,现在将参考图1至3。然而,应当理解本文所述实施例不局限于移动设备,而是可以扩展到包括相机的或处理可变长度数据的任何电子设备。这种电子设备一般包括具有相机的任何便携式电子设备,比如:蜂窝电话、蜂窝智能电话、无线组织器、个人数字助理、计算机、膝上型计算机、手持无线通信设备、支持无线通信的笔记本计算机、平板计算机或电子阅读器、电子安保设备、无线互联网装置等等。本文列出的可以移动的电子设备一般是便携式的,且从而是电池供电的,并可以具有有限的处理能力。尽管这些设备中的一些设备包括无线通信能力,但是另一些是不与其他设备通信的孤立设备。
参见图1,其中示出了移动设备100的一个示例的框图。移动设备100包括大量组件,控制组件是微处理器102,其控制移动设备100的整体操作。通过通信子***104来执行包括数据和语音通信在内的通信功能。通信子***104从无线网络200接收消息并向无线网络200发送消息。在本示例中,根据全球移动通信***(GSM)和通用分组无线服务(GPRS)标准来配置通信子***104。在其它实施例中,可以根据如下所述的其他通信标准来配置通信子***104。依然在定义新的标准,但是相信它们将具有与本文所述的网络行为相似之处,且本领域技术人员将理解本文所述的各种实施例应当能够适于与未来开发出的任何其他合适的标准一起工作。将通信子***104与无线网络200相连的无线链路表示一个或多个不同的射频(RF)信道,这些射频信道根据GSM/GPRS通信所指定的限定协议来工作。在较新的网络协议中,这些信道能够既支持电路交换语音通信,也支持分组交换数据通信。
尽管与移动设备100相关联的无线网络200在本示例中是GSM/GPRS无线网络,但是在变形实施例中,移动设备100可以使用其他无线网络。例如,可以利用的不同类型的无线网络包括(但不限于):数据中心型无线网络、语音中心型无线网络、和能够通过相同物理基站既支持语音通信也支持数据通信的双模网络。网络的示例还包括(但不限于):码分多址(CDMA)、CDMA2000网络、GSM/GPRS网络、3G网络(比如EDGE、W-CDMA和UMTS)、4G/LTE网络和未来技术(比如5G网络)。数据中心型网络的一些其他示例包括:802.11、MobitexTM和DataTACTM网络通信***。语音中心型数据网络的示例包括:个人通信***(PCS)网络(如GSM)和时分多址(TDMA)***。移动设备100可以适于使用的通信协议/标准的示例包括(但不限于):3GPP和3GPP2、高速分组接入(HSPA)标准(比如高速下行链路分组接入(HSDPA))、3GPP LTE、LTE、高级LTE、WiMax和Flash-OFDM。
微处理器102还与附加子***交互,比如:随机存取存储器(RAM)106、闪存108、显示器110、辅助输入/输出(I/O)子***112、数据端口114、键盘116、扬声器118、麦克风120、短距通信122和其它设备子***124。
移动设备100的一些子***执行通信相关功能,反之其他子***可以提供“驻留”功能或机载(on-device)功能。作为示例,显示器110和键盘116可以既用于通信相关功能,比如输入通过网络200发送的文本消息,也可以用于设备驻留功能,比如计算器或任务列表。一般在持久性存储器(比如闪存108)中存储由微处理器102使用的操作***软件,闪存108备选地可以是只读存储器(ROM)或类似的存储器单元(未示出)。本领域技术人员将意识到,可以将操作***、特定设备应用或它们的一部分临时加载到易失性存储器中,比如RAM106。
移动设备100可以在已完成了网络注册或激活过程之后,通过无线网络200发送和接收通信信号。网络接入与移动设备100的订户或用户相关联。为了识别订户,移动设备100可以使用要***SIM/RUIM接口128的SIM/RUIM卡126(即,订户识别模块或可拆卸式用户识别模块),以与网络通信。SIM卡或RUIM卡126是一种类型的常规“智能卡”,其可以用于识别移动设备100的订户,并对移动设备100进行个性化等。在没有SIM 126的情况下,在与无线网络200的通信方面,移动设备100不是完全可操作的。通过向SIM/RUIM接口128***SIM卡/RUIM 126,订户可以接入所有订购的服务。服务可以包括:网页浏览和通讯(比如,电子邮件、语音邮件、SMS和MMS)。更高级的服务可以包括:销售点(point of sale)、现场服务和销售队伍自动化。SIM卡/RUIM 126包括处理器和用于存储信息的存储器。一旦将SIM卡/RUIM 126***SIM/RUIM接口128时,其耦合到微处理器102。为了识别订户,SIM卡/RUIM 126包含一些用户参数,比如国际移动订户标识(IMSI)。使用SIM卡/RUIM 126的优点是订户不需要与任何单一物理移动设备绑定。SIM卡/RUIM 126还可以存储移动设备的附加订户信息,包括记事簿(或日历)信息以及最近的呼叫信息。备选地,也可以将用户识别信息编程到闪存108中。
移动设备100是电池供电的设备,且包括电池接口132,并使用电池单元130中的一个或多个可充电电池。电池接口132耦合到调节器(未示出),调节器在向移动设备100提供功率V+方面协助电池单元130。备选地,电池单元130可以是本领域中已知的智能电池。智能电池一般包括:电池处理器、电池存储器、切换和保护电路、测量电路和包括一个或多个电池的电池组,该一个或多个电池一般是可充电的。在任一情况下,电池单元130中的一个或多个电池可以由锂、镍镉、锂离子或其他合适的合成材料制成。
微处理器102,除了其操作***功能之外,还使得能够在移动设备100上执行软件应用134。一般在制造移动设备100期间在移动设备100上安装包括数据和语音通信应用在内的控制基本设备操作的软件应用134的子集。当微处理器102执行任何软件应用134时,可以将微处理器102视为被配置为:执行根据软件应用134的代码所指定的方法的一定数目的步骤。
软件应用134包括消息应用136,消息应用136可以是允许移动设备100的用户发送和接收电子消息的任何合适的软件应用。如本领域技术人员众所周知的,对于消息应用136,可以存在各种备选。一般将用户已发送或接收的消息存储在移动设备100的闪存108或移动设备100中的其它合适存储单元中。在备选实施例中,可以将已发送和接收到的消息中的一些远离设备100加以存储,比如在与移动设备100通信的相关联的主机***的数据存储器中。例如,在一些情况下,在设备100中可以仅存储最近的消息,同时可以在远程位置中存储较老的消息,比如在与消息服务器相关联的数据存储器中。当设备100的内部存储器满了或当消息已达到特定“年龄”时,这可以发生,例如可以在远程位置处存储老于3个月的消息。在备选实施例中,可以在远程位置中存储所有消息,同时可以在移动设备100上仅存储最近的消息。
移动设备100还包括相机模块138、设备状态模块140、地址簿142、个人信息管理器(PIM)144、和其他模块146。相机模块138用于控制移动设备100的相机操作,相机操作包括:获得与移动设备100拍摄的图像相关联的原始缩略图图像数据,预处理该原始缩略图图像数据,以及在显示器110上显示处理过的缩略图图像数据。下文中更详细地讨论相机模块138的操作。
设备状态模块140提供持久性,即,设备状态模块140确保在持久性存储器(比如闪存108)中存储重要的设备数据,使得在移动设备100关闭或掉电时该数据不丢失。地址簿142提供用户的联系人列表的信息。对于地址簿142中的给定联系人,该信息可以包括:联系人的姓名、电话号码、工作地址和电子邮件地址等信息。其它模块146可以包括配置模块以及可以结合SIM/RUIM接口128一起使用的其它模块。
PIM 144具有用于组织和管理订户感兴趣的数据项的功能,数据项是例如(但不限于):电子邮件、日历事件、语音邮件、约会和任务项。PIM应用具有经由无线网络200发送和接收数据项的能力。PIM数据项可以经由无线网络200与移动设备订户在主机计算机***上存储的和/或关联的对应数据项进行无缝整合、同步和更新。该功能在移动设备100上关于这种项创建了镜像的主机计算机***。当主机计算机***是移动设备订户的办公室计算机***时,这是特别有利的。
还可以通过以下至少一项将附加应用加载到移动设备100上:无线网络200、辅助I/O子***112、数据端口114、短距通信子***122或任何其它合适的设备子***124。该应用安装的灵活性增加了移动设备100的功能,并可以提供增强的机载功能、通信相关功能、或二者兼而有之。例如,安全通信应用可以使得能够使用移动设备100来执行电子商务功能和其它这种金融交易。
数据端口114通过向移动设备100提供不同于经由除无线通信网络的信息或软件下载的提供,使得订户能够通过外部设备或软件应用来设置首选项,以及扩展移动设备100的能力。备选的下载路径可以例如用于通过直接并从而可靠和可信的连接向移动设备100加载加密密钥,来提供安全设备通信。
数据端口114可以是使得在移动设备100和另一计算设备之间的数据通信成为可能的端口。数据端口114可以是串行端口或并行端口。在一些实例中,数据端口114可以是USB端口,USB端口包括用于数据传输的数据线和可以提供用于向移动设备100充电的充电电流的供电线。
短距通信子***122在不使用无线网络200的情况下提供移动设备100和不同***或设备之间的通信。例如,子***122可以包括红外设备和相关联的电路,以及包括用于短距通信的组件。短距通信的示例包括由红外数据联盟(IrDA)开发的标准、Bluetooth、以及由IEEE开发的802.11标准族。
在实际使用中,将由通信子***104来处理接收到的信号,比如文本消息、电子邮件消息或网页下载,并将接收到的信号输入微处理器102。然后微处理器102将处理接收到的信号,用于输出到显示器110或备选地输出到辅助I/O子***112。订户还可以使用例如键盘116与显示器110和可能的辅助I/O子***112来撰写数据项,比如电子邮件消息。辅助子***112可以包括诸如触摸屏、鼠标、轨迹球、红外指纹检测器、或具有动态按钮按压能力的滚轮之类的设备。键盘116优选地是字母数字键盘和/或电话类型键区。然而,也可以使用其他类型的键盘。可以通过通信子***104在无线网络200上发送撰写的项。
对于语音通信,移动设备100的整体操作基本类似,不同在于将接收到的信号输出到扬声器118,由麦克风120来产生用于发送的信号。可以在移动设备100上实现备选的语音或音频I/O子***,比如语音消息记录子***。尽管主要通过扬声器118来完成语音或音频信号输出,显示器110也可以用于提供附加信息,比如主叫方的标识、语音呼叫的时间长度、或其它涉及语音呼叫的信息。
移动设备100还包括允许移动设备100的用户拍摄照片的相机单元148。相机单元148包括相机控制器150、电流驱动单元152、相机镜头子单元154、相机闪光灯子单元156、相机传感器子单元158和图像捕捉输入160。相机控制器150使用从微处理器102和相机模块138接收到的信息和指令,配置相机单元148的操作。应当注意到,针对相机单元148所示的结构和相关描述仅是一个示例实施例,且应当注意到,获得用于在显示器110上查看的相机图像的技术不应当受限于本示例实施例。
当用户选择移动设备100的相机模式时,相机控制器150从微处理器102接收激活信号。然后相机单元148确定可以从电池单元130中抽取的最大相机闪光灯电流以及针对移动设备100的当前物理环境需要由相机闪光灯产生的光的量,使得拍摄到该场景的良好质量的照片;在这点上,可以采用对于本领域技术人员而言公知的各种技术。例如,可以使用变化长度的当前脉冲来产生相机闪光。备选地,可以使用恒定的脉冲长度以及最大幅度设置,且其他元素(比如镜头的光圈)可以变化,以得到具有不同光输出的相机闪光的预期效果。
于是,相机控制器150指示电流驱动单元152在不抽取多于电池单元130所能够允许的最大相机闪光灯电流的前提下产生由相机闪光灯子单元156所使用的相机闪光灯电流。相机控制器150还配置电流驱动单元152,以产生用于致动相机镜头子单元154的电流。电流驱动单元152可以是线性稳压器,其中,线性稳压器的输入电流和线性稳压器的输出电流是相等的。备选地,电流驱动单元152可以是升压稳压器和线性稳压器的组合,以在需要时向相机闪光灯子单元158提供比从电池单元130获得的电流更多数量的电流。备选地,电流驱动单元152可以是降压稳压器和线性稳压器的组合,如果相机闪光灯电压始终小于电池单元电压,则可以使用该组合。备选地,降压和升压电路可以与线性稳压器一起用于电流驱动单元152。
取决于采用的具体配置,相机镜头子单元154包括具有快门和/或光圈的镜头,以及用于打开和关闭快门和/或光圈的组件。备选地,相机镜头子单元154可以包括提供伸缩功能以允许用户拍摄“放大”或“缩小”照片的组件。在其他备选中,相机镜头子单元154可以包括全部这些组件。用于这些备选中每个备选的结构对于本领域技术人员而言是公知的。
相机闪光灯子单元156包括用于产生具有恰当量值或流明(lumen)的光的相机闪光灯,以增加相机单元148所获得的图像质量。然而,由于可以从电池单元130中抽取的用于闪光目的的电流的限制(该限制由最大相机闪光电流所指定),因此相机闪光灯子单元156的输出是受限的。相机闪光灯子单元156一般基于LED闪光技术。在备选实施例中,可以使用其它类型的恰当闪光灯。
相机传感器子单元158捕捉图像数据并向相机控制器150发送图像数据。相机传感器子单元158还使用用于操作的电流,并从电流驱动单元152接收该电流。如本领域技术人员众所周知的,相机传感器子单元158可以基于CMOS传感器技术、CCD传感器技术等。相机控制器150将图像数据转换为所需格式,比如JPEG图像数据,并产生与JPEG图像数据相对应的原始缩略图图像数据。然后相机控制器150将JPEG图像数据和原始的缩略图图像数据相结合,以形成之后在移动设备100的存储器单元(比如RAM 106)中存储的图像数据。
一般而言,图像捕捉输入160是按压按钮致动器,当用户想要拍摄照片时,由用户按动该按压按钮。在备选实施例中,图像捕捉输入160可以是开关或本领域技术人员所公知的某种其他恰当的输入机制。
在实际使用中,用户选择移动设备100的相机模式,且相机控制器150操作相机单元148以连续拍摄图像,并连续产生帧序列的JPEG和原始缩略图图像数据。然后由微处理器102获得并处理每一帧的原始缩略图图像数据,以产生在显示器110上显示的经预处理的图像数据。使用来自后续帧的图像数据的已处理的缩略图数据来连续更新显示器110。当用户在显示器110上看到他或她想要捕捉的图像时,用户激活图像捕捉输入160,然后由微处理器102在恰当的存储器单元(比如闪存108)中保存最新的图像。参照图4来更详细地描述涉及这些步骤的微处理器102的操作。
现在参见图2,示出了图1的通信子***组件104的框图。通信子***104包括:接收机180、发射机182、一个或多个嵌入式或内置天线单元184、186、本地振荡器(LO)188、以及诸如数字信号处理器(DSP)190之类的处理模块。
通信子***104的具体设计取决于移动设备100预期工作所处的网络200;从而应当理解图2所示的设计仅作为一个示例。将天线184通过网络200接收到的信号输入接收机180,接收机180可以执行诸如信号放大、降频转换、滤波、信道选择和模数(A/D)转换之类的公共接收机功能。对接收信号的A/D转换允许更复杂的通信技术,比如要在DSP 190中执行的解调和解码。类似地,由DSP 190处理要发送的信号,包括调制和编码。将这些DSP处理过的信号输入到发射机182,以进行数模(D/A)转换、升频转换、滤波、放大以及经由天线186通过网络200发送。DSP 190不仅处理通信信号,还提供接收机和发射机控制。例如,可以通过在DSP 190中实现的自动增益控制算法来自适应地控制施加到接收机180和发射机182中的通信信号的增益。
移动设备100和网络200之间的无线链路可以包含一个或多个不同的信道(一般是不同的RF信道)以及在移动设备100和网络200之间使用的相关联的协议。由于整体带宽的限制和移动设备100的有限电池功率,因此RF信道是必须保留的有限资源。
当移动设备100处于完全工作状态时,发射机182一般仅在其向网络200发送时才键入(keyed)或打开,且在其他情况下关闭以保留资源。类似地,周期性地关闭接收机180以保留资源,直到需要在指定时间段期间接收信号或信息(如果有的话)。
现在参见图3,将无线网络的节点的框图示出为202。在本示例实施例中,在使用通用分组无线服务(GPRS)和全球移动***(GSM)技术进行操作的情况下,来描述网络及其组件。然而应当理解,在其他实施例中,可以根据其他通信协议来实现网络。在实际中,网络200包括一个或多个节点202。移动设备100与无线网络200中的节点202通信。根据GPRS和GSM技术来配置节点202。节点202包括:具有相关联的塔站206的基站控制器(BSC)204、为了在GSM中支持GPRS而添加的分组控制单元(PCU)208、移动交换中心(MSC)210、归属位置寄存器(HLR)212、访客位置寄存器(VLR)214、服务GPRS支持节点(SGSN)216、网关GPRS支持节点(GGSN)218、以及动态主机配置协议(DHCP)220。该组件列表不意味着其是GSP/GPRS网络中每个节点202的组件的无遗漏的列表,而是在通过网络200进行通信中所常用的组件列表。
在GSM网络中,MSC 210耦合到BSC 204以及陆地线路网络(比如公共交换电话网络(PSTN)222),以满足电路交换条件。通过PCU208、SGSN 216和GGSN 218到公共或私有网络(互联网)224(也被称为共享网络基础结构)的连接表示用于支持GPRS的移动设备的数据路径。在具有GPRS能力扩展的GSM网络中,BSC 204还包含分组控制单元(PCU)208,分组控制单元208连接到SGSN 216以控制分段、无线信道分配并满足分组交换条件。为了针对电路交换和分组交换管理来跟踪移动设备的位置和可用性,在MSC 210和SGSN216之间共享HLR 212。对VLR 214的接入由MSC 210来控制。
站206可以是固定收发信机站,在该情况下,站206和BSC 204一起形成了固定的收发信机设备。固定收发信机设备针对通常被称为“小区”的特定覆盖区域提供了无线网络覆盖。固定的收发信机设备在其小区内经由站206向移动设备发送通信信号并从移动设备接收通信信号。固定的收发信机设备一般执行如下功能:在其控制器的控制下根据特定的(通常是预定的)通信协议和参数对要发送到移动设备的信号进行调制和可能的编码和/或加密。固定的收发信机设备类似地对从在其小区内的移动设备100接收到的任何通信信号进行解调和可能的解码和解密(如果需要)。通信协议和参数在不同的节点之间可以变化。例如,一个节点可以采用与其他节点不同的调制方案,并在不同的频率上工作。
对于注册到特定网络的所有移动设备100,在HLR 212中存储诸如用户简档之类的永久配置数据。HLR 212还包含每个注册的移动设备的位置信息,且可以对其进行查询以确定移动设备的当前位置。MSC 210负责一组位置区域,并在VLR 214中存储当前在其负责区域内的移动设备的数据。此外,VLR 214还包含与访问其他网络的移动设备相关的信息。VLR 214中的信息包括从HLR 212向VLR 214发送的用于更快速接入的永久移动设备数据的一部分。通过将附加信息从HLR 212的远程节点移动至VLR 214,可以减少这些节点之间的业务量,使得可以用更快速的响应时间来提供语音和数据服务,同时使用更少的计算资源。
SGSN 216和GGSN 218是在GSM中为了支持GPRS(即分组交换数据支持)所添加的单元。在无线网络200中,通过跟踪每个移动设备100的位置,SGSN 216和MSC 210具有类似责任。SGSN 216还针对网络200上的数据业务执行安全功能和接入控制。GGSN 218提供与外部分组交换网络的互联连接,并经由在网络200内操作的互联网协议(IP)骨干网网络连接到一个或多个SGSN 216。在正常操作期间,给定的移动设备100必须执行“GPRS附着”来获取IP地址,并接入数据服务。该要求在电路交换语音信道中不存在,因为使用综合服务数字网络(ISDN)地址来对呼入和呼出呼叫进行路由。当前,支持GPRS的网络使用私有的、动态分配的IP地址,并从而使用连接到GGSN 218的DHCP服务器220。存在动态IP分配的很多种机制,包括使用远程认证拨入用户服务(RADIUS)服务器和DHCP服务器的组合。一旦完成GPRS附着,建立从移动设备100通过PCU 208和SGSN 216到达GGSN 218内的接入点节点(APN)的逻辑连接。APN表示IP隧道的逻辑端点,其可以接入直接互联网兼容服务或私有网络连接。APN还表示网络200的安全机制,只要是必须将每个移动设备100分配给一个或多个APN,且在不首先执行对其已被授权使用的APN进行GPRS附着的情况下,移动设备100不能交换数据。可以将APN视为与互联网域名类似,比如“myconnection.wireless.com”。
一旦完成了GPRS附着,则使用在IP分组中可以支持的任何协议,创建隧道并在标准IP分组内交换业务。在虚拟私有网络(VPN)中使用一些IPSecurity(IPsec)连接的情况下,这包括隧道传输方法,比如基于IP的IP。这些隧道也被称为分组数据协议(PDP)上下文,且在网络200中存在有限数目的可用分组数据协议上下文。为了最大化使用PDP上下文,网络200将针对每个PDP上下文运行空闲定时器,以确定是否没有活动。当移动设备100不使用其PDP上下文时,可以解除分配(deallocate)PDP上下文,并将IP地址返回至DHCP服务器220所管理的IP地址池。
主机***250可以是公司企业或其它局域网(LAN),但是在变形实施例中,例如也可以是家庭办公室计算机或某个其他私有***。在一些情况下,主机(host)***250可以表示组织的较大网络的较小部分。一般而言,移动设备通过无线网络200的一个或多个节点202与主机***250无线通信。主机***250可以包括在防火墙或代理服务器后面工作的一个或多个路由器和计算设备。代理服务器将数据路由到主机***250中的正确目的地服务器。例如,主机***250可以包括用于向移动设备发送和接收消息的消息服务器,以及包括对何时、是否、以及如何将消息发送到移动设备进行控制的消息管理服务器。主机***250还可以包括提供主机***250的各种功能的其他服务器以及数据存储器或数据库。
如前所述,相机单元148捕捉场景的JPEG图像数据,并产生对应的原始缩略图图像数据。然后在临时存储器(比如闪存108)中保存该JPEG图像数据和原始缩略图图像数据。然后微处理器102(在备选实施例中,是另一处理器)处理该图像数据,使得可以在显示器110上显示该图像数据。为了执行该处理,可以确定存储器中的原始缩略图图像数据的位置,由于JPEG图像数据一般具有可变大小,因此该确定可能是困难的。进一步使该情形复杂化,相机单元148一般具有不完全或非良好支持JPEG/可变长度数据的捕捉模式,且针对最近帧的图像数据,不提供与在闪存108中存储的JPEG图像数据的大小相关的充足信息。在很多情况下,不向微处理器102提供JPEG图像数据的长度参数。在其他情况下,微处理器102可以获得当前帧的图像的长度参数。然而,一旦微处理器102开始接收下一帧的图像数据时,一般会重置该长度信息,且因此该长度信息不可用于快速定位下一帧的原始缩略图图像。此外,当中断充分高且帧间间隔充分小时,让微处理器102在帧空白时间段期间实时读取长度参数是困难的。因此,为了避开这些问题,相机单元148一般简单地在图像数据中***标准JPEG标记。标准的JPEG标记包括分别在JPEG图像数据之前和之后***的起始标记(即,Start-Of-Image(SOI)标记)和结束标记(即,End-Of-Image(EOI)标记),用于指示JPEG数据的起始和结束。然后原始缩略图数据跟在JPEG数据的结束标记之后。
微处理器102常规上执行JPEG搜索算法,该JPEG搜索算法在接收到的图像数据中搜索JPEG图像数据的结束。用结束标记0xFF0xD9来指示JPEG End-Of-Image(EOI)标记,而用开始或起始标记0xFF 0xD8来指示JPEG Start-Of-Image(SOI)标记。这两个标记都遵从JPEG标准。这些标记或字符序列不太可能出现在JPEG图像数据中的任何位置,但是该标记可能存在于在结束标记之后的原始缩略图图像数据(也被称为未压缩的缩略图数据)中。在常规处理方法中,微处理器102通过搜索SOI和EOI标记来使用搜索算法,以搜索结束标记。当找到结束标记时,则搜索算法确定原始缩略图图像数据的位置。尽管可以对JPEG搜索算法进行算法优化,该优化在最小化实时应用(其一般要求每秒要处理约30帧)中针对结束标记来搜索存储器108所需的时间量和存储器带宽方面的能力有限。因此,对于微处理器102定位必须处理的原始缩略图图像数据以在显示器110上显示而言,以这种方式来搜索结束标记是消耗时间的。该低效率的过程使显示器110的更新速率限制为每秒仅约12至13次,这可能导致丢帧和图像的断续显示。这降低了用户在将移动设备100作为相机使用时的体验质量,且还使得用户难以捕捉所需图像。当由于微处理器102执行各种功能,而导致处理器能力有限时(通常发生在特定电子设备中,比如类似设备100的移动设备),加剧了该缓慢更新速率的问题。
然而,更有效率的方案可以用于通过利用输入的JPEG图像数据和原始缩略图图像数据的属性来定位原始缩略图图像数据。在图4中将该更有效率的技术的示例实施例示出为方法300。在步骤302,用户选择移动设备100上的相机应用,其发起了相机模式并启动相机模块138。在步骤304,相机模块138通过分配这些存储器单元中的一部分或这些存储器单元中包含的缓冲区来预处理存储器单元(即,RAM106或闪存108),用于从相机单元148接收包括当前帧的JPEG图像数据和原始缩略图图像数据在内的输入图像数据。将缓冲区选择为在大小方面足够大,使得输入图像数据填充了部分(但不是全部)缓冲区。例如,可以选择具有5MB大小的缓冲区,因为一般预期输入图像数据将填充缓冲区的约2至3MB。要遵从的经验法则可以是:针对相机单元的解析度的每百万像素(Megapixel),JPEG数据预期是1MB。
一旦分配了缓冲区,相机模块138在缓冲区中间隔每N个字节来存储多个定位符标记,也可以将其称为定位符标记串。因此,可以称缓冲区中的定位符标记是周期性地,且周期等于N,因为在存储器单元中连续的定位符标记间隔N个字节。N可以选择不同的值。例如,N的最小大小(即,下界)可以是定位符标记的大小。N的最大大小(即,上界)与以下事实绑定:N的值越大将导致在估计图像数据的结束方面的更大误差。因此,在初始化或预处理存储器单元以存储定位符标记并同时还将对图像数据的结束的估计方面的误差保持在合理限制之内之间存在平衡。可以选择N的上界为存储器单元的大小的四分之一。实际中,已发现给出良好性能的N的值是约256字节。然而,这对于不同的实施例可以发生变化。通过包括N字节的间隔,可以使用更有效率的搜索技术来获得对图像数据的结束的估计,而不一定对整个缓冲区进行强力(brute force)搜索,如下面更详细解释的。
定位符标记可以是具有特定长度的二进制数据的串。例如,定位符标记的长度可以从1字节到若干字节。然而,通过使用长度一般在1至8字节的定位符标记以及在某些情况下长度在4至8字节的定位符标记,可以获得合适的性能,因为在JPEG图像数据的特定间隔处出现定位符标记中指定的4至8字节的序列的概率不太可能发生。此外,JPEG图像数据具有某些不太可能的序列,所述序列可以用于增强对在定位符标记中使用的二进制数据的选择,使得定位符标记不太可能出现在从相机单元148接收到的JPEG图像数据中。
在步骤306,从相机单元148接收当前帧的图像数据。可以将图像数据视为包含2个子数据集的第一数据集:具有可变数据长度并以结束标记(EOI)终止的JPEG图像数据以及在JPEG结束标记之后开始的原始缩略图图像数据。基于由相机单元148产生的JPEG图像数据的类型,原始缩略图图像数据具有已知大小。例如,原始缩略图图像数据可以具有与640乘480像素的解析度相对应的大小。通过对缓冲区的当前内容进行覆盖,将接收到的图像数据存储在缓冲区中。因此,图像数据覆盖了多个定位符标记中的一部分,而剩余定位符标记并未被修改。如果图像数据大于存储器单元,则可以覆盖所有的定位符标记,且图像数据的传输在到达缓冲区末尾时应当停止。在该情况下,则可以丢弃图像数据的当前帧,且可以处理后续帧的图像数据。
在步骤308,方法300在缓冲区中搜索相对于图像数据的结束的还没有被覆盖的定位符标记的第一实例。可以使用诸如二分搜索之类的搜索算法来找到还没有被破坏的定位符标记出的位置,换言之,对还没有被当前帧的图像数据所覆盖的最接近图像数据的结束的定位符标记进行定位。然后还没有被覆盖的第一定位符标记的位置的信息提供了对图像数据的结束的估计,如将要解释的,其一般在图像数据的实际结束的N个字节之内。在其它实施例中,只要不将方法300的效率降低到不可接受的水平,则可以使用其他合适的搜索算法。
如果在步骤308中使用二分搜索,则检查缓冲区的中央处的第一位置,以查看其是否已被图像数据覆盖。在第一情况下,该第一位置的任意一侧的N字节内的缓冲区的部分包括图像数据和定位符标记。在该情况下,算法已确定最接近图像数据的结束的定位符标记的位置。在第二情况下,当第一位置的任意一侧的N个字节内的缓冲区的部分是空白的且包括定位符标记,则确定缓冲区在第一位置附近未被图像数据覆盖。在该情况下,二分搜索的下一步骤将是检查缓冲区的第二位置的任意一侧的N个字节,该第二位置在第一位置和缓冲区的起始之间的中间。在第三情况下,在第一位置的任意一侧的N个字节中,图像数据已完全覆盖缓冲区。在该情况下,二分搜索的下一步骤将是检查缓冲区的第三位置的任意一侧的N个字节,该第三位置在当前位置和缓冲区的结束之间的中间。在第二和第三情况下,二分搜索将持续把搜索空间减半,并检查分段的任意一侧的N个字节,直到其发现包括图像数据部分和并未被覆盖的定位符标记在内的缓冲区部分。该定位符标记是最接近图像数据的结束的定位符标记。该定位符标记是估计出的缓冲区中已写入或存储的图像数据的结束。
然后在步骤310,基于最接近的定位符标记的位置来确定起始搜索位置。可以基于估计出的图像数据的结束(基于最接近的定位符标记)、原始缩略图图像数据的大小或长度以及保护带(guard band)来确定起始搜索位置。如果N是256字节,则保护带可以是256或512字节。估计出的图像数据的结束一般小于图像数据的实际结束的一个定位符标记距离(即在N个字节之内)。因此,如果N是256字节,则估计出的图像数据的结束一般最多离开图像数据的实际结束约256字节。然而,当定位符标记出现在特定位置上时,可以存在一些稀有的情况,其中,估计出的图像数据的结束被低估了相当多。然后,方法300去到存储器地址的起始搜索位置,并开始在缓冲区中的该点向前搜索JPEG图像数据的结束标记。这假定了方法300始终低估图像数据的结束,且结束标记将不出现在JPEG图像数据本身中(基于JPEG图像标准)。由于该起始搜索位置接近JPEG图像数据的结束,在起始搜索位置处可以有效率的使用线性搜索,以定位JPEG图像数据的结束标记。一旦定位了结束标记,则方法300识别出原始缩略图图像数据的位置,因为原始缩略图图像数据的大小是已知的,且还知道原始缩略图图像数据将在JPEG图像数据的结束标记之后的存储器地址上开始。
如果JPEG图像数据实际包含与定位符标记匹配的数据,则可能低估估计出的JPEG图像数据的结束。在该情况下,搜索将开始在比最优起始搜索位置(即,在JPEG图像数据的结束标记的N个字节之内的位置)更早的位置处寻找JPEG图像数据的结束标记。尽管搜索将依然通过在与起始搜索位置相对应的地址之后的缓冲区的全部地址中搜索,来定位JPEG图像数据的结束标记,如果起始搜索位置非常早地出现在缓冲区中,且针对结束标记进行线性搜索,则该搜索可能是低效率的。在将起始搜索位置识别为在缓冲区中比期望更早的位置的这些情况下,可以执行二分搜索来改进搜索速度和效率。备选地,可以使用最大搜索时间来限制搜索所花费的时间量,因为如果花费了过多的时间来定位JPEG图像数据的结束标记,则不能实时更新显示器110,且发生丢帧。例如,如果起始搜索位置实际偏移JPEG图像数据1MB,则将难以满足以每秒30帧的速率来更新显示器110的实时要求(然而,这也取决于微处理器102的速度)。因此,如果针对当前帧中的结束标记的搜索时间超过最大搜索时间,则在步骤312中检测到错误,从而丢弃图像数据的当前帧,然后方法300回到步骤304,以开始处理与后续帧相关联的图像数据。
如果在步骤312没有检测到错误,则在步骤314由微处理器102或专用图像处理器来处理定位到的原始缩略图图像数据。该处理可以包括对于本领域技术人员而言公知的一个或多个操作,比如颜色空间处理、扩缩、滤波、混合等等。然后在步骤316,在显示器110上显示处理过的缩略图数据。如果在步骤318确定用户已选择了当前帧的图像用于捕捉,则方法300进行至步骤320,在该步骤320中,在闪存108中存储图像。否则,如果在步骤318的判定为假,则方法300进行至步骤322,在该步骤322中,确定移动设备100的相机模式是否依然有效。如果在步骤318的判定为真,方法300进行到步骤304以再一次执行步骤304至322。然而,如果确定相机模式已在步骤320结束,则方法300结束。
现在参见图5a,其中示出了在根据方法300的步骤304的预处理之后的存储器单元350(比如缓冲区)的说明图。已清除了存储器单元350,且已在存储器单元350中以N字节距离间隔的存储器地址处写入了由符号“A”所指定的一定数目的定位符标记352、354、356、358、360和362。在本示例中,定位符标记遍及存储在存储器单元350中,将定位符标记“A”有利地分开N字节距离,这改进了方法300的执行速度,因为不需要在整个存储器单元350中到处写入定位符标记,这可以不影响搜索方法300的效率。
现在参见图5b,其中示出了第一示例的说明图,在第一示例中,存储器单元350′现在已根据方法300的步骤306接收到图像数据370。图像数据370包括由符号“B”表示的JPEG图像数据372和由符号“C”表示的原始缩略图图像数据374。为了说明的目的使用了3种符号,且应当理解符号B表示JPEG图像数据,包括起始和结束标记,且不指示在JPEG图像数据372中存在相同的数据。类似地,符号C不意味着指示在原始缩略图图像数据374中的相同数据。此外,应当注意到,在预处理期间在存储器中提前写入的定位符标记A的每个位置之间的符号B和C的数目是由间隔N来定义的,且在这些附图所示的符号B和C的数目仅作为说明性之用,且不意味着具有限制性。
已在存储器单元350′中写入(即,存储)了图像数据370,使得已覆盖了一些定位符标记。在本示例中,尚未覆盖定位符标记358、360和362,且已将图像数据370写入到存储器单元350′的约少于一半。因此,当在方法300的步骤310进行搜索时,发现作为图像数据370之后的定位符标记的第一实例或最接近的定位符标记的定位符标记358。然后将起始搜索位置估计为在定位符标记358之前的约X字节,其中,X是原始缩略图图像数据374的长度加上保护带。
现在参见图6a和6b,其中示出了在接收图像数据之前的预处理过的存储器单元350和在已接收到包括JPEG图像数据382和原始缩略图图像数据384在内的图像数据380之后的预处理过的存储器单元350″。在本示例中,图像数据380相当大,且覆盖了大部分的存储器单元350″。图像数据380之后的第一定位符标记A是定位符标记362。再次将起始搜索位置估计为距离定位符标记358X字节,其中,X是原始缩略图图像数据384的长度加上保护带。
现在参见图7a和7b,其中分别示出了在根据方法300的预处理之后和在根据方法300的备选版本的部分预处理之后的存储器单元350和350″′。在备选方法中,在存储定位符标记“A”之前不清除整个存储器单元350,如图7a所示,存储器单元350″′保留其之前的内容(即,前一帧的图像数据),且如图7b中定位符标记352′、354′和356′所示,在之前的内容上写入定位符标记。换言之,在不首先清除存储器单元350″′的情况下在存储器单元350″′中存储多个定位符标记。出于性能考虑可以这么做,以节约对存储器单元进行预处理的时间,这将增加方法300的执行速度。一旦在存储器单元中存储了图像数据,可以将步骤308中的搜索算法修改为:定位尚未被覆盖的定位符标记的第一实例,并假定其接近刚刚存储在存储器单元中的新图像数据的结束。方法300的剩余部分与之前讨论的一样进行操作。
在实际中,在PC上评估方法300,且发现当与常规JPEG搜索算法相比时,至少将性能提升了120倍。考虑到在PC和移动设备之间的处理能力和架构方面的当前差异,方法300在移动设备上实现时的性能应当导致至少10倍的增强。该速度方面的提升是重要的,因为随着在当今的移动设备中使用的相机的解析度的提升,能够快速地操作大型图像数据集将是重要的。此外,随着在处理速度方面的提升,可以实现零快门延迟,这允许移动设备100在显示器110上无缝地显示连续更新的图像。这将增强用户的观看体验,且应当允许用户拍摄更好的照片,因为可以使用方法300来如此频繁地更新显示器110上的图像,使得用户能够捕捉想要捕捉的图像。使用花费更长时间来定位原始缩略图数据的常规处理方法,难以做到这一点的,并导致了断断续续的图像。
应当注意到,本文描述的已应用到包含JPEG图像数据(即,可变长度数据)以及其后的缩略图图像数据在内的图像数据的搜索方法不必然限制为这些类型的数据集。实际上,该搜索方法可以应用到包含具有可变数据长度的数据集以及其后的具有固定数据长度的另一数据集在内的任何数据集,以便定位固定数据集。就此而言,方法300的步骤304至310可以应用到这种数据集,且不需要被限制为应用到处理包含JPEG图像数据和缩略图图像数据在内的图像数据。
在一个方面中,根据本文所述的至少一个示例实施例,提供一种用于处理包括第二数据集和第三数据集在内的第一数据集以定位所述第三数据集的方法。所述第二数据集具有可变数据长度,并以结束标记终止,且所述第三数据集在所述结束标记之后开始。所述方法包括:通过存储多个定位符标记来预处理存储器单元,在所述存储器单元中存储所述第一数据集,从而覆盖所述多个定位符标记中的一部分;对所述多个定位符标记中的最接近所述第一数据集的结束的、且未被覆盖的那个定位符标记进行定位;以及通过基于最接近的定位符标记的位置搜索所述第二数据集的结束标记,来定位所述第三数据集。
当搜索所述第二数据集的结束标记时,可以在所述存储器单元中设置起始搜索位置,其中,所述起始搜索位置基于所述最接近的定位符标记的位置、所述第三数据集的长度和保护带。
当预处理所述存储器单元时,可以在所述存储器单元中间隔N字节的地址处存储所述多个定位符标记。
在至少一些情况下,N的下界可以设置为所述定位符标记的长度,且N的上界可以设置为所述存储器单元的大小的四分之一。备选地,N可以设置为256字节。
在另一备选中,可以在不首先清除所述存储器单元的情况下在所述存储器单元中存储所述多个定位符标记。
在至少一些情况中,所述方法还可以包括:应用二分搜索来定位所述最接近的定位符标记。
在至少一些情况中,所述方法还包括:在确定了所述最接近的定位符标记的位置之后,应用线性搜索来定位所述第二数据集的结束标记。
在至少一些情况中,所述方法还包括:当将所述最接近的定位符标记的位置识别为比期望更早的位置时,应用二分搜索来定位所述第二数据集的结束标记。
在一些情况中,所述第一数据集可以是当前帧的图像数据,所述第二数据集可以是JPEG图像数据,以及所述第三数据集可以是原始缩略图图像数据,其中,所述方法还可以包括:设置用于搜索所述JPEG图像数据的结束标记的最大搜索时间,且当超过搜索当前帧的JPEG数据的结束标记的最大搜索时间时,丢弃所述当前帧并处理后续帧。
在至少一些情况中,可以将所述定位符标记选择为长度在1和8字节之间。
在另一方面中,根据本文所述的至少一个示例实施例,提供了一种用于在电子设备上处理当前帧的图像数据的方法,所述图像数据包括JPEG图像数据和原始缩略图图像数据,所述JPEG图像数据具有可变数据长度且以结束标记终止,以及所述原始缩略图图像数据在所述结束标记之后开始。所述方法包括:通过存储多个定位符标记来预处理存储器单元,在所述存储器单元中存储所述图像数据,从而覆盖所述多个定位符标记的一部分,对所述多个定位符标记中的最接近所述图像数据的结束的、且未被覆盖的那个定位符标记进行定位;通过基于所述最接近的定位符标记的位置搜索所述JPEG图像数据的结束标记,来定位所述第三数据集,处理定位到的原始缩略图图像数据,以将定位到的原始缩略图图像数据准备用于观看;以及在所述电子设备的显示器上显示已处理的缩略图图像数据。
在另一方面中,根据本文所述的至少一个示例实施例,提供了一种电子设备,包括:微处理器,被配置为控制所述电子设备的操作;以及耦合到所述微处理器且被配置为存储数据集的存储器单元。所述微处理器适于:处理包括第二数据集和第三数据集在内的第一数据集以定位所述第三数据集,所述第二数据集具有可变数据长度,并以结束标记终止,且所述第三数据集在所述结束标记之后开始。所述微处理器适于:预处理所述存储器单元以存储多个定位符标记;在所述存储器单元中存储所述第一数据集,从而覆盖所述多个定位符标记中的一部分,对所述多个定位符标记中的最接近所述第一数据集的结束的、且未被覆盖的那个定位符标记进行定位,以及通过基于所述最接近的定位符标记的位置搜索所述第二数据集的结束标记,来定位所述第三数据集。
所述微处理器可以适于:当搜索所述第二数据集的结束标记时,在所述存储器单元中设置起始搜索位置,其中,所述起始搜索位置基于所述最接近的定位符标记的位置、所述第三数据集的长度和保护带。
所述微处理器可以适于:当预处理所述存储器单元时,在所述存储器单元中间隔N字节的地址处存储所述多个定位符标记。
在至少一些情况下,所述微处理器可以适于:基于与所述定位符标记的长度相等的下界以及与所述存储器单元的大小的四分之一相等的上界来设置N。备选地,所述微处理器可以适于:将N设置为256字节。
在备选中,所述微处理器可以适于:在不首先清除所述存储器单元的情况下在所述存储器单元中存储所述多个定位符标记。
在至少一些情况中,所述微处理器可以适于:应用二分搜索来定位所述最接近的定位符标记。
在至少一些情况中,所述微处理器还适于:在确定了所述最接近的定位符标记的位置之后,应用线性搜索来定位所述第二数据集的结束标记。
在至少一些情况中,所述微处理器还适于:当将所述最接近的定位符标记的位置识别为比期望更早的位置时,应用二分搜索来定位所述第二数据集的结束标记。
所述电子设备还可以包括被配置为产生当前帧的图像数据的相机单元,其中,所述第二数据集是JPEG图像数据,以及所述第三数据集是原始缩略图图像数据,其中,所述微处理器可以适于:设置用于搜索所述JPEG图像数据的结束标记的最大搜索时间,且当超过搜索当前帧的JPEG数据的结束标记的最大搜索时间时,丢弃所述当前帧并处理后续帧。
在至少一些情况中,所述微处理器可以适于:将所述定位符标记选择为长度在1和8字节之间。
在另一方面中,根据本文所述的至少一个示例实施例,提供一种包括多个指令在内的计算机可读介质,所述指令可在电子设备的微处理器上执行以使所述电子设备适于实现处理包括第二数据集和第三数据集在内的第一数据集以定位所述第三数据集的方法。所述第二数据集具有可变数据长度,并以结束标记终止,且所述第三数据集在所述结束标记之后开始。所述方法包括:通过存储多个定位符标记来预处理所述电子设备的存储器单元;在所述存储器单元中存储所述第一数据集,从而覆盖所述多个定位符标记中的一部分;对所述多个定位符标记中的最接近所述第一数据集的结束的、且未被覆盖的那个定位符标记进行定位;以及通过基于所述最接近的定位符标记的位置搜索所述第二数据集的结束标记,来定位所述第三数据集。
在另一方面中,根据本文所述的至少一个示例实施例,提供一种用于处理包括具有可变数据长度并以结束标记终止的数据在内的数据集的方法。所述方法包括:通过存储多个定位符标记来预处理存储器单元;在所述存储器单元中存储所述数据集,从而覆盖所述多个定位符标记中的一部分;以及对所述多个定位符标记中的最接近所述数据集的结束的、且未被覆盖的那个定位符标记进行定位。
在另一方面中,根据本文所述的至少一个示例实施例,提供一种电子设备,包括:微处理器,被配置为控制所述电子设备的操作;以及耦合到所述微处理器且被配置为存储数据集的存储器单元。所述微处理器适于:处理包括具有可变数据长度并以结束标记终止的数据在内的数据集。所述微处理器适于:预处理所述存储器单元以存储多个定位符标记;在所述存储器单元中存储所述数据集,从而覆盖所述多个定位符标记中的一部分;以及对所述多个定位符标记中的最接近所述数据集的结束的、且未被覆盖的那个定位符标记进行定位。
应当理解,在不脱离实施例的情况下可以对本文所描述和说明的实施例进行各种修改,该实施例的一般范围由所附权利要求来定义。例如,可以将本文所述的技术应用于接收可变长度数据且不存在合理手段来快速计算数据长度的其他***设备。另外,该技术可以适于处理输入的JPEG图像数据集的流。在该情况下,如方法300(或图7b的备选)中所述一样预处理存储器单元,并接收当前帧的JPEG图像数据集,以及将其存储在存储器单元中。然后可以通过找到最接近JPEG图像数据的结束且未被覆盖的定位符标记来确定JPEG图像数据的结束。然后可以如方法300中所述的一样获得JPEG图像数据的结束。这允许快速地定位JPEG图像数据并使用JPEG图像数据供进一步处理。例如,一旦定位了JPEG图像数据,则可以处理JPEG图像数据来产生缩略图图像数据。

Claims (26)

1.一种用于处理包括第二数据集和第三数据集在内的第一数据集以定位所述第三数据集的方法,所述第二数据集具有可变数据长度,并以结束标记终止,且所述第三数据集在所述结束标记之后开始,其中,所述方法包括:
通过存储多个定位符标记来预处理存储器单元;
在所述存储器单元中存储所述第一数据集,从而覆盖所述多个定位符标记中的一部分;
对所述多个定位符标记中的最接近所述第一数据集的结束的、且未被覆盖的那个定位符标记进行定位;以及
通过基于最接近的定位符标记的位置搜索所述第二数据集的结束标记,来定位所述第三数据集。
2.根据权利要求1所述的方法,其中,所述方法还包括:当搜索所述第二数据集的结束标记时,在所述存储器单元中设置起始搜索位置,其中,所述起始搜索位置基于最接近的定位符标记的位置、所述第三数据集的长度、以及保护带。
3.根据权利要求1所述的方法,其中,所述方法还包括:当预处理所述存储器单元时,在所述存储器单元中间隔N字节的地址处存储所述多个定位符标记。
4.根据权利要求3所述的方法,其中,N的下界是所述定位符标记的长度,且N的上界是所述存储器单元的大小的四分之一。
5.根据权利要求3所述的方法,其中,所述方法还包括:将N设置为256字节。
6.根据权利要求3所述的方法,其中,所述方法还包括:在不首先清除所述存储器单元的情况下在所述存储器单元中存储所述多个定位符标记。
7.根据权利要求1所述的方法,其中,所述方法还包括:应用二分搜索来定位最接近的定位符标记。
8.根据权利要求1所述的方法,其中,所述方法还包括:在确定了最接近的定位符标记的位置之后,应用线性搜索来定位所述第二数据集的结束标记。
9.根据权利要求1所述的方法,其中,所述方法还包括:当识别出的最接近的定位符标记的位置是比期望更早的位置时,应用二分搜索来定位所述第二数据集的结束标记。
10.根据权利要求1所述的方法,其中,所述第一数据集是当前帧的图像数据,所述第二数据集是JPEG图像数据,以及所述第三数据集是原始缩略图图像数据,其中,所述方法还包括:设置用于搜索所述JPEG图像数据的结束标记的最大搜索时间,且当超过搜索当前帧的JPEG数据的结束标记的最大搜索时间时,丢弃所述当前帧并处理后续帧。
11.根据权利要求1所述的方法,其中,所述方法还包括:将所述定位符标记选择为长度在1和8字节之间。
12.一种用于在电子设备上处理当前帧的图像数据的方法,所述图像数据包括JPEG图像数据和原始缩略图图像数据,所述JPEG图像数据具有可变数据长度且以结束标记终止,以及所述原始缩略图图像数据在所述结束标记之后开始,其中,所述方法包括:
通过存储多个定位符标记来预处理存储器单元;
在所述存储器单元中存储所述图像数据,从而覆盖所述多个定位符标记的一部分;
对所述多个定位符标记中的最接近所述图像数据的结束的、且未被覆盖的那个定位符标记进行定位;
通过基于最接近的定位符标记的位置搜索所述JPEG图像数据的结束标记,来定位所述第三数据集;
处理定位到的原始缩略图图像数据,以将定位到的原始缩略图图像数据准备用于观看;以及
在所述电子设备的显示器上显示已处理的缩略图图像数据。
13.一种电子设备,包括:
微处理器,被配置为控制所述电子设备的操作;以及
存储器单元,耦合到所述微处理器,并被配置为存储数据集,
其中,所述微处理器适于:处理包括第二数据集和第三数据集在内的第一数据集以定位所述第三数据集,所述第二数据集具有可变数据长度,并以结束标记终止,且所述第三数据集在所述结束标记之后开始,
其中,所述微处理器适于:预处理所述存储器单元以存储多个定位符标记;在所述存储器单元中存储所述第一数据集,从而覆盖所述多个定位符标记中的一部分;对所述多个定位符标记中的最接近所述第一数据集的结束的、且未被覆盖的那个定位符标记进行定位;以及通过基于最接近的定位符标记的位置搜索所述第二数据集的结束标记,来定位所述第三数据集。
14.根据权利要求13所述的电子设备,其中,所述微处理器适于:当搜索所述第二数据集的结束标记时,在所述存储器单元中设置起始搜索位置,其中,所述起始搜索位置基于最接近的定位符标记的位置、所述第三数据集的长度、以及保护带。
15.根据权利要求13所述的电子设备,其中,所述微处理器适于:当预处理所述存储器单元时,在所述存储器单元中间隔N字节的地址处存储所述多个定位符标记。
16.根据权利要求15所述的电子设备,其中,所述微处理器适于:基于与所述定位符标记的长度相等的下界以及与所述存储器单元的大小的四分之一相等的上界来设置N。
17.根据权利要求15所述的电子设备,其中,所述微处理器适于:将N设置为256字节。
18.根据权利要求15所述的电子设备,其中,所述微处理器适于:在不首先清除所述存储器单元的情况下在所述存储器单元中存储所述多个定位符标记。
19.根据权利要求13所述的电子设备,其中,所述微处理器适于:应用二分搜索来定位最接近的定位符标记。
20.根据权利要求13所述的电子设备,其中,所述微处理器还适于:在确定了最接近的定位符标记的位置之后,应用线性搜索来定位所述第二数据集的结束标记。
21.根据权利要求13所述的电子设备,其中,所述微处理器还适于:当识别出的最接近的定位符标记的位置是比期望更早的位置时,应用二分搜索来定位所述第二数据集的结束标记。
22.根据权利要求13所述的电子设备,其中,所述电子设备还包括被配置为产生当前帧的图像数据的照相机单元,其中,所述第二数据集是JPEG图像数据,以及所述第三数据集是原始缩略图图像数据,其中,所述微处理器适于:设置用于搜索所述JPEG图像数据的结束标记的最大搜索时间,且当超过搜索当前帧的JPEG数据的结束标记的最大搜索时间时,丢弃所述当前帧并处理后续帧。
23.根据权利要求13所述的电子设备,其中,所述微处理器适于:将所述定位符标记选择为长度在1和8字节之间。
24.一种包括多个指令的计算机可读介质,所述指令能在电子设备的微处理器上执行以使所述电子设备适于实现处理包括第二数据集和第三数据集在内的第一数据集以定位所述第三数据集的方法,所述第二数据集具有可变数据长度,并以结束标记终止,且所述第三数据集在所述结束标记之后开始,其中,所述方法包括:
通过存储多个定位符标记来预处理所述电子设备的存储器单元;
在所述存储器单元中存储所述第一数据集,从而覆盖所述多个定位符标记中的一部分;
对所述多个定位符标记中的最接近所述第一数据集的结束的、且未被覆盖的那个定位符标记进行定位;以及
通过基于最接近的定位符标记的位置搜索所述第二数据集的结束标记,来定位所述第三数据集。
25.一种用于处理数据集的方法,所述数据集具有可变数据长度,并以结束标记终止,其中,所述方法包括:
通过存储多个定位符标记来预处理存储器单元;
在所述存储器单元中存储所述数据集,从而覆盖所述多个定位符标记中的一部分;以及
对所述多个定位符标记中的最接近所述数据集的结束的、且未被覆盖的那个定位符标记进行定位。
26.一种电子设备,包括:
微处理器,被配置为控制所述电子设备的操作;以及
存储器单元,耦合到所述微处理器,并被配置为存储数据集,
其中,所述微处理器适于处理数据集,所述数据集包括具有可变数据长度并以结束标记终止的数据,以及
其中,所述微处理器适于:预处理所述存储器单元以存储多个定位符标记;在所述存储器单元中存储所述数据集,从而覆盖所述多个定位符标记中的一部分;以及对所述多个定位符标记中的最接近所述数据集的结束的、且未被覆盖的那个定位符标记进行定位。
CN201210097677.2A 2011-04-26 2012-04-05 使用存储器破坏来快速估计二进制数据长度 Active CN102761740B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201161479227P 2011-04-26 2011-04-26
US61/479,227 2011-04-26

Publications (2)

Publication Number Publication Date
CN102761740A true CN102761740A (zh) 2012-10-31
CN102761740B CN102761740B (zh) 2015-11-18

Family

ID=44913180

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210097677.2A Active CN102761740B (zh) 2011-04-26 2012-04-05 使用存储器破坏来快速估计二进制数据长度

Country Status (4)

Country Link
US (1) US9137443B2 (zh)
EP (1) EP2519006B1 (zh)
CN (1) CN102761740B (zh)
CA (1) CA2773405C (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9137443B2 (en) 2011-04-26 2015-09-15 Blackberry Limited Fast estimation of binary data length using memory corruption
CN113820661A (zh) * 2021-09-03 2021-12-21 暨南大学 一种基于二分及双指针条纹搜索的可见光定位方法及***

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5422640B2 (ja) * 2011-12-28 2014-02-19 京セラドキュメントソリューションズ株式会社 画像読取装置
US9268936B2 (en) * 2012-07-27 2016-02-23 Mandiant, Llc Physical memory forensics system and method
KR20140035769A (ko) * 2012-09-14 2014-03-24 삼성전자주식회사 연속 촬영 이미지 데이터를 처리할 수 있는 방법들과 장치들
CN109918352B (zh) * 2019-03-04 2021-11-05 北京百度网讯科技有限公司 存储器***和存储数据的方法
US10861127B1 (en) 2019-09-17 2020-12-08 Gopro, Inc. Image and video processing using multiple pipelines

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080198047A1 (en) * 2007-02-16 2008-08-21 Scalado Ab Generating a Data Stream and Identifying Positions within a Data Stream
US20090144348A1 (en) * 2007-11-30 2009-06-04 Seiko Epson Corporation Variable Length Data Storage Device, Variable Length Data Storage Method, Variable Length Data Reading Method, and a Program for the Same

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3943495A (en) 1973-12-26 1976-03-09 Xerox Corporation Microprocessor with immediate and indirect addressing
US5563920A (en) 1993-02-17 1996-10-08 Zenith Electronics Corporation Method of processing variable size blocks of data by storing numbers representing size of data blocks in a fifo
US6119213A (en) * 1995-06-07 2000-09-12 Discovision Associates Method for addressing data having variable data width using a fixed number of bits for address and width defining fields
JP4072293B2 (ja) * 1999-07-02 2008-04-09 キヤノン株式会社 データ処理方法及び装置及び記憶媒体
JP4329238B2 (ja) 2000-07-05 2009-09-09 ソニー株式会社 データストリーム生成装置とその方法、可変長符号化データストリーム生成装置とその方法、カメラシステム
JP3661594B2 (ja) 2001-02-07 2005-06-15 ソニー株式会社 データストリーム生成装置とその方法、可変長符号化データストリーム生成装置とその方法、および、カメラシステム
KR100459476B1 (ko) * 2002-04-04 2004-12-03 엘지산전 주식회사 차량의 대기 길이 측정 장치 및 방법
JP2004112593A (ja) 2002-09-20 2004-04-08 Pioneer Electronic Corp データ読取方法、データ読取装置およびデータ読取のためのプログラム
SE528172C2 (sv) 2003-11-18 2006-09-19 Scalado Ab Metod för behandling av en digital bild och bildrepresentationsformat
SE0303085D0 (sv) 2003-11-18 2003-11-18 Scalado Ab Method for creating a compressed digital image representation and image representation format
WO2005050567A1 (en) 2003-11-18 2005-06-02 Scalado Ab Method for processing a digital image and image representation format
US7289979B2 (en) * 2003-12-10 2007-10-30 Alcatel Lucent Parallel asymmetric binary search on lengths
JP4895308B2 (ja) 2008-01-30 2012-03-14 東芝ストレージデバイス株式会社 磁気ディスク装置の記録方法及び磁気ディスク装置
JP5173547B2 (ja) 2008-04-15 2013-04-03 キヤノン株式会社 画像復号装置及びその制御方法
JP5351593B2 (ja) 2009-04-15 2013-11-27 キヤノン株式会社 ファイル管理装置およびその制御方法
JP2011009957A (ja) 2009-06-24 2011-01-13 Toshiba Corp 撮像装置及びサムネイル画像表示方法
US9137443B2 (en) 2011-04-26 2015-09-15 Blackberry Limited Fast estimation of binary data length using memory corruption

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080198047A1 (en) * 2007-02-16 2008-08-21 Scalado Ab Generating a Data Stream and Identifying Positions within a Data Stream
US20090144348A1 (en) * 2007-11-30 2009-06-04 Seiko Epson Corporation Variable Length Data Storage Device, Variable Length Data Storage Method, Variable Length Data Reading Method, and a Program for the Same

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9137443B2 (en) 2011-04-26 2015-09-15 Blackberry Limited Fast estimation of binary data length using memory corruption
CN113820661A (zh) * 2021-09-03 2021-12-21 暨南大学 一种基于二分及双指针条纹搜索的可见光定位方法及***
CN113820661B (zh) * 2021-09-03 2023-07-28 暨南大学 一种基于二分及双指针条纹搜索的可见光定位方法及***

Also Published As

Publication number Publication date
CN102761740B (zh) 2015-11-18
US9137443B2 (en) 2015-09-15
EP2519006A1 (en) 2012-10-31
CA2773405A1 (en) 2012-10-26
EP2519006B1 (en) 2013-11-27
CA2773405C (en) 2016-06-28
US20120278347A1 (en) 2012-11-01

Similar Documents

Publication Publication Date Title
CN102761740A (zh) 使用存储器破坏来快速估计二进制数据长度
US20080320033A1 (en) Method, Apparatus and Computer Program Product for Providing Association of Objects Using Metadata
US8396514B2 (en) Systems and methods for presenting an image on a display of a mobile device
CN101681430A (zh) 运动和图像质量监视器
CN101243706A (zh) 用于保存移动终端显示器的内容的方法、设备和计算机程序产品
US20120046042A1 (en) Apparatus and method for power control in geo-tagging in a mobile terminal
CN106447741A (zh) 照片自动合成方法及***
CN104679879A (zh) 一种照片智能存储方法和装置
CN104516893A (zh) 信息存储方法、装置和通讯终端
CN103475787A (zh) 一种提供联系人相关信息的方法及移动终端
CN103024118A (zh) 联系人查找方法及通信终端
CN103916940A (zh) 一种获取拍照位置的方法及装置
CN111373728B (zh) 相机应用的控制方法及装置
US20130300885A1 (en) Method, apparatus and computer-readable medium for image registration and display
CN104122981A (zh) 应用于移动终端的拍照方法、拍照装置及移动终端
CN104572830A (zh) 推荐拍摄信息的处理方法及装置
CN104967749A (zh) 一种处理图文信息的装置和方法
US20200336493A1 (en) Server and operating method thereof
CN111566639A (zh) 一种图像分类方法及设备
CN103079194A (zh) 业务适配方法、装置及***
CN106231582A (zh) 移动终端及主卡设置方法
CN105451175A (zh) 一种记录照片定位信息的方法及装置
WO2018076942A1 (zh) 一种实现慢门拍照的方法和装置
CN106210230B (zh) 一种联系人增加方法和终端
US8200284B2 (en) Communication device and method for managing multimedia files

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: Voight, Ontario, Canada

Applicant after: BlackBerry Ltd.

Address before: Voight, Ontario, Canada

Applicant before: Research In Motion Ltd.

COR Change of bibliographic data
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240523

Address after: Ai Erlandubailin

Patentee after: Maliki Innovation Co.,Ltd.

Country or region after: Ireland

Address before: Voight, Ontario, Canada

Patentee before: BlackBerry Ltd.

Country or region before: Canada