HK1170581B - Burst mode image compression and decompression - Google Patents
Burst mode image compression and decompression Download PDFInfo
- Publication number
- HK1170581B HK1170581B HK12111236.7A HK12111236A HK1170581B HK 1170581 B HK1170581 B HK 1170581B HK 12111236 A HK12111236 A HK 12111236A HK 1170581 B HK1170581 B HK 1170581B
- Authority
- HK
- Hong Kong
- Prior art keywords
- image
- images
- series
- root
- difference
- Prior art date
Links
Description
Technical Field
The invention relates to continuous shooting mode image compression and decompression.
Background
Burst mode (burst mode) is a feature of many digital cameras that can be used to capture (e.g., with a single button press) a series of still images in a short period of time. The burst mode may be used, for example, to capture subtle changes in a scene that is primarily static, such as changes in light reflected from rippled water in a landscape, or to capture motion in a highly dynamic scene, such as the action shots of a soccer game. In a typical burst mode, the ability to capture a series of several images with a single button press is at the expense of a higher burden on storage capacity, which is caused by the multiplier effect of the burst images. For example, in a burst mode where a series of five images are captured with each button press, a user taking ten burst mode shots of one scene will actually generate 50 full-size images. The speed at which the lenses of this burst mode consume storage capacity will be five times the speed of the lenses taken in the mode in which each lens generates a single image.
Disclosure of Invention
Techniques and tools for compressing, decompressing, and displaying burst mode images are described.
The techniques described herein involve modified compression/decompression and use of metadata in burst mode images to reduce the amount of data consumed by burst mode images, among other potential benefits. For example, metadata (e.g., an image metadata linker field) is added to an image file (e.g., an EXIF file) to establish a relationship or link between images in a burst mode image series. The series of linked burst mode images may include delta images (delta images). In the examples described herein, the delta image represents a temporal difference between image data (e.g., pixel data) of two continuous-shot images captured at different times in a continuous-shot series. For example, a first delta image may represent a difference between a first continuous shot image and an immediately subsequent second continuous shot image in the series. In the examples described herein, the root image (root image) of the linked series of burst modes is identified in the image metadata (e.g., with a Globally Unique Identifier (GUID)). The identification of a root image of a particular linked series of burst modes helps to distinguish that series from another series having a different root image.
Metadata may be added to the image file to link the burst images before compression, after compression, or at an intermediate stage of compression of the image data. The metadata may be stored in a data structure having an image format identifier field including an identifier of a linked burst mode image format, a root image identifier field including an identifier of a root image of the series of burst mode images, and an image index field including an index representing a given image of the series of burst mode images. Other metadata may also be added to the image file, such as a full image field including a bit indicating whether a given image is a full image or a delta image, a start index field including a start index value representing a start index of the series of burst mode images, and an end index field including an end index value representing an end index of the series of burst mode images.
Delta image file difference information may also be derived before compression, after compression, or at an intermediate stage of compression of the image data. The difference information may also be compressed. In particular, since delta images generally consume less storage than full images, linked burst mode images may reduce the need for storage resources. For example, delta image difference information is calculated, compressed, and stored. Such delta images may be reconstructed by decompressing the difference information and combining the difference information with the image data from the root image file. The difference information, the link metadata, and the image data of the root image and the delta image typically use less storage space than the image data of the two burst images, so that the total size of the two burst images can be significantly reduced. The overall savings in storage space are even greater for subsequent delta images.
The described techniques can also provide other benefits. For example, in a user interface that provides a library view of image files on a device, a series of linked burst mode images may be represented in the user interface with a single image (or a thumbnail version of a single root image) while other images in the burst series remain hidden, leaving more screen area for individual images, images of different burst series, or other information. By interacting with the root image (e.g., via gestures on a touch screen), the user may access the delta image linked to the root image. For example, a thumbnail version of a tap root image may cause a thumbnail version of the delta image linked to the root image to be displayed, or may cause the display of successive reconstructed images in a burst series.
The foregoing and other objects, features and advantages of the invention will become more apparent from the following detailed description, which proceeds with reference to the accompanying figures.
Drawings
FIG. 1 is a flow diagram of an exemplary digital image processing workflow.
FIG. 2 is a block diagram of an exemplary system that implements the burst mode image compression, decompression, and display techniques described herein.
FIG. 3 is a flow diagram of an exemplary burst mode image linking technique.
FIG. 4 is a flow diagram of an exemplary technique for reconstruction of linked burst mode images.
FIG. 5 is a flow diagram of an exemplary linked burst mode image compression data stream.
FIG. 6 is a flow diagram of an exemplary linked burst mode image decompression data stream.
FIG. 7 is a diagram illustrating an exemplary image metadata linker field layout.
Fig. 8 is a diagram showing a comparison of the library views of the burst mode image.
FIG. 9 is a flow diagram illustrating an exemplary technique for rendering (render) a selected image in a series of linked burst mode images.
FIG. 10 is an illustration of an exemplary user interface for adjusting parameters related to linked burst mode image techniques.
FIG. 11 is a block diagram of an exemplary computing environment suitable for use in implementing any of the techniques described herein.
Fig. 12 is a block diagram of an exemplary cloud computing arrangement suitable for implementing any of the techniques described herein.
FIG. 13 is a block diagram of an exemplary mobile device suitable for implementing any of the techniques described herein.
Detailed Description
Techniques and tools for compressing, decompressing, and displaying burst mode images are described.
The various examples described herein may be used in combination or alone. The techniques described herein may be used in a computer system having software, hardware, or a combination of software and hardware to process digital still images, or in some other system not specifically limited to processing digital still images.
I. Digital imaging-overview
A. Exemplary digital imaging workflow
As shown in fig. 1, the exemplary digital imaging workflow 100 includes image capture 110, image file generation 120, image editing 130, and image rendering 140. In image capture 110, one or more images are captured by an image capture device (e.g., a digital camera, a smartphone with digital camera functionality, etc.). In image file generation 120, the captured image is saved in an image file. For example, image data (e.g., pixel data), possibly along with other information such as image metadata, is stored in a file in a compressed or uncompressed format. In image editing 130, the image may be edited. For example, an image editor may take an image file as input and perform editing functions on image data in the image file. The edited version of the file may be saved by overwriting the old version of the file or by saving the edited version as a new file. In image rendering 140, the image information is converted into another form for display. For example, an image that is captured and then compressed according to a JPEG image compression format may be decompressed and rendered for display.
Although the exemplary workflow 100 shows image capture 110 followed by image generation 120 and image rendering 140, a digital imaging system may capture images without rendering the images, such as when the images are generated for storage or for further processing but not displayed. Digital imaging systems may also render images without capturing images or generating image files, such as when a device running an image editing application acquires a pre-existing image file from another source (e.g., via a communication medium). Different stages in the digital imaging workflow 100 may be performed by different devices or software applications.
In general, a digital image described herein may be captured by any device capable of capturing a digital image (e.g., a digital still image camera, a digital video camera, a scanner, or a multifunction device with image capture capabilities, such as a camera phone) and may be stored on any medium capable of storing a digital image (e.g., volatile memory or non-volatile memory, such as a compact disk or flash memory).
B. Exemplary File Format
The digital images described herein may be color, grayscale, or other types of images, and may be represented in various file formats for raw, uncompressed image data or compressed image data (e.g., GIF, PNG, BMP, TIFF Float32, JPEG XR, and/or other formats). For example, the described techniques and tools are capable of processing Standard Dynamic Range (SDR) images in an SDR format, such as JPEG, or High Dynamic Range (HDR) images in a high dynamic range table format.
Some image formats are specified by international standards. For example, the JPEG standard sets forth the requirements of a decoder for decoding images encoded in the JPEG format. JPEG-compliant encoders and decoders ("codecs") are generally capable of providing high quality images with good compression efficiency.
The exchangeable image file ("EXIF") format specifies the structure of an image file. The image data in the EXIF file may be compressed (e.g., in JPEG format). Alternatively, the image data in the EXIF file may be uncompressed (e.g., in TIFF format). The equipment and software that writes EXIF files may be referred to as an EXIF writer. The device or software that edits, deletes, or adds new data to an EXIF file may be referred to as an EXIF editor. The equipment and software that reads EXIF files may be referred to as EXIF readers. The burst mode image compression techniques described herein may be implemented in conjunction with an EXIF writer, EXIF editor, EXIF reader, or some other tool.
The term "tag" refers to a data field that can be used by the EXIF writer to record auxiliary data about an image in an EXIF file. Such auxiliary data about the image may be referred to as metadata. The metadata is distinguishable from image data (e.g., pixel values) that define the image itself. As described herein, metadata may be used in combination with image data to perform different types of image processing, such as burst mode image compression.
Many EXIF tags are associated with specific image attributes such as shutter speed, focal length, etc. Other tags are not associated with particular image attributes and may be used to add more diverse metadata to the EXIF file. For example, MakerNote is a tag name given to a manufacturer's tag, which can be used by a device manufacturer to add proprietary information, or for other purposes. A tag is typically identified by a tag name and a value. For example, in one version of the EXIF standard, the corresponding digital tag ID of MakerNote is 37500. More information about EXIF may be found in the camera and imaging products association on 26/4/2010 "exchangeable image file format for digital still cameras: exif version 2.3 ".
Continuous shooting mode image compression
Burst mode (burst mode) is a feature of many digital cameras that can be used to capture (e.g., with a single button press) a series of still images in a short period of time.
In a typical burst mode, the ability to capture a series of several images with a single button press is at the expense of a higher burden on system resources (e.g., storage capacity) caused by the multiplier effect of the burst images. As it becomes common to capture higher resolution images (e.g., 5 megapixel images, 8 megapixel images, etc.), the multiplier effect of burst mode images on storage capacity may have a greater impact. Moreover, this consumption of storage capacity may be repeated at different locations. For example, local storage (e.g., memory card, flash memory, etc.) on a device such as a smartphone with digital camera functionality may be consumed. Subsequently, remote storage capacity may be consumed, such as when locally captured images are uploaded to a remote server (e.g., in a cloud computing arrangement), synchronized to a personal computer, and so forth.
The techniques described herein involve modified compression/decompression and use of metadata in burst mode images to reduce the amount of data consumed by burst mode images, among other potential benefits. A series of images captured in a continuous shooting mode in a short period of time may be referred to as a continuous shooting mode image series, or a continuous shooting series. Typically, each image in the series of burst mode images is captured at a different time instant, which may be indicated by a timestamp associated with the image.
Adding or editing metadata to an image file to establish a relationship between images in a series of burst-mode images may be referred to as linking burst-mode images. The burst mode image corresponding to the image file to which such metadata has been added may be referred to as a linked burst mode image.
The series of linked burst mode images may include delta images. In the examples described herein, the delta image represents a difference in time between image data (e.g., pixel data) of two consecutive images captured at different times in a series of consecutive shots. For example, a first delta image may represent a difference between a first continuous shot image and an immediately subsequent second continuous shot image in the series. Alternatively, the delta image may represent the difference between non-consecutive burst images.
The series of linked burst mode images may include full images. Unlike the delta image, the full image does not represent the difference between the two consecutively taken images. One example of a full image is a root image. In the examples described herein, the root image of the linked series of burst modes is identified in the image metadata (e.g., with a Globally Unique Identifier (GUID)). The identification of a root image for a particular linked series of burst modes helps to distinguish that series from another series having a different root image. In the examples described herein, the linked series of burst modes has a single root image and may include one or more other full images and one or more delta images. Another example of a full image is an image in a series of burst modes that differs by more than a threshold relative to another image. Alternatively, the linked series of burst modes may have more than one root image or no root image (e.g., where the link metadata does not identify the root data but links the images in the series of burst modes in some other manner, such as with a unique identifier for the series as a whole).
Since delta images generally consume less storage than full images, linked burst mode images may reduce the need for storage resources. For example, delta image difference information is calculated, compressed, and stored. Such delta images may be reconstructed by decompressing the difference information and combining the difference information with the image data from the root image file. The difference information, the link metadata, and the image data generally use less storage space than the image data of the two continuous shot images, so that the total size of the two continuous shot images can be significantly reduced.
The described techniques can also provide other benefits. For example, in a user interface that provides a library view of image files on a device, a series of linked burst mode images may be represented in the user interface with a root image (or a thumbnail version of the root image) while other images in the burst series remain hidden, leaving more screen area for individual images, images of different burst series, or other information. By interacting with the root image (e.g., via gestures on a touch screen), the user may access the delta image linked to the root image. For example, a thumbnail version of a tap root image may cause a thumbnail version of the delta image linked to the root image to be displayed, or may cause the display of successive reconstructed images in a burst series.
The image data in the full image file (e.g., root image file) may be compressed (e.g., according to a standardized compression format such as JPEG). This compression may occur immediately after image capture, or may occur at some other time. For example, the image data may be captured and then compressed when it is first stored in the root image file. As another example, an image file may be captured and stored in an uncompressed image file, which may then be subsequently compressed according to a compression format such as JPEG. Metadata is added to the image file before compression, after compression, or at intermediate stages of compression (e.g., between compression stages) to link the burst images.
Delta image file difference information may also be derived before compression, after compression, or at intermediate stages of compression (e.g., between compression stages). For example, during a compression process for a root image that includes forward frequency transform, quantization, and entropy encoding, the difference between the root image and the non-root image may be calculated after quantization of the root image data and the non-root image data, but before entropy encoding. The difference information may also be compressed (e.g., using entropy coding or another coding mode).
A. Generalized linked burst mode imaging system
FIG. 2 is a block diagram of an exemplary system 200 implementing one or more of the linked burst mode image techniques described herein. In this example, computing device 205 implements a linked burst mode image tool 220, the tool 220 receiving image input 210. The image input 210 may include image data captured by the computing device 205. For example, computing device 205 may be a smartphone having an onboard digital camera (not shown) that can be used to acquire image input 210 by capturing image data with the digital camera. Alternatively, the image input 210 may be acquired in some other manner. For example, the computing device 205 may obtain image data in the form of an image file (e.g., an EXIF file) that has been captured by some other device. In general, image input 210 may be a single image or a set of images and may include other information such as metadata or user preference data (not shown) related to the image. If present in image input 210, the metadata and user preference data may be contained within an image file (e.g., an EXIF file) or provided separately.
The linked burst mode image tool 220 links files in the image input 210. For example, the linked burst mode image tool 220 creates metadata fields or adds information to existing metadata fields in an image file (e.g., an EXIF file) to link burst mode images. The linked burst mode image file may reduce the storage capacity requirements compared to normal burst mode images, while still allowing easy reconstruction and display (e.g., on display 240) of the burst mode image. The linked burst mode image file may be stored in the storage 230. The linked burst mode image and the linked burst mode image file are described in more detail herein.
In actual practice, a system such as system 200 shown herein may be more complex, have additional functionality, have more complex relationships between components of the system, and so forth. For example, the system 200 may include one or more encoders that compress image data, thereby outputting a bitstream of compressed digital image information. The exact operations performed by the encoder may vary depending on the compression format. For example, the encoder may compress the image information according to a lossy compression format (such as JPEG) or a lossless compression format (such as TIFF), and the compressed image information may be stored in an EXIF file. In lossy compression, some of the original image data is lost. Therefore, it may be useful to archive the original, uncompressed version of the image (or the version using lossless compression) prior to lossy compression.
The system 200 may also include one or more decoders to decompress the compressed image data. The exact operations performed by the decoder may vary depending on the compression format. For example, a JPEG compliant decoder may decompress image information compressed according to the JPEG standard and stored in the EXIF file.
As another example, the system 200 may include a pre-processor that uses a low-pass filter or other filter to smooth the input digital image to selectively remove high frequency components. Alternatively, the preprocessor performs other preprocessing tasks. The system 200 may also include a post-processor (post-processor) that performs post-processing operations on the decompressed image data. For example, the post-processor may perform tasks dedicated to reducing image artifacts (such as blocking artifacts, banding artifacts, ring artifacts, or artifacts from de-mosaicing operations). The pre-processing operations may also include image resizing, exposure or dynamic range control, color temperature control, and color enhancement. The pre-processing operations and post-processing operations may be performed in different ways and in different combinations, depending on implementation and/or user preferences.
The relationships shown between the modules within the system 200 indicate general information flow in the system; other relationships are not shown for simplicity. Depending on the desired implementation and type of processing, modules of the system may be added, omitted, divided into multiple modules, combined with other modules, and/or replaced with similar modules. In general, the techniques described herein are generally applicable to different operating systems or hardware and may be applied in any type of environment to take advantage of the features described.
B. Example techniques for linking and reconstructing burst mode images
FIG. 3 illustrates an exemplary technique 300 for linking burst mode images, with emphasis on actions performed when linking delta images. A system such as system 200 shown in fig. 2 or other system performs technique 300.
At 310, the system acquires image data for a plurality of images in a series of burst modes. For example, a smartphone with digital camera functionality that performs the technique 300 may capture image data while operating in a digital camera mode. The acquired image data may be compressed. To begin the process of compressing image data (e.g., according to the JPEG compression standard), the system may perform a forward frequency transform (e.g., a discrete cosine transform) on the image data to generate transform coefficients for the image, and then quantize the transform coefficients. As another example, the system may obtain image data from a pre-existing image file (e.g., from a local device or from a device located at a remote location via a network).
The system may store root image metadata and information representing image data of a first image as a root image file. The root image file may be an EXIF file. The root image metadata may include an image metadata linker field. The image metadata linker field may be a field associated with a manufacturer tag (e.g., MakerNote) or some other tag in an EXIF file. The information representing the image data of the first image may be compressed according to the JPEG standard and stored in an EXIF file. Alternatively, the root image file may be some other type of file that contains or can be edited to contain metadata for linking the burst mode images.
At 320, the system calculates a difference between image data of the first and second images in the series of burst modes. For example, the system calculates a difference between image data of a first image taken at a first time and image data of a second image temporally later than the first image. Alternatively, the second image is earlier in time than the first image. In one case, the first image may be the temporally earliest image in the series of continuous shooting modes relative to other images in the series of continuous shooting modes (e.g., the first image captured after the shutter button is pressed while the digital camera device is in continuous shooting mode). Alternatively, the first image is later in time in the series of burst modes. The image data (e.g., pixel data) defines the image itself and does not include image metadata.
The difference between the image data may be calculated in different ways. For example, the system may use mean square difference (mean square difference), a sum of squares of differences, or another metric for determining the magnitude of the difference between pixel values to determine the difference between pixel values (e.g., color values representing different color channels). Alternatively, the difference between the two images may be calculated after performing forward frequency transform and quantization on the respective image data, thereby calculating the difference between the quantized transform coefficients of the respective images using the mean square error, the square of the difference, or another metric for determining the magnitude of the difference between the quantized transform coefficient values. In some image formats, the images are arranged into pixel blocks (e.g., 8x8 blocks, 16x16 blocks, etc.). The difference may be calculated and measured on a pixel-by-pixel basis, a block-by-block basis, or on some other basis. As another example, the system may search for matching pixel values or matching pixel blocks and determine motion vectors that model motion in the image. The details of the difference calculation, such as the criteria that make up the matches and search patterns used to detect matches, may vary depending on the implementation. For example, the system may search for matches at nearby pixel locations and then gradually expand the search area (such as in a gradually expanding spiral pattern) to match (e.g., within a specified range of pixel values) pixels or blocks of pixels in the burst image.
A difference metric for an image may be compared to a threshold, and the image may be processed differently depending on how the difference metric compares to the threshold. For example, the system may classify the image as a delta image if the difference metric is less than a threshold, or as a full image if the difference metric exceeds the threshold.
Depending on the metric used for the different metrics, different kinds of thresholds may be used. For example, the threshold may be a mean square error, a sum of squares of differences, or a predefined value of another metric. Alternatively, the threshold value may be image dependent (e.g., dependent on the bit rate at which the image is compressed as a full image). Alternatively, the threshold may be the number of pixels or blocks of pixels that do not match. The decision whether pixel values match may be based on different criteria. For example, the system may look for an exact match between pixel values, or for a match within a specified tolerance (e.g., within a range of pixel values). As another example, the system may look for an exact match between all pixel values in a block of pixels, or for a match between a certain percentage (e.g., 50%) of the pixel values in a block of pixels. The system may also compare the total bit rate of the delta encoding of the picture to the fully encoded bit rate of the picture and then select which encoding results in the lowest bit rate.
At 330, the system stores the delta image metadata and the information representing the differences as a delta image file. A set of one or more image metadata linker fields (e.g., in the image metadata) link the second image to the first image to facilitate reconstruction of the second image based on the information indicative of the difference and the image data of the first image. The image metadata linker field may include a root image identifier field that identifies (e.g., with a Globally Unique Identifier (GUID)) the root image, and an image index field that includes an index value that represents an index of the second image relative to the first image in the series of burst mode images. The information representing the difference may be compressed or uncompressed. The delta image file may be an EXIF file. The image metadata linker field may be a field associated with a manufacturer tag (e.g., MakerNote) or some other tag in an EXIF file. Alternatively, the delta image file may be some other type of file that contains or can be edited to contain metadata for linking the burst mode images.
The root image file may include embedded data (e.g., information representing the differences). The embedded data may facilitate reconstruction of the second image without reference to data in another image file. The embedded data may be useful, for example, when it is desired to have all the necessary image data for a reconstructed delta image in the same file (e.g., where image data from another image is not available or may not be available at the time of reconstruction).
The computing 320 and storing 330 acts shown in fig. 3 are repeated for other delta images in the series of burst modes. Thus, for example, the system may repeat the computation of the difference, the computation of the difference metric, the comparison to the threshold, and the classification for other image pairs in the series of burst patterns, respectively. The actions as shown in fig. 3 may be performed in parallel for different images. For example, the system stores incremental image metadata and difference information for the second image, while calculating a difference between the second image and a third image in the series of continuous shooting modes, and while acquiring image data for a fourth image in the series of continuous shooting modes.
The first image may be reconstructed based on information representing image data of the first image (e.g., in the root image file). The second image may then be reconstructed based on the set of image metadata linker fields, information representing the differences of the second image, and the image data of the first image. For example, the system may identify a root image file based on a root image identifier field in the image metadata of the second image and retrieve image data of the first image from the root image file. The system may then reconstruct the differences and combine the differences with the image data of the first image to reconstruct the second image.
FIG. 4 illustrates an exemplary technique 400 for reconstructing a linked burst mode image, with emphasis on actions performed in reconstructing the delta image. A system such as system 200 shown in fig. 2 or other system performs technique 400.
At 410, the system obtains delta image metadata and information representing differences from the delta image file. The difference is a difference between image data of the first image and the second image in the linked series of burst mode images. A set of one or more image metadata linker fields links the second image to the first image to facilitate reconstruction of the second image based on the information indicative of the difference and the image data of the first image.
At 420, the system combines information indicative of the difference with the reconstructed image data of the first image to reconstruct image data of a second image. For example, the system decompresses compressed difference information obtained from the delta image file and combines it with decoded image data from the root image file. In general, the reconstruction technique performed by the system may be adjusted to account for differences in compression techniques or linking techniques. For example, if forward frequency transform and quantization are applied to the image data before calculating the difference, the system may perform inverse quantization and inverse frequency transform after combining information representing the difference with the reconstructed image data of the first image.
The capturing 410 and combining 420 actions shown in fig. 4 are repeated for other delta images in the series of burst modes. Thus, for example, the system may repeat the acquisition of the disparity for other images in the series of burst modes and combining the disparity with the image data of the previous image, respectively. The actions as shown in fig. 4 may be performed in parallel for different images.
C. Example data flow in linked burst mode image compression
FIG. 5 is a flow diagram illustrating data flow 500 in a system that combines linking of burst mode images with other data compression techniques (e.g., JPEG compression). A system such as system 200 shown in fig. 2 or other system performs the functions shown in fig. 5.
In fig. 5, the system takes as input image data 510, 512, 514 corresponding to the first, second and third images, respectively, in the series of burst mode images. The system performs forward frequency transforms (e.g., discrete cosine transforms) 520, 522, 524 to generate transform coefficients from the image data 510, 512, 514, and performs quantization 530, 532, 534 on the respective transform coefficients. The system performs entropy encoding 550 on the quantized transform coefficients of the first image and performs metadata generation 570 on the first image. The generated metadata indicates that the first image is a root image in the linked series of burst mode images. The root image serves as a reference for the other images in the linked series of burst modes. The system may classify a particular burst image as a root image in different ways. For example, the system may classify a burst image captured first in a series of burst patterns as a root image of the series. As another example, the system may take a later captured burst image as the root image (e.g., the third burst image in a series of five image bursts). Alternatively, the burst images may be classified as root images in some other manner (e.g., based on user preference information). The generated metadata is stored in a root image file 590 together with the entropy-encoded image data, and the root image file 590 may be, for example, an EXIF file.
The system performs a difference calculation 540 to calculate the difference between the quantized transform coefficients of the first and second images and performs a difference calculation 542 between the quantized transform coefficients of the second and third images. Although not shown in fig. 5, the system may also determine a difference metric and determine (e.g., based on a comparison between the respective calculated difference metric and a threshold) that the second image and the third image are delta images rather than full images. The system may perform disparity compression 560, 562 on the respective disparity information. This differential compression may use the same entropy coding as that of the image data of the root image, or it may use a different entropy coding. Alternatively, differential compression is omitted.
The system performs metadata generation 572, 574 for the second and third images, respectively. The metadata generated for the second image indicates that the second image is a delta image in the linked series of burst mode images. The metadata generated for the second image is stored with the compressed difference information in a delta image file 592, and the delta image file 592 may be, for example, an EXIF file. The metadata generated for the third image indicates that the third image is a delta image in the linked series of burst mode images. The metadata generated for the third image is stored with the compressed difference information in delta image file 594, which delta image file 594 may be, for example, an EXIF file. Other information, such as thumbnail versions of the root images, may also be stored in the delta image file. Storing a thumbnail version of the root image in the delta image file may be useful for display in some image viewers so that an approximation of the delta image can be easily shown.
Fig. 5 shows the compression of three images in a series of burst modes. Alternatively, the system compresses fewer images (e.g., 2) or more images in the series of burst modes. Also, although fig. 5 shows three data paths (for three images, respectively), the data stream may alternatively include fewer paths. For example, the data stream includes a data path for root image compression and a data path for delta image compression, where the difference is added to the buffered image data of the previous image. Alternatively, the data stream includes a single data path in which buffered quantized image data of a previous image is selectively subtracted from the results of quantization of delta images, but not from root images.
D. Example data flow in linked burst mode image decompression
FIG. 6 is a flow diagram of an exemplary linked burst mode image decompression data stream 600. The technique described with reference to fig. 6 may be used, for example, to decompress a burst mode image compressed according to the compressed data stream 500 shown in fig. 5. A system such as system 200 shown in fig. 2 or other system performs the functions shown in fig. 6.
In FIG. 6, the system performs a metadata analysis 670 on metadata from a root image file 690 corresponding to the first taken image. The root image file may be, for example, an EXIF file. The metadata indicates that the first burst image is a root image in the linked series of burst mode images. The root image serves as a reference for the other images in the linked series of burst modes. The system performs entropy decoding 650 on the encoded image data from the root image file 690.
The system performs metadata analysis 672, 674 on the metadata from delta image files 692, 694 of the second and third continuous shot images, respectively. Delta image files 692, 694 may be EXIF files, for example. The metadata from delta image files 692, 694 indicates that the second and third images are delta images in the linked series of burst mode images, respectively. For example, the metadata includes an identifier of a root image in the linked series of burst mode images and an index of respective delta images. Exemplary metadata fields are described in more detail below.
The system performs decompression 660, 662 of the compressed difference information from the delta image files 692, 694, respectively. This differential decompression may use the same entropy decoding as that of the image data of the root image, or it may use a different entropy decoding. Alternatively, when the difference information is not compressed, decompression of the difference information is omitted.
The system combines 640,642 the decompressed difference information with the previously reconstructed image data. At 640, the system combines the decompressed disparity information from delta image file 692 with the decoded image data from root image file 690 to reconstruct the image data for the second burst image. At 642, the system combines the decompressed difference information from delta image file 694 with the reconstructed image data of the second continuous shot image to reconstruct the image data of the third continuous shot image.
The system performs dequantization 630, 632, 634 to obtain dequantized transform coefficients and performs an inverse frequency transform (e.g., inverse DCT)620, 622, 624 on each transform coefficient. The system outputs image data 610, 612, 614 corresponding to the first, second, and third continuous shot images, respectively.
Fig. 6 illustrates the decompression of three images in a series of burst modes. Alternatively, the system decompresses fewer images (e.g., 2) or more images in the series of burst modes. Also, although fig. 6 shows three data paths (for three images, respectively), the data stream may alternatively include fewer paths. For example, the data stream includes a data path for root image decompression and a data path for delta image decompression, where the difference is added to the buffered image data of the previous image. Alternatively, the data stream includes a single data path in which buffered image data of a previous image is selectively added to the results of entropy decoding of delta images — and not to the results of entropy decoding of root images.
E. Exemplary image metadata linker fields
This section describes exemplary linker fields that can be used in image metadata in an EXIF file. The term "linker field" refers herein to a metadata field that may be used to link the burst images to identify the burst images as linked burst images. The linker field is distinguishable from other metadata fields present in the image file, such as fields that provide information about image attributes such as shutter speed, focal length, etc.
In the example described herein, an EXIF MakerNote tag is used to link the burst images. The metadata may be combined with the MakerNote tags to preserve or establish temporal relationships between the burst images. MakerNote is an open ASCII field defined in the EXIF standard. Using EXIF metadata to link images allows linking images without relying on file names, which can change and interfere with the link.
Table 1 below illustrates an exemplary set of image metadata linker fields that may be used with a MakerNote tag to link burst mode images. Alternatively, more or fewer linker fields may be used. The length of the data in each field is also shown in table 1. Alternatively, the linker fields performing the described functions may occupy different data lengths.
Table 1:exemplary linker fields
< CONST _ GUID > is an image format identifier field that allows an image file to be identified as a linked burst mode image file. < CONST _ GUID > can be used, for example, to determine which images to display in the library view. (exemplary library views are described in more detail below)
< GUID _ OF _ ROOT _ IMAGE > is a ROOT IMAGE identifier field comprising an identifier OF a ROOT IMAGE OF the series OF burst mode IMAGEs. In a linked series OF burst mode IMAGEs with one ROOT IMAGE, < GUID _ OF _ ROOT _ IMAGE > will be the same for each IMAGE file in the series. < GUID _ OF _ ROOT _ IMAGE > allows the ROOT IMAGE to be identified even if the file name changes.
< INDEX _ THIS > is an image INDEX field including an INDEX value representing an INDEX of a given image in the series of burst-mode images. For example, if the current image is the root image in the continuous shooting series, < INDEX _ THIS > -0. If the current image is before the root image in the series of continuous shots, < INDEX _ THIS > is negative. If the current image is after the root image in the series of continuous shots, < INDEX _ THIS > is positive. If the current image is a delta image, < INDEX _ THIS > allows the system to determine which other image or images are to be reconstructed before the current image is reconstructed. For example, if < INDEX _ THIS > is 1 for the current image, and the current image is a delta image, the current image may be reconstructed by combining the difference information with the image data from the root image (at INDEX 0).
Unless the current image is the root image, some linker fields will not exist. Two examples are < START _ INDEX > and < END _ INDEX >. < START _ INDEX > is a START INDEX value representing the START INDEX of the series of continuous shooting mode images. For example, if the first image in the series of continuous shots is the root image, < START INDEX > is 0. If the first image in the series is not the root image, < START _ INDEX > is negative. < END _ INDEX > is an END INDEX value indicating an END INDEX of the continuous shooting mode image series. For example, if the last image in the series of continuous shots is not the root image, < END _ INDEX > is positive. If the last image in the series is the root image, < END _ INDEX > is 0. < START _ INDEX > and < END _ INDEX > can be used to indicate how many other images are in the burst series and the temporal location of the root image in the burst series.
< IS _ FULL _ IMAGE > IS a bit indicating whether a given IMAGE IS a FULL IMAGE or a delta IMAGE. If the current IMAGE IS the root IMAGE, or if the calculated difference metric of the current IMAGE has exceeded the threshold, then the current IMAGE IS the FULL IMAGE and < IS _ FULL _ IMAGE > 1. Otherwise, the current IMAGE IS a delta IMAGE and < IS _ FULL _ IMAGE > IS 0. Alternatively, < IS _ FULL _ IMAGE > may be omitted. For example, if the total required root IMAGE IS a FULL IMAGE, then a value of < IS _ FULL _ IMAGE > may be implied and need not be included for the root IMAGE (e.g., where < INDEX _ THIS > -0).
< END _ OF _ SEQ > indicates the END OF the image metadata linker field OF the file. < END OF SEQ > may be any value. However, it may be useful for < END OF SEQ > to be a value that is not repeated elsewhere in the image metadata linker field to avoid accidentally emulating < END OF SEQ > before the END OF the image metadata linker field has been reached.
Exemplary image metadata linker field layouts 710, 720, 730 are shown in fig. 7. In the layout 710, < INDEX _ THIS > is represented by a value of 0, indicating that the current image is the root image. < IS _ FULL _ IMAGE > IS represented by a value of 1, indicating that the current IMAGE IS a FULL IMAGE. The value OF < IS _ FULL _ IMAGE > IS followed by < START _ INDEX >, < END _ INDEX > and < END _ OF _ SEQ >. In layout 720, < INDEX _ THIS > is represented by a value N (where N is not 0), indicating that the current image is not the root image. < IS _ FULL _ IMAGE > IS represented by a value of 0 indicating that the current IMAGE IS an incremental IMAGE and not a FULL IMAGE. The value OF < IS _ FULL _ IMAGE > IS followed by < END _ OF _ SEQ >.
Table 2 below illustrates an exemplary set of embedded data linker fields that may be used with the MakerNote tag in the root image when embedded data is present or more or fewer embedded linker fields may be used. The length of the data in each field is also shown in table 2. Alternatively, the embedded data linker field performing the described function may occupy a different data length.
Table 2:exemplary Embedded data linker fields for root images
The embedded data linker field may be used to embed data for other images in the series. For example, the delta image (or delta images) difference information can be embedded in the root image using an embedded data linker field. This provides the ability to reconstruct more than one image by accessing only one image file.
When present in the root image metadata, < EMBEDDED _ INDEX > provides an INDEX value of another image (e.g., delta image) in the same series represented by the EMBEDDED data, and thus < EMBEDDED _ INDEX > is restricted to be greater than or equal to < START _ INDEX > and less than or equal to < END _ INDEX >, but not equal to 0 (representing the root image). < SIZE _ EMBEDDED > is a value indicating the SIZE of EMBEDDED DATA, and < EMBEDDED _ DATA > is the EMBEDDED DATA itself. < applied _ DATA > may include compressed or uncompressed information representing, for example, a difference between image DATA of a root image and image DATA of an image that has been classified as a delta image.
In the layout 730, < INDEX _ THIS > is represented by a value of 0, indicating that the current image is the root image. < IS _ FULL _ IMAGE > IS represented by a value of 1, indicating that the current IMAGE IS a FULL IMAGE. The value OF < IS _ FULL _ IMAGE > IS followed by < START _ INDEX >, < END _ INDEX > and the embedded data linker field, followed by < END _ OF _ SEQ > indicating the END OF the linker field.
Alternatively, the metadata of the linked burst mode images in the burst mode series is stored in another format or in a tag different from the MakerNote tag in the EXIF file.
F. Exemplary techniques for finding/displaying linked burst mode images
This section describes exemplary techniques for finding and displaying linked burst mode images in a system such as system 200.
For example, the system may scan image files of a file directory (e.g., EXIF files) and look for image metadata linker fields in those image files. The system may display an image (or thumbnail version of an image) from an image file in which the < CONST _ GUID > field does not exist (e.g., an unlinked burst mode image file, an image file that is not a burst mode image file, etc.). The system may also display images (or thumbnail versions of images) from image files (e.g., linked burst mode image files) in which the < CONST _ GUID > field exists. For burst mode image files, the system may use the filtered library view to get a cleaner viewing experience. In the filtered library view, the system may display images (or thumbnail versions of images) from image files in which the < CONST _ GUID > field exists and < INDEX _ THIS > is equal to 0 (indicating that the image is the root image), while omitting images in which < INDEX _ THIS > is not equal to 0 (indicating that the image is not the root image).
FIG. 8 shows a graphical representation of a comparison of library views of burst mode images. The arrangement 870 is an example library view showing thumbnail versions of the non-burst images 802, 804 and thumbnail versions of the unlinked burst images 810, 812, 814, 816, 818. The arrangement 880 is an example library view showing thumbnail versions of the root image 820 in the linked series of burst mode images and thumbnail versions of delta images 822, 824, 826, 828 in the unfiltered view. Arrangement 890 is an example library view in which thumbnail versions of the root images 820 are shown while thumbnail versions of delta images in the linked series of burst mode images remain hidden in the filtered view. Arrangement 890 includes a User Interface (UI) element 830, the user interface element 830 including a thumbnail version of the root image 820 surrounded by a border and an arrow indicating that the user can navigate back or forward to other images in the series. The user interface element 830 acts as an indicator of the series of burst mode images in the filtered library view. Arrangement 890 gives a clean library view while the linking of burst mode images provides significant savings in storage costs.
The root image (represented by index value 0) may be located at a different position in the series of burst mode images. For example, the root image may be located between a temporally earlier image (represented by a negative index value) and a temporally later image (represented by a positive index value) in the series of burst mode images. In one case, the temporally later images are captured after the user presses a shutter button on an image capture device operating in a burst mode, while the temporally earlier images are acquired from one or more buffers (buffers) containing previously captured images (e.g., images captured before the current press of the shutter button). The amount of images before or after the root image may vary based on, for example, user preferences, camera settings, or application design considerations. Alternatively, in another case, the intermediate image in the series of continuous shooting modes is selected as the root image.
FIG. 9 illustrates a technique 900 for rendering a selected image in a series of linked burst mode images. For example, the technique 900 may be performed when a user views an image on a display. At 910, the system renders the current image. For example, the user selects a root image and the system renders the selected root image. At 920, the system then determines whether a new image is selected. For example, the system detects user input associated with a UI element (e.g., UI element 830 in fig. 8).
At 930, if a new image has been selected, the system determines whether the selection resulted in movement away from the root image (e.g., farther away in time in the series of continuous shots). For example, the system compares the value of < INDEX _ THIS > in the new image with the value of < INDEX _ THIS > in the previous image. A larger absolute value of < INDEX _ THIS > for the new image indicates that the new image is further away in time from the root image. A smaller absolute value of < INDEX _ THIS > for the new image indicates that the new image is temporally closer to the root image. At 932, if the movement is away from the root image, the system determines whether the new image is a delta image. For example, the system checks if the value of < IS _ FULL _ IMAGE > in the new IMAGE IS 0, a value of 0 of < IS _ FULL _ IMAGE > indicating that the current IMAGE IS a delta IMAGE. At 934, if the new image is a delta image, the system adds difference information for the delta image to reconstructed image data for a previously reconstructed image. The system then renders (936) the new image.
If a new image has been selected and the selection does not result in movement away from the root image, the selection results in movement towards the root image (e.g., closer in time to the root image in the series of continuous shots). At 942, the system determines whether the new image is a delta image. At 944, if the new image is a delta image, the system subtracts the difference information for the delta image from the reconstructed image data for the previously reconstructed image. The system then renders (946) the new image.
Various performance optimizations are possible for the library view. For example, the system may store all delta images in a folder separate from other image files and create a database of root image/delta image relationships (e.g., using file names or other identifiers of the images) that may be used for efficient lookup and display.
G. Exemplary method of parameter control
This section describes exemplary methods of user interaction with a system that compresses or decompresses burst mode images and/or renders or displays compressed or decompressed burst mode images. The system provides one or more controls to set user preferences for the linked burst mode image parameters. Fig. 10 illustrates an exemplary user interface 1010. The user interface 1010 includes a window 1080 having check box and button controls that can be used to set parameters for displaying the burst mode image. In the present example, a check box for selecting whether to display the burst mode image in the filtered or unfiltered library view is provided. The user interface 1010 may also include user interface elements for setting other parameters related to the burst mode images, such as a threshold value, which the system may use to determine whether an image in the series of burst mode images is to be encoded as a delta image or a full image based on the difference information.
H. Results of the experiment
An experiment was performed to compare the storage utilization rates in the case of linking and not linking the continuous shooting mode image files of seven images. Each image has a file size of about 700kb, with a total size of about 4900kb without linking. Two images are independent, non-continuous images, and five images are images in a continuous series. The burst images were linked to generate 1 root image of about 700kb in size and 4 delta images of about 130kb each, so that the total size of 7 images was about 3 × 700kb +4 × 130kb 2620kb in the case of linking. The score size of each delta image compared to the root image is about 130/700-0.19. The storage required for a total of N consecutive images with linking can therefore be approximated as: (1+ (N-1) × 0.19)) × (average burst image size >, and the storage required for the unlinked burst mode image compared to it is N × average full burst image size >. The file sizes described above (e.g., full burst image size and delta image size) may differ from the described examples depending on image resolution, the degree of difference between images, and other factors.
Example computing Environment
FIG. 11 illustrates a generalized example of a suitable computing environment 1100 in which the described technology may be implemented. The computing environment 1100 is not intended to suggest any limitation as to scope of use or functionality, as the techniques may be implemented in diverse general-purpose or special-purpose computing environments.
Referring to fig. 11, the computing environment 1100 includes at least one processing unit 1110 coupled to a memory 1120. In fig. 11, this basic configuration 1130 is included within a dashed line. Processing unit 1110 executes computer-executable instructions and may be a real or virtual processor. In a multi-processing system, multiple processing units execute computer-executable instructions to increase processing power. The memory 1120 may be volatile memory (e.g., registers, cache, RAM), non-volatile memory (e.g., ROM, EEPROM, flash memory, etc.), or some combination of the two. The memory 1120 may store software 1180 implementing any of the techniques described herein.
The computing environment may have other features. For example, the computing environment 1100 includes storage 1140, one or more input devices 1150, one or more output devices 1160, and one or more communication connections 1170. An interconnection mechanism (not shown) such as a bus, controller, or network interconnects the components of the computing environment 1100. Typically, operating system software (not shown) provides an operating environment for other software executing in the computing environment 1100, and coordinates activities of the components of the computing environment 1100.
The storage 1140 may be removable or non-removable, and includes magnetic disks, magnetic tapes or cassettes, CD-ROMs, CD-RWs, DVDs, or any other computer-readable medium which can be used to store information and which can be accessed within the computing environment 1100. The storage 1140 may store software 1180 containing instructions for any of the techniques described herein.
The input device 1150 may be a touch input device such as a keyboard, mouse, pen, or trackball, a voice input device, a scanning device, or another device that may provide input to the computing environment 1100. Output device 1160 may be a display, printer, speaker, CD or DVD recorder, or another device that provides output from computing environment 1100. Some input/output devices, such as touch screens, may include both input and output functionality.
The communication connection 1170 allows communication to another computing entity through a communication mechanism. The communication mechanism conveys information such as computer-executable instructions, audio/video or other information, or other data. By way of example, and not limitation, communication mechanisms include wired or wireless techniques implemented with an electrical, optical, Radio Frequency (RF), infrared, acoustic, or other carrier.
The techniques herein may be described in the general context of computer-executable instructions, such as those included in program modules, being executed in a computing environment on a target real or virtual processor. Generally, program modules include routines, programs, libraries, objects, classes, components, data structures, etc. that perform particular tasks or implement particular abstract data types. The functionality of the program modules may be combined or separated between program modules as desired in various embodiments. Computer-executable instructions for program modules may be executed in local or distributed computing environments.
Any of the storage acts described herein may be implemented by storage in one or more computer-readable media (e.g., computer-readable storage media or other tangible media). Any of the things described as being stored may be stored in one or more computer-readable media (e.g., computer-readable storage media or other tangible media).
Any of the methods described herein may be implemented by (e.g., encoded on) computer-executable instructions in one or more computer-readable media (e.g., computer-readable storage media or other tangible media). These instructions may cause a computer to perform the method. The techniques described herein may be implemented in various programming languages.
Any of the methods described herein can be implemented by computer-executable instructions stored in one or more computer-readable storage devices (e.g., memory, CD-ROM, CD-RW, DVD, etc.). These instructions may cause a computer to perform the method.
Example implementation Environment
FIG. 12 illustrates a generalized example of a suitable implementation environment 1100 in which described embodiments, techniques, and technologies may be implemented.
In the example environment 1200, various types of services (e.g., computing services 1212) are provided by the cloud 1210. For example, the cloud 1210 may include a collection of computing devices, which may be centrally located or distributed, that provide cloud-based services to various types of users and devices connected via a network, such as the internet. The cloud computing environment 1200 may be used to accomplish computing tasks in different ways. For example, with reference to the techniques and tools, certain tasks such as processing user input and presenting a user interface may be performed on a local computing device while other tasks such as storing data to be used in subsequent processing may be performed elsewhere in the cloud.
In the example environment 1200, the cloud 1210 provides services to connected devices 1220A-N having various screen capabilities. Connected device 1220A represents a device having a mid-sized screen. For example, connected device 1220A may be a personal computer, such as a desktop computer, a laptop computer, a notebook, a netbook, and so forth. Connected device 1220B represents a device with a small screen. For example, connected device 1220B may be a mobile phone, a smart phone, a personal digital assistant, a tablet computer, and so on. Connected device 1220N represents a device with a large screen. For example, connected device 1220N may be a television (e.g., a smart television) or another device connected to a television or projector screen (e.g., a set-top box or game console), and so on.
The cloud 1210 can provide various services through one or more service providers (not shown). For example, the cloud 1210 can provide mobile computing-related services to one or more of the various connected devices 1220A-N. The cloud services may be customized for the screen size, display capabilities, or other functionality of a particular connected device (e.g., connected devices 1220A-N). For example, cloud services can be customized for a mobile device by taking into account screen size, input devices, and communication bandwidth limitations typically associated with mobile devices.
V. example Mobile device
Fig. 13 is a system diagram depicting an exemplary mobile device 1300 that includes various optional hardware and software components, shown generally at 1302. Any of the components 1302 in the mobile device may communicate with any other component, although not all connections are shown for ease of depiction. The mobile device can be any of a variety of computing devices (e.g., a cellular telephone, a smart phone, a handheld computer, a Personal Digital Assistant (PDA), etc.) and can allow wireless two-way communication with one or more mobile communication networks 1304, such as a cellular or satellite network.
The illustrated mobile device may include a controller or processor 1310 (e.g., a signal processor, microprocessor, ASIC, or other control and processing logic circuitry) for performing tasks such as signal coding, data processing, input/output processing, power control, and/or other functions. An operating system 1312 can control the allocation and usage of the components 1302, and support one or more application programs 1314. The application programs may include public mobile computing applications (e.g., including email applications, calendars, contact managers, web browsers, messaging applications), or any other computing application.
The illustrated mobile device may include memory 1320. Memory 1320 may include non-removable memory 1322 and/or removable memory 1324. Non-removable memory 1322 may include RAM, ROM, flash memory, a disk drive, or other well-known memory storage techniques. The removable memory 1324 can include flash memory or a Subscriber Identity Module (SIM) card, which is well known in GSM communication systems, or other well known memory storage technologies, such as smart cards. Memory 1320 may be used to store data and/or code for running the operating system 1312 and the application programs 1314. Example data may include web pages, text, images, sound files, video data, or other data sets sent to and/or received from one or more network servers or other mobile devices via one or more wired or wireless networks. The memory 1320 may be used to store a subscriber identifier, such as an International Mobile Subscriber Identity (IMSI), and an equipment identifier, such as an International Mobile Equipment Identifier (IMEI). These identifiers may be transmitted to a network server to identify the user and equipment.
The mobile device can support one or more input devices 1330 such as a touch screen 1332, a microphone 1334, a camera 1336, a physical keyboard 1338, and/or a trackball 1340, as well as one or more output devices 1350 such as a speaker 1352 and a display 1354. Other possible output devices (not shown) may include piezoelectric or other haptic output devices. Some devices may serve more than one input/output function. For example, touch screen 1332 and display 1354 may be combined in a single input/output device.
Touch screen 1332 can accept input in different ways. For example, capacitive touch screens detect touch inputs when an object (e.g., a fingertip) distorts or interrupts a current flowing through the surface. As another example, resistive touchscreens detect touch input when pressure from an object (e.g., a fingertip or stylus) causes compression of a physical surface. As another example, a touch screen may use an optical sensor to detect a touch input when a light beam from the optical sensor is interrupted. Physical contact with the screen surface is not necessary for input to be detected by some touch screens.
The wireless modem 1360 may be coupled to an antenna (not shown), and may support bi-directional communication between the processor 1310 and external devices, as is well understood in the art. The modem 1360 is shown generically and may include a cellular modem for communicating with the mobile communications network 1304 and/or other radio-based modems (e.g., bluetooth or Wi-Fi). The wireless modem 1360 is typically configured to communicate with one or more cellular networks, such as a GSM network for data and voice communications within a single cellular network, between cellular networks, or between a mobile device and a Public Switched Telephone Network (PSTN).
The mobile device may further include at least one input/output port 1380, a power supply 1382, a satellite navigation system receiver 1384 (such as a Global Positioning System (GPS) receiver), an accelerometer 1386, a transceiver 1388 (for wirelessly transmitting analog or digital signals), and/or a physical connector 1390, which may be a USB port, an IEEE 1394 (firewire) port, and/or an RS-232 port. The illustrated components 1302 are not required or exhaustive, as components can be deleted and other components can be added.
Extension and substitution
This section records some of the other extensions, alternatives, and applications of the techniques and tools presented above.
The described linked burst mode image techniques may be used in conjunction with other digital image processing techniques. For example, the described linked burst mode image techniques may be used in a digital photo editing scenario to edit a linked burst mode image on a computer. Photo editing may be performed, for example, on the delta image or on the root image.
Various alternatives to the examples described herein are possible. For example, the techniques described with reference to the flowcharts may be changed by changing the ordering of the stages shown in the flowcharts, by repeating or omitting certain stages, and so on. As another example, although some examples are described with reference to a particular digital media format, other formats may be used.
Having described and illustrated the principles of the invention with reference to described embodiments, it will be recognized that the described embodiments can be modified in arrangement and detail without departing from such principles. It should be understood that the programs, processes, or methods described herein are not related or limited to any particular type of computing environment unless otherwise specified. Various types of general purpose or special purpose computing environments may be used or operations may be performed in accordance with the teachings described herein. Elements shown in software in the described embodiments may be implemented in hardware and vice versa.
In view of the many possible embodiments to which the principles of our invention may be applied, all such embodiments are claimed as the invention, which fall within the scope and spirit of the appended claims and their equivalents.
Claims (6)
1. A computer-implemented method (300), comprising:
acquiring (310) image data of a plurality of images in a series of burst mode images;
calculating (320) a difference between image data of a first image of the plurality of images in the series of continuous shooting mode images and image data of a second image of the plurality of images in the series of continuous shooting mode images; and
storing (330) delta image metadata and information representative of the difference as a delta image file, wherein a set of one or more image metadata linker fields link the second image to the first image to facilitate reconstruction of the second image based on the information representative of the difference and the image data of the first image, wherein the set of one or more image metadata linker fields comprises:
a root image identifier field used to distinguish the series of burst mode images from another series having a different root image; and
an image index field including an index value representing an index of the second image relative to the first image in the series of burst mode images;
calculating a new difference between the image data of the second image and image data of a third image of the plurality of images in the series of burst mode images;
comparing a difference metric for the new difference to a threshold;
classifying the third image as a delta image or a full image based on the comparison of the difference metric for the new difference to the threshold; and
storing information representing the new difference as a delta image file for the third image if the third image is classified as a delta image;
storing information representing the image data of the third image as a full image file if the third image is classified as a full image.
2. The method of claim 1, further comprising:
reconstructing the first image using information representing the image data of the first image; and
reconstructing the second image based on the set of one or more image metadata link fields, the information representing the difference, and the image data of the first image.
3. The method of claim 1, wherein the method further comprises:
storing root image metadata and information representing the image data of the first image as a root image file separate from the delta image file.
4. The method of claim 3, wherein the root image metadata includes a second set of one or more image metadata linker fields, comprising:
a root image identifier field;
an image index field including an index value representing an index of the first image in the series of burst-mode images.
5. The method of claim 1, further comprising, prior to storing the delta image metadata and the information representing the difference:
comparing a difference metric for the difference to a threshold; and
classifying the second image as a delta image based on the comparison.
6. The method of claim 1, further comprising, after the acquiring, for each image of the plurality of images in the series of burst mode images:
performing a forward frequency transform on image data of the image to generate transform coefficients of the image; and
quantizing the transform coefficients of the image;
wherein said calculating said difference is performed between said quantized transform coefficients of said first and second images, respectively.
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US12/914,898 | 2010-10-28 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| HK1170581A HK1170581A (en) | 2013-03-01 |
| HK1170581B true HK1170581B (en) | 2019-07-05 |
Family
ID=
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8655085B2 (en) | Burst mode image compression and decompression | |
| CN108632625B (en) | A video encoding method, video decoding method and related equipment | |
| CN103703779B (en) | Image compression using sub-resolution images | |
| US10003768B2 (en) | Apparatus and methods for frame interpolation based on spatial considerations | |
| JP5768126B2 (en) | Determining key video snippets using selection criteria | |
| US9554145B2 (en) | Re-encoding image sets using frequency-domain differences | |
| US10880566B2 (en) | Method and device for image encoding and image decoding | |
| KR100987365B1 (en) | Selection of key frames from video frames | |
| CN101287089B (en) | Image capturing apparatus, image processing apparatus and control methods thereof | |
| US8619150B2 (en) | Ranking key video frames using camera fixation | |
| KR101812103B1 (en) | Method and program for setting thumbnail image | |
| JP2014039257A (en) | Decoder and decoding method | |
| CN101534372A (en) | Image acquisition system and method thereof | |
| JP6406949B2 (en) | Image processing apparatus and image processing method | |
| US20240348797A1 (en) | Selective frames processing in shot-based encoding pipeline | |
| JP5256496B2 (en) | Image processing system, image processing method, and program | |
| CN105430393B (en) | Picture processing method, picture processing device, picture processing platform and storage medium | |
| JP7147075B2 (en) | Compression across multiple images | |
| HK1170581B (en) | Burst mode image compression and decompression | |
| HK1170581A (en) | Burst mode image compression and decompression | |
| WO2018136129A1 (en) | Image compression based on semantic relevance | |
| CN115412727B (en) | Coding method, decoding method and device thereof | |
| US10778994B2 (en) | Image processing apparatus, image processing method, and non-transitory computer-readable storage medium | |
| CN120077655A (en) | Method, apparatus and medium for visual data processing | |
| KR20090114971A (en) | Method and device for checking the compression ratio of compressed image |