A variety of portable media devices are being developed to support high-definition (HD) video. Compared to most other display resolutions, encoding and decoding of HD video are both memory-intensive and power-intensive. For example, the bitrate for H.264 video at 1080p resolution may be up to 20 Mbps. Thus, a 10-minute video clip at the 1080p display resolution may consume up to 1.5 gigabytes of memory. Similarly, processing of HD video typically consumes power at a greater rate than processing of lower-resolution video. A user's preference for HD video in a portable media device may thus be limited by the memory capacity, battery life, and or processing capacity of the portable media device.
According to one implementation, a mobile video terminal is provided. The mobile video terminal may include a video camera to supply video signals; processing logic to selectively encode the video signals from the video camera at different resolutions; a memory to store the video signals encoded by the processing logic; and memory sensing logic to monitor the memory and generate information regarding an available capacity of the memory, where the processing logic is further configured to automatically alter the resolution of the video signals based on the information regarding the available capacity of the memory from the memory sensing logic.
Additionally, the processing logic selectively compresses the video signals at different compressions and automatically alters the compression of the video signals based on the information regarding the available capacity of the memory from the memory sensing logic.
Additionally, the mobile video terminal may further include a power supply of finite capacity to supply power for the processing logic; and power supply sensing logic to monitor the power supply and generate information regarding an available capacity of the power supply, where the processing logic is further configured to automatically alter the resolution of the video signals based on the information regarding the available capacity of the power supply from the power supply sensing logic.
Additionally, the mobile video terminal may further include processing sensing logic to monitor the processing logic and generate information regarding an available processing demands on the processing logic, where the processing logic is further configured to automatically alter the resolution of the video signals based on the information regarding the available processing demands on the processing logic from the processing sensing logic.
Additionally, the mobile video terminal may further include a display to provide indications to a user, where the display indicates to the user that the resolution of the video signals will be automatically altered prior to automatically altering the resolution of the video signals.
Additionally, the mobile video terminal may further include an input device to permit the user to override the automatic altering of the resolution of the video signals by the processing logic.
Additionally, the processing logic may be configured to automatically reduce the resolution of the video signals from the video camera when the available memory capacity reaches a particular threshold.
According to another implementation, a mobile video terminal is provided. The mobile video terminal may include a video camera to supply video signals; processing logic to selectively encode the video signals from the video camera at different quality levels; a memory to store the video signals encoded by the processing logic; a power supply to supply power for the mobile video terminal, where the processing logic is further configured to automatically alter the encoding of the video signals from the video camera based on a condition of at least one of the memory, the power supply, or the processing logic.
Additionally, the condition may correspond to available capacity in the memory.
Additionally, the condition may correspond to available capacity of the processing logic.
Additionally, the condition may correspond to available capacity of the power supply.
Additionally, the processing logic may be further configured to further automatically alter the encoding of the video signals from the video camera based on another condition of at least one of the memory, the power supply, and the processing logic.
Additionally, the condition may correspond to a first available capacity in the memory and the other condition corresponds to a second available capacity in the memory.
In still another implementation, method performed by a mobile video terminal device that includes a memory, a power supply, and processing logic is provided. The method may include encoding, at a first resolution, video signals from a video camera; monitoring a condition of the memory, the power supply or the processing logic; and automatically switching from encoding the video signals at the first resolution to encoding the video signal at a second resolution based on the monitoring of the condition, where the second condition is different from the first condition.
Additionally, the mobile video terminal may further include, prior to automatically switching, indicating to a user that encoding of the video signals from the video camera will be automatically switched.
Additionally, the condition may correspond to available capacity in the memory.
Additionally, the condition may correspond to available capacity of the power supply.
Additionally, the condition may correspond to available capacity of the processing logic.
In a further implementation, a device is provided that may include means for encoding video signals from a video camera at a first resolution; means for monitoring a condition of a memory, a power supply or a processing logic; and means for switching from encoding the video signals at the first resolution to encoding the video signals at a second resolution based on the monitoring of the condition, where the first resolution is a higher resolution than the second resolution.
In another implementation, a method performed by a mobile video terminal may include storing a data set corresponding to a first criteria for a condition of a memory, a power supply or a processing logic; encoding, at a first quality level, video signals from a video camera; monitoring the memory, the power supply or the processing logic to determine if the first criteria has been met; and automatically switching from encoding the video signals at the first quality level to encoding the video signals at a second quality level based on a determination that the first criteria has been met, where the second quality level is different than the first quality level.
Additionally, the method may further include indicating on a display to a user that the first criteria have been met.
Additionally, the data set further may further include data corresponding to a second criteria for another condition of the memory, the power supply or the processing logic, and where the method further includes automatically switching from encoding the video signals at the second quality level to encoding the video signals at a third quality level based on a determination that the second criteria for another condition of the memory has been met, where the third quality level is different than the second quality level.
Additionally, the first criteria and the second criteria may correspond to an available capacity in the memory.
Additionally, the first criteria may correspond to an available capacity of the memory and the second criteria may correspond to an available capacity in the power supply.
Additionally, the resolution for the first quality level may be one of 1080 or 720 lines of vertical resolution.
Reference is made to the attached drawings, where elements having the same reference number designation may represent like elements throughout.
The following detailed description of the invention refers to the accompanying drawings. The same reference numbers in different drawings identify the same or similar elements. Also, the following detailed description does not limit the invention. Instead, the scope of the invention is defined by the appended claims and equivalents.
Referring together to
Display 130 may provide visual information to the user. For example, display 130 may provide information regarding incoming or outgoing telephone calls and/or incoming or outgoing electronic mail (e-mail), instant messages, short message service (SMS) messages, etc. Display 130 may also display video or still images associated with camera 170. For example, display 130 may display images currently focused on by a lens or view finder of camera 170. Display 130 may also be used to display stored pictures or videos taken by camera 170 and/or received by mobile video terminal 100. Display 130 may also display messages to the user relating to applications on mobile video terminal 100, various alerts, the current time, video games being played by a user, downloaded content (e.g., news, images, or other information), etc.
Control buttons 140 may permit the user to interact with mobile video terminal 100 to cause mobile video terminal 100 to perform one or more operations, such as place a telephone call, play various media, etc. For example, control buttons 140 may include a dial button, hang up button, play button, etc. Control buttons 140 may also include one or more control buttons for activating and/or controlling camera 170 and/or controlling an accessory associated with camera 170, such as flash 180, a lens cover, shutter button, etc. In an exemplary implementation, control buttons 140 may also include one or more buttons that control settings associated with applications showing on display 130. For example, one of control buttons 140 may be used to alter settings for camera 170 while the camera is supplying video images. Further, one of control buttons 140 may be a menu button that permits the user to view options associated with executing various application programs, including, for example, video camera applications, stored in mobile video terminal 100.
Keypad 150 may include a standard telephone keypad used to enter numbers and/or text. Keypad 150 may also provide dual input functions for controlling other applications, such as those associated with camera 170. Other types of input devices may also be provided. For example, in other implementations, a touch screen may be provided to enter information. In still other implementations, a speech-to-text engine or other devices may be used to input information to mobile video terminal 100. Still other implementations may include additional input buttons on an edge of housing 110. Microphone 160 may receive audible information from the user and from other parties in the vicinity of mobile video terminal 100.
Camera 170 may be a video camera and may include camera elements that enable mobile video terminal 100 to take still pictures and/or videos. Camera 170 may store the pictures/videos in a memory within mobile video terminal 100 and/or other possibly remote locations. Camera 170 may also communicate with processing logic within mobile video terminal 100 to control various aspects with respect to taking and storing pictures/videos, as described in detail below. Camera 170 may work in conjunction with flash 180 and other camera accessories, such as light sensors and light sources included in, or operating in conjunction with, mobile video terminal 100.
Bus 210 may permit communication among the components of mobile video terminal 100. Processing logic 220 may include a processor, microprocessor, an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or the like. Processing logic 220 may execute software instructions/programs or data structures to control operation of mobile video terminal 100 and/or components within mobile video terminal 100. In one implementation, processing logic 220 may include a codec to encode digital video signals. Processing logic 220 may also include a video codec that enables video compression and/or decompression for digital video.
Memory 230 may include a random access memory (RAM) or another type of dynamic storage device that stores information and instructions for execution by processing logic 220; a read only memory (ROM) or another type of static storage device that stores static information and instructions for use by processing logic 220; a flash memory (e.g., an electrically erasable programmable read only memory (EEPROM)) device for storing data and/or instructions; and/or some other type of magnetic or optical recording medium and its corresponding drive. Memory 230 may also be used to store temporary variables or other intermediate information during execution of instructions by processing logic 220. Instructions used by processing logic 220 may also, or alternatively, be stored in another type of computer-readable medium accessible by processing logic 220. A computer-readable medium may include one or more logical or physical memory devices.
Input device 240 may a include mechanism that permits a user to input information to mobile video terminal 100, such as microphone 160, keypad 150, control buttons 140, a keyboard, a gesture-based device, an optical character recognition (OCR) based device, a joystick, a virtual keyboard, a speech-to-text engine, a mouse, a pen, voice recognition and/or biometric mechanisms, etc.
Output device 250 may include a mechanism that outputs information to the user, including a display, such as display 130, a printer, one or more speakers, such as speaker 120, etc. Power supply 260 may include one or more batteries (rechargeable or disposable) or another type of power source used to supply power to components of mobile video terminal 100.
Communication interface 270 may include any transceiver-like mechanism that enables mobile video terminal 100 to communicate with other devices and/or systems. For example, communication interface 270 may include a modem or an Ethernet interface to a LAN. Communication interface 270 may also include mechanisms for communicating via a network, such as a wireless network. For example, communication interface 270 may include one or more radio frequency (RF) transmitters, receivers and/or transceivers and one or more antennas for transmitting and receiving RF data via a network.
Camera 170 may be a camera with the capability to make video signals suitable for encoding and decoding video images for a variety of resolutions and/or compressions. Resolution capabilities may range, for example, from high definition (e.g 1080p and 720p) to lower resolutions such as VGA and below.
Mobile video terminal 100 may provide a platform for a user to take and receive pictures/videos; place and receive telephone calls; send and receive electronic mail, text messages, multi-media messages, and short message service (SMS) messages; and execute various other applications. Mobile video terminal 100 may perform these operations in response to processing logic 220 executing sequences of instructions contained in a computer-readable medium, such as memory 230. Such instructions may be read into memory 230 from another computer-readable medium via, for example, communication interface 270. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions to implement processes described herein. Thus, implementations described herein are not limited to any specific combination of hardware circuitry and software.
Memory 230 may store video signals received from camera 170 and encoded by processing logic 220. Memory 230 may include internal (e.g., fixed) memory and/or external (e.g., removable) memory. At any point in time, memory 230 may generally have a known, fixed capacity. The internal memory may be supplemented with other removable memory components, such as memory cards, to expand the memory capacity. Memory 230 may be used to store a variety of data including, for example, video and photos from camera 170, telephone numbers, MP3 music, and software programs. Memory sensor 310 may monitor the available storage capacity of memory 230 and, in some implementations, the rate at which the storage capacity of memory 230 may be changing.
Power supply 260 may be a battery that may contain a finite amount of stored energy. Power supply 260 may be a rechargeable battery, such as a lithium ion battery, or a disposable battery. Power supply 260 may capable of being supplemented with other removable power components, such as external batteries, to expand the power capacity. In other implementations, power supply 260 may be capable of being supplemented with an effectively non-finite power source, such as an electrical adaptor or another device that can receive power from another source. Power supply 260 may provide power to some or all of the components of mobile video terminal 100, including processing logic 220, memory 230 and camera 170. Power supply sensor 320 may monitor the amount of stored energy available in power supply 260, and, in some implementations, the rate at which the amount of stored energy in power supply 260 is changing.
Camera 170 may supply video signals and/or other digital image signals to be processed at a variety of compression ratios and resolutions. Data recorded from camera 170 may be stored in memory 230.
Processing logic 220 may execute software instructions/programs or data structures to control operation of various components of mobile video terminal 100, including memory 230, memory sensor 310, camera 170, power supply 260, and power supply sensor 220. Processing logic 220 may include an encoder, which converts video signals from analog to digital. Processing logic 220 may also include a decoder, which converts digital signals back to analog for viewing. More specifically, processing logic 220 may include a video processing system to selectively alter video resolution and/or compression. When processing logic 220 records at different resolutions, the requirements for each of memory usage, power usage, and processing power may change. For example, encoding and decoding of higher resolution video are generally more memory-intensive, power-intensive, and processor-intensive than encoding and decoding of lower resolution video.
Processing logic 220 may also include a processing sensor 330 to monitor processing requests from other components in mobile video terminal 100 and the processing capacity of processing logic 220 to complete the requests. In certain implementations, processing logic 220 may receive information from memory sensor 310, power supply sensor 320, and processing sensor 330 to monitor the capacity of memory 230, power supply 260, and processing logic 220, respectively, to continue to record and process input from camera 170 and output to other components (such as, for example, output device 250). Based on the information from memory sensor 310, power supply sensor 320, and processing sensor 330, processing logic 220 may automatically alter the quality of processed video from camera 170 to allow for continued video functions when approaching capacity limits for other components of mobile video terminal 100.
For example, in one implementation, processing logic 220 may automatically downgrade video quality from a higher available resolution (e.g., 1080p) to a lower resolution (e.g., 720p) based on a signal from memory sensor 310 that memory 230 has reached a certain level (e.g., 80%) of available capacity. In other implementations, processing logic 220 may automatically downgrade video quality, based on signals from power supply sensor 320 or processing sensor 330, as described in detail below. In another implementation, scaling of the video quality may be done in a continuous manner, from, for example, 100% of a selected higher resolution gradually (e.g., linearly) down to 25% of the originally selected resolution. In still another implementation, scaling of video quality may be done using a combination of incremental steps and linear downgrades.
In one implementation, the ability of processing logic to automatically alter the video quality of camera 170 may be pre-selected by the user. By allowing a user to pre-authorize adaptive video encode scaling, mobile video terminal 100 can seamlessly adjust video quality in response to capacity feedback from one or more selected sensors. In another implementation, video settings may be adjusted only upon a confirmation from a user just prior to a change being made. In yet another implementation, a user may be given the option to override an automatic downgrade to video quality during the recording process.
In block 420, a user may be asked whether to enable adaptive video encode scaling based on memory monitoring. If the user selects ‘yes,’ processing logic 220 may enable a memory conservation routine (block 430). The memory conservation routine is discussed in more detail with respect to
In block 440, the user may be asked whether to enable adaptive video encode scaling based on power monitoring. If a user selects ‘yes,’ processing logic 220 may enable a power conservation routine (block 450). The power conservation routine is discussed in more detail with respect to
In block 460, a user may be asked whether enable adaptive video encode scaling based on processing monitoring. If the user selects ‘yes,’ processing logic 220 may enable a processing conservation routine (block 470). The processing conservation routine is discussed in more detail with respect to
In block 520, mobile video terminal 100 may compares current memory conditions to a predetermined first memory threshold. In one implementation, capacity thresholds for memory (and power and processing thresholds) may be stored as a data set that may be altered by the user. The first memory threshold may be expressed as a percentage of the available memory capacity (e.g., 25% of the total memory capacity), or it may be a fixed amount of available memory (e.g., 50 MB). As the available memory is consumed by the encoded video data, the available memory capacity is compared against the first memory threshold. As long as the remaining memory capacity is above the first memory threshold the mobile video terminal may continue to record using the originally-selected quality (block 530). However, if the remaining memory capacity drops below the first memory threshold, mobile video terminal 100 (using, for example, processing logic 220) may automatically reduce the video recording quality to a first less-memory-intensive resolution (block 540). For example, if the first memory threshold is at 25 MB, and the available memory capacity drops below 25 MB, the video resolution may be reduced from the originally-selected resolution (e.g., 1080p) to an incrementally-lower resolution (e.g., 720p). Additionally, and/or alternatively, the mobile video terminal 100 may automatically switch to a less-memory-intensive video compression. A user may be notified of the pending change in video quality by, for example, an indication on display 130 and given the opportunity to override the automatic change.
In block 550, mobile video terminal 100 may continue to monitor the memory conditions. In block 560, mobile video terminal 100 may compare current memory conditions to a particular second memory threshold. As with the first memory threshold, the second memory threshold may be expressed as a percentage of the total memory capacity (e.g., 10% of the total memory capacity), or it may be a fixed amount of available memory (e.g., 10 MB). As the available memory is consumed by the recorded video data, the remaining memory capacity is compared against the second memory threshold. As long as the remaining memory capacity is below the first memory threshold and above the second memory threshold, the mobile video terminal may continue to record using the first lower resolution (block 570). However, if the remaining memory capacity drops below the second memory threshold, mobile video terminal 100 may automatically reduce the video recording quality to a second less-memory-intensive resolution (block 580). For example, if the second memory threshold is at 10 MB, and the available memory capacity drops below 10 MB, the video resolution may be reduced from the previous resolution (e.g., 720p) to an incrementally lower resolution (e.g., VGA, which may generally be defined as 640×480 resolution) and/or higher compression for the remainder of the video recording or until the memory is capacity is consumed.
Process 500 is has been described to include reductions in video quality. However, the process may also employ increases in video quality to return the video quality to the originally-selected quality after a reduction. For example, video quality may be restored to the originally-selected quality if the memory capacity is increased by the addition of an external memory card. Also, while two levels of video quality reduction have been described, one or more than two reductions may be used. In another implementation, a linear video quality reduction may be employed when a particular capacity threshold is exceeded.
While process 500 is described above with respect to adaptive video encode scaling based on memory capacity, the process may be similarly applied to adaptive video encode scaling based on power capacity or processing capacity
In block 610, mobile video terminal 100 may monitor the power level generally, and particularly the amount of power available for processing video recording data. The power level to be monitored may be power supply 260, and the monitoring may be accomplished by power supply sensor 320, in conjunction with processing logic 220, each of which is described above with respect to
In block 620, mobile video terminal 100 may compare a current power level to a particular power supply level threshold. The power supply level threshold may be expressed, for example, as a percentage of the available power (e.g., 30% of the total battery capacity), or it may be a time interval of remaining battery power (e.g., 15 minutes at the processing rate for the selected video quality).
As the available power is consumed by the recorded video data, the available amount of power is compared against the power supply level threshold. As long as the remaining amount of power is above the power supply level threshold, the mobile video terminal may continue to record using the originally selected resolution (block 630).
If the remaining amount of power drops below the power supply level threshold, mobile video terminal 100 (using, for example, processing logic 220) may indicate to the user that the power supply is getting low and request permission from the user to automatically reduce the video recording quality to a less-power-intensive resolution (block 640). For example, if the power supply threshold is 30% of the total battery capacity, and the available power supply capacity drops below 30%, an indicator may appear on a display (such as display 130) to request confirmation to automatically reduce video resolution. For example, it may request to automatically reduce the video resolution from the originally-selected resolution (e.g., 1080p) to an incrementally-lower resolution (e.g., 720p). The user may deny the request. For example, the user may be aware that the event being recorded is about to end, or that a supplementary power source is readily available. If the user does not authorize a switch to the reduced video resolution, mobile video terminal 100 may continue to record using the originally selected resolution (block 650). In another exemplary implementation, the processing logic may be set to automatically alter the video quality of camera 170 and the user may be given the option to override an automatic downgrade to video quality during the recording process. In another implementation, mobile video terminal 100 may seamlessly adjust video quality in response to capacity feedback, and the user would be required to restore the originally-selected video quality if desired.
If the user, in response to the request permission from the user to automatically reduce the video recording quality, authorizes the switch to reduced video quality, mobile video terminal 100 may reduce the video recording quality to the less-processing-intensive resolution and/or video compression (block 660). In block 670, the mobile video terminal 100 continues to monitor the power supply conditions. The process flow may be repeated beginning at block 620 for additional thresholds.
Process 600 is has been described to include reductions in video quality. However, the process may also employ increases in video quality to return the video quality to the originally-selected quality after a reduction. For example, video quality may be restored to the originally-selected quality if the power capacity is increased by the addition of an external power cord adaptor.
In block 720, mobile video terminal 100 may evaluate the current processing demands (for both video recording and other applications) to determine if the current demands exceed processing capacity for simultaneous processing. For example, during a video recording process, mobile video terminal 100 may also be receiving voice, text, or image data from a wireless network connection. If the processing capacity is sufficient to allow simultaneous processing of the current demands, then the mobile video terminal 100 may continue to record using the originally-selected resolution (block 730).
If the processing capacity is not sufficient to allow simultaneous processing of the current demands, then processing logic 220 may prioritize each of the processing demands (block 740). If the priority ranking for the originally-selected video quality (e.g., 1080p) is high, then the mobile video terminal 100 may continue to record using the originally-selected resolution (block 730). However, if the priority ranking for the originally-selected video quality is not high enough, processing logic 220 may identify a less processing-intensive resolution and/or compression (e.g., lower-quality video) that can be accommodated under the current prioritization (block 760). For example, if 50% of the available processing capacity is designated for applications with a higher priority than video recording, processing logic 220 may step down multiple video resolution levels (e.g., from 1080p to 576p or even 480p) to accommodate the other processing priorities.
After switching to a lower resolution in block 760, processing logic 220 may continue to monitor processing usage (block 710) and return to the originally-selected video resolution if the processing capacity again becomes sufficient to allow simultaneous processing of the current demands or if the priority rank of the high-resolution video recording increases.
While process 700 is described above with respect to adaptive video encode scaling based on processing priority, the process may be similarly applied to adaptive video encode scaling based on power capacity and/or memory capacity.
The following example may be used to further illustrate implementations described herein. Referring to
After several songs by the band, the memory in the mobile video terminal reaches the first conservation threshold (e.g., 25 MB remaining). The mobile video terminal displays an indication to the user that video resolution will be reduced in 10 seconds and prepares to automatically reduce the video quality (block 835). With no foreseeable end to the band's performance, the user (in block 840) passively allows the video resolution to be reduced from the highest video resolution to a lower resolution (i.e., 720p). The band performance continues, and eventually the final song is announced. During the song, the memory in the mobile video terminal reaches the second conservation threshold (e.g., 10 MB remaining). The mobile video terminal displays an indication to the user that video resolution will again be reduced (for example, from 720p to 576p) in 10 seconds and prepares to automatically reduce the video quality (block 845). Anticipating an encore, the user (in block 845) passively allows the video resolution to be reduced and is able to record the remainder of the performance.
Implementations described herein may address the issue that a mobile video terminal may quickly run out of local memory space, power, or processing capacity when shooting high quality video. In certain implementations, the memory, power and/or processing level of a mobile video terminal is monitored so that the mobile video terminal may automatically switch to a lower resolution when one of the monitored features approaches a limiting point.
The foregoing description of the embodiments of the invention provides illustration and description, but is not intended to be exhaustive or to limit the invention to the precise form disclosed. Modifications and variations are possible in light of the above teachings or may be acquired from practice of the invention.
For example, implementations have been mainly described in the context of a mobile video terminal. These implementations, however, may be used with any type of device that includes video encoding capabilities.
As another example, implementations have been mainly described in the context of a step down (or up) in video quality, such as a change in video resolution from 1080p to 720p. However, these implementations may also be practiced using a linear regression (or progression) in video quality with respect to a sliding-scale capacity threshold.
Also, implementations have been mainly described in the context of using varied resolution or compression to scale video quality to available capacity. However, these implementations may be practiced with other digital video processing systems that adaptively scale video quality.
While implementations have be primarily described in the context of receiving video signals from a video camera, implementations may also be practiced using video signals from other sources. For example, video signals may be received from a source external to the mobile video terminal (through a network via a communications interface, for example). Video signals received from external sources may be adaptively encoded/decoded and compressed/decompressed by according to some implementations.
Further, while series of blocks have been described with respect to
It will also be apparent that aspects described herein may be implemented in methods and/or computer program products. Accordingly, aspects may be embodied in hardware and/or in software (including firmware, resident software, micro-code, etc.). Furthermore, aspects described herein may take the form of a computer program product on a computer-usable or computer-readable storage medium having computer-usable or computer-readable program code embodied in the medium for use by or in connection with an instruction execution system. The actual software code or specialized control hardware used to implement these aspects is not limiting. Thus, the operation and behavior of the aspects were described without reference to the specific software code—it being understood that software and control hardware could be designed to implement the aspects based on the description herein.
Further, certain aspects described herein may be implemented as “logic” that performs one or more functions. This logic may include hardware, such as a processor, microprocessor, an application specific integrated circuit or a field programmable gate array, software, or a combination of hardware and software.
It should be emphasized that the term “comprises/comprising” when used in this specification is taken to specify the presence of stated features, integers, steps, or components, but does not preclude the presence or addition of one or more other features, integers, steps, components, or groups thereof.
Even though particular combinations of features are recited in the claims and/or disclosed in the specification, these combinations are not intended to limit the invention. In fact, many of these features may be combined in ways not specifically recited in the claims and/or disclosed in the specification.
No element, act, or instruction used in the description of the present application should be construed as critical or essential to the invention unless explicitly described as such. Also, as used herein, the article “a” is intended to include one or more items. Where only one item is intended, the term “one” or similar language is used. Further, the phrase “based on,” as used herein is intended to mean “based, at least in part, on” unless explicitly stated otherwise.
The scope of the invention is defined by the claims and their equivalents.