Bitstream format and reading and writing methods and apparatus therefor
Abstract
Image data having a bit depth of m bits, where m is not a power of two, may be divided into two parts for storage. The first part is the n most significant bits, where n is a power of two. The second part is the k least significant bits, where k=m−n and k<n. For example, 10-bit data may be separated into 8-bit and 2-bit parts. The 8-bit data for a given image is placed in the bitstream as a contiguous block with the end of the data aligned with a memory boundary, such as a page boundary. The 2-bit data is collected into bytes that are placed in the bitstream as a contiguous block. The block of 2-bit data is placed in the bitstream preceding and contiguous with the block of 8-bit data. Padding may be provided to align the beginning of the image data with a memory boundary. The image data for multiple images may be placed in the bitstream contiguously for storage. 10-bit data for an alpha channel, if any, also may be split into 8-bit and 2-bit parts. The 8-bit alpha data for a given image is placed in the bitstream as a contiguous block with the beginning of the data aligned with a memory boundary, such as a page boundary. The 2-bit alpha data is collected into bytes that are placed in the bitstream as a contiguous block. The block of 2-bit alpha data is placed in the bistream subsequent to and contiguous with the block of 8-bit alpha data. Padding may be provided to align the end of the alpha data with a page boundary. The alpha data for multiple images may be placed in the bitstream contiguously for storage.
Claims
exact text as granted — not AI-modified1 . A computer information product, comprising:
a computer readable medium; data stored on the computer readable medium that, when interpreted by a computer, comprises a bitstream for storing m-bit image data, including, for each frame of image data:
a first data portion including n most significant bits of the m-bit image data for all pixels in the frame in a contiguous block, wherein n is an integer and a power of two;
a second data portion including k least significant bits of the m-bit image data for all pixels in the frame in a contiguous block, wherein k equals the difference between m and n;
wherein the first data portion ends on a memory page boundary; and
wherein the second data portion precedes and is contiguous with the first data portion in the bitstream.
2 . The computer information product of claim 1 , wherein the bitstream further comprises alpha information corresponding to each frame of image data.
3 . The computer information product of claim 2 , wherein the alpha information is m-bit alpha information and comprises:
a first alpha portion including n most significant bits of the m-bit alpha information for the frame in a contiguous block; and a second alpha portion including k least significant bits of the m-bit alpha information for the frame in a contiguous block.
4 . The computer information product of claim 3 , wherein the first alpha portion begins on a memory boundary.
5 . The computer information product of claim 4 , wherein the second alpha portion is subsequent to and contiguous with the first alpha portion in the bitstream.
6 . The computer information product of claim 1 , wherein m equals ten, n equals eight and k equals two.
7 . The computer information product of claim 1 , wherein the bitstream is part of the file format for video data stored in a data file.
8 . A method for writing m-bit image data into a bitstream, comprising, for each frame of the image data, the steps of:
allocating memory for the bitstream; gathering n most significant bits of each m-bit value of the frame to provide n-bit values, wherein n is an integer and a power of two; placing the gathered n-bit values as a contiguous block in a first data portion of the bitstream in the allocated memory, wherein the first data portion ends on a memory boundary; gathering k least significant bits of each m-bit value of the frame into n-bit words of the k-bit values; and placing the n-bit words of k-bit values as a contiguous block in a second data portion of the bitstream in the allocated memory, wherein the second data portion precedes and is contiguous with the first data portion in the bitstream.
9 . The method of claim 8 , wherein the bitstream is part of the file format for video data stored in a data file.
10 . A computer program product, comprising:
a computer readable medium; computer program instructions stored on the computer readable medium that, when interpreted by a computer, instruct the computer to perform a method for writing m-bit image data into a bitstream, comprising, for each frame of the image data:
allocating memory for the bitstream;
gathering n most significant bits of each m-bit value of the frame to provide n-bit values, wherein n is an integer and a power of two;
placing the gathered n-bit values as a contiguous block in a first data portion of the bitstream in the allocated memory, wherein the first data portion ends on a memory boundary;
gathering k least significant bits of each m-bit value of the frame into n-bit words of the k-bit values; and
placing the n-bit words of k-bit values as a contiguous block in a second data portion of the bitstream in the allocated memory, wherein the second data portion precedes and is contiguous with the first data portion in the bitstream.
11 . The computer program product of claim 9 , wherein the bitstream is part of the file format for video data stored in a data file.Join the waitlist — get patent alerts
Track US2007076009A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.