Fault Tolerance in JPEG Image Headers Using Backus-Naur Form

Size: px
Start display at page:

Download "Fault Tolerance in JPEG Image Headers Using Backus-Naur Form"

Transcription

1 Fault Tolerance in JPEG Image Headers Using Backus-Naur Form March 19, 2002 Presented by: Brandon Smith Advisor: G. Robert Redinbo, Ph.D. In Completion of Master s Degree Plan II Requirements University of California, Davis Department of Electrical & Computer Engineering

2 Abstract The JPEG standard, a popular color still image compression standard, is used in critical scientific, surveillance, medical, and remote-sensing applications. This lossy compression technique relies on the discrete cosine transform coupled with Huffman or arithmetic coding for significant file size savings. However, a decoder will not be able to properly decompress information from an incorrectly formatted JPEG image. Two-byte JPEG image headers delineate the encoding tables, parameters, and other data needed for image decompression. A Backus-Naur Form (BNF) description of the JPEG standard is utilized to create a JPEG image parser capable of syntactically verifying the integrity of a JPEG format image. This parser is part of a larger fault tolerant system that allows the integrity of JPEG images to be verified while detecting transient errors. 2

3 Project Motivation Many critical scientific, surveillance, medical, and remote-sensing applications use JPEG image encoding to compress still images. JPEG compression typically leads to drastic file size savings when compared to similar, uncompressed images. There are many benefits inherent in smaller files. One benefit is the ability to store a greater number of images given a finite amount of storage. This can be important in applications where the amount of storage is limited due to cost or power consumption constraints. In 1999, the United States Navy s USA satellite program faced this exact situation. The USA s mission was to capture galactic X-ray images. However, the number of image captures possible was limited by the storage space available aboard the satellite. It was not practical for the satellite to contain more storage due to power constraints. Orbiting the planet at a rate of one revolution approximately every 90 minutes, the photographs were downloaded as the satellite passed over a downlink station and the storage space released for reuse. If the images could be compressed aboard the craft, a dramatically larger number of images could be captured and transmitted with minimal effect on satellite power consumption. JPEG is also commonly used in medical imaging devices. Digital X-rays and other medical images are typically stored and transmitted as JPEG images. The ability for medical personnel to share detailed diagnostic images across large distances would not be practical without the use of JPEG compressed images. Should the image become unreadable due to an error during, the patient could be forced to endure further radiation exposure. However, the use of JPEG is a tradeoff. On one hand, are the many advantages associated with the use of image compression. On the other hand, as with all compressed data formats, there is an inherent risk of data loss associated with the use of JPEG images. Most notably, due to the use of instantaneous codes such as the Huffman code, a single bit error can result in all subsequent codewords being in error. More subtle, but just as detrimental, is the risk of an incorrectly formatted JPEG image. In this work, a fault tolerant system is proposed which allows the format of JPEG images to be verified. 3

4 Introduction to JPEG Images The JPEG standard is among the most popular color still image compression standards. Developed by and named after the Joint Photographic Experts Group, JPEG images are widely used because of their ability to accurately represent images using only a small percentage of the bytes found in similar uncompressed images. JPEG format images typically consume fewer bytes than uncompressed images for several reasons. JPEG images may be compressed using a lossy algorithm. This means that some data is approximated in a way that allows for more efficient compression of the image. Small details of an image may be lost if compressed using a lossy method, but will often result in a dramatically reduced image file size. However, at higher compression ratios, undesirable artifacts of compression become obvious when viewing the JPEG compressed image. After the image is transformed and quantized, either an arithmetic or Huffman coding scheme is used to compress most of the data found in JPEG images. Since the bulk of the data in an image is compressed, significant file size savings are attainable. Coding tables, quantization tables, and other necessary image parameters are stored within the image to facilitate decompression as dictated by the JPEG image standard. Two-byte JPEG image headers delineate these tables, parameters, and other image data, and are important items within the JPEG standard. In this work, a fault tolerant system is proposed which allows these headers and parameters to be syntactically verified before and after transmission and/or storage. JPEG Format Headers Each JPEG header segment begins with one or more byte-aligned 0xFF bytes. Typically, only a single 0xFF byte is seen, but the JPEG standard allows for multiple 0xFF bytes for use in JPEG systems where word alignment is desired. This is followed by a non-zero single-byte code used to determine the exact function of the data that follows. The segments fall into two categories: those with parameters and those without parameters. Should the marker code indicate that a particular data segment requires parameters, the subsequent two bytes will contain the byte length of the segment. Such lengths include the 4

5 two bytes in the length parameter, but exclude the bytes used in the marker that defines the function of the segment. If the length of a segment is known, it may contain accidental markers ; bytes that look like a marker, but are only data. These bytes will not be construed as data since the segment length is known for nearly all data segments. The exception is the entropy-coded data section, which is of unspecified length. This requires that any 0xFF bytes be stuffed with an additional 0x00 byte. Since 0xFF 00 is an illegal combination for a marker, the stuffing of 0xFF bytes with 0x00 bytes prevents inadvertent generation of markers within these segments. The following table lists the header codes, segment lengths and descriptions for all JPEG headers. All meaningful headers are contained within the table, including areas reserved for future expansion of the JPEG standard. Two byte patterns are not considered valid byte codes. All markers begin with one or more 0xFF bytes. For this reason, 0xFF is not included in the table since 0xFF will never be considered a valid header code. The byte immediately following the last 0xFF byte will be construed to be the intended marker. Similarly, the 0x00 byte is also not listed in the table because it is used for stuffing 0xFF bytes as explained above. Header Code 0xFE Segment Length Variable Segment Description Comment Marker Segment. May contain text comments. Prohibited from containing information that could affect decoding. 0xF0 0xFD Reserved for future expansion of JPEG standard. 0xE0 0xEF 0xDF 0xDE Variable 3 bytes Variable Application Data Marker Segment. Reserved for application use. Often contains image processing or coding hints. May contain JPEG stream for small thumbnail images. May also contain text such as copyright information and identification of application that compressed the image. Expand Marker Segment. Indicates expansion of the spatial resolution of the reference data needed by the hierarchical differential frame that follows. Define Hierarchical Progression Marker Segment. Indicates the parameters identifying the dimension, components, and relative sampling of the final image of the hierarchical progression. 5

6 0xDD 0xDC 0xDB 0xDA 0xD9 0xD8 0xD7 0xD0 0xCF, 0xCE, 0xCD, 0xC7, 0xC6, 0xC5 0xCB, 0xCA, 0xC9, 0xC3, 0xC2, 0xC1, 0xC0 0xCC 4 bytes 4 bytes Variable Variable Variable Variable Variable Define Restart Interval Marker Segment. Provides mechanism for setting and resetting restart interval. When the restart interval is zero, the restart function is disabled. Define Number of Line Marker Segment. Provides a mechanism for defining or redefining the number of lines in the image at the end of the first scan. Define Quantization Table Marker Segment. Defines one or more quantization tables. The DQT marker has meaning only for DCT based algorithm. Start of Scan Marker. Begins a scan header. Followed immediately by entropy-coded data for the scan. End of Image Marker. Terminates the JPEG compressed data stream. Start of Image Marker. Begins the JPEG compressed data stream. Restart Marker. Appended to the compressed data between restart intervals. Eight different marker codes allows for a three-bit, modulo-8 restart interval count. Differing marker codes allow decoding software to ensure sequential reception of data blocks. Analogous to a sliding window protocol. Differential Start of Frame Markers. Indicates the beginning of a frame header, which contains the frame parameters that apply to all scans within the frame. The particular value of the marker code identifies the mode of compression and the entropy coder used within the frame. Non-Differential Start of Frame Markers. Indicates the beginning of a frame header, which contains the frame parameters that apply to all scans within the frame. The particular value of the marker code identifies the mode of compression and the entropy coder used within the frame. Define Arithmetic Coding Conditioning Marker Segment. Defines one or more tables of parameters for the conditioning of the probability estimates used in the arithmetic coding procedures. 0xC8 Reserved for future expansion of JPEG standard. 0xC4 Variable Define Huffman Table Marker Segment. Defines one or more Huffman tables. 0x02 0xBF Reserved for future expansion of JPEG standard. 0x01 Parameterless Parameterless Parameterless Parameterless Temporary Marker. Temporarily used by arithmetic encoders. Figure 1. JPEG marker byte codes, segment lengths, and segment descriptions. 6

7 A walk-through of an actual JPEG example image is provided in Appendix B. JPEG header markers and their respective data segments are highlighted and an explanation is provided for each. Singly Occurring, Statistically Independent Faults Throughout this work, it is assumed that only a single fault occurs at any one time. Subsequent faults occur only after the system has completely processed and recovered from the previous fault. The probability of two statistically independent faults occurring simultaneously is the product of the probabilities of two independent faults occurring separately. Similarly, the probability of n statistically independent faults occurring simultaneously is equal to the product of the probabilities of n faults occurring individually. If the probability of a single, statistically independent fault is small enough, the probability of two or more simultaneously occurring faults becomes minute enough so as to become statistically insignificant. If faults are not independent, they may occur in larger numbers, which severely complicates achieving fault tolerance. Hence, it is assumed that there is a very small likelihood of recovering from multiple failures. We assume that if an event is severe enough to cause multiple errors, the likelihood that the system could flawlessly recover to a pre-failure state is very low. The handling of multiple failures is an area of study within fault tolerance known as Byzantine General problems. In some sense, Byzantine General problems are a slippery slope. If two faults occur within the system, it seems possible that three faults could just as easily occur. If three faults occur, could ten faults just as easily occur? In short, this work assumes that it is possible to recover from one concurrent fault, however, should more than one fault occur, the likelihood of recovery is very small. One fault does not necessarily translate into one error. In certain cases, a single bit error may result in many bits being incorrect. For example, if the incorrect memory address is read because of an error in the address, many bits will be wrong. In this case, a single fault is able to adversely affect many bits. 7

8 It should be clear that this work, like most works within the area of fault tolerance, is not meant to completely eliminate the possibility of failure. The objective is instead to dramatically reduce the probability that failure will go undetected. Backus-Naur Form The JPEG image format can be efficiently described using Backus-Naur Form (BNF). Originally created for the purposes of specifying and ensuring syntactic validity of programming languages, BNF can be extended slightly to include the description of JPEG format images. BNF definitions consist of terminal and non-terminal symbols. Terminal symbols are the most basic elements contained in the language or system. Non-terminal symbols are objects that may be built from terminal and non-terminal symbols, with recursion occurring often. Non-terminal symbols are expressed in lower case and surrounded by angle brackets ( < and > ). Decisions are handled by the operator, which indicates an or relationship. An example BNF description of a hexadecimal number text string is given in Figure 2. <hexnumber> 0 x <hex> <hex> <hdigit> <hex> <hdigit> <hdigit> A B C D E F Figure 2. Example BNF definition of a hexadecimal number text string. In the example shown in Figure 2, the non-terminal <hexnumber> contains the terminal symbols 0 and x followed by the non-terminal <hex>, in that respective order. <hex> consists of either a single hexadecimal digit (<hdigit>) or a single hexadecimal digit followed by another <hex> non-terminal. The result is that <hex> effectively contains one or more hexadecimal digits. <hdigit> contains a single digit in the range of 0, 1,, E, F. Using this BNF definition as an example, the parsing of the hexadecimal number 0xFFD8 would look as shown in Figure 3. The terminals are shown as triangles with their respective values inside. Non- 8

9 terminals are shown as rounded rectangles with the name of the non-terminal inside. The validated string can be read back by parsing the tree from left to right, reading only the terminals. <hexnumber> 0 x <hex> <hdigit> <hex> F <hdigit> <hex> F <hdigit> <hex> D <hdigit> Figure 3. Example BNF text parsing tree of hexadecimal number 0xFFD8. The BNF used in this example is shown in Figure 1. 8 In 1990, Thornton and Anderson created a BNF for describing the format of JPEG image headers and data segments. In this work, their BNF has been used to create a parser. The Hazards of using BNF The simple, recursive nature of BNF provides a means for constructing a syntactically correct parser to interpret a JPEG data stream. However, some important caveats exist in the use of BNF and must be resolved before a parser may be constructed from the given BNF. The example given in Figure 2 and traversed in Figure 3 has an important property. The recursion found within the <hex> non-terminal is right-handed. As shown in Figure 3, the tree tends to grow to the right as it progresses downwards. This is because within <hex>, <hdigit> comes before <hex>. If the 9

10 order of these non-terminals was reversed, the BNF would still be valid and the descriptions equivalent, but the recursion would be left-handed, and therefore the tree would grow to the left. The implications of this are seen when the BNF is exercised in the form of a function within a program. When writing code based on a BNF, non-terminals can be considered functions and terminal symbols considered constants. In the case of a left-handed version of the BNF similar to the right-handed version shown in Figure 2, within the <hex> non-terminal, <hex> would precede <hdigit>. This would cause every call to the hex() function to immediately initiate another call to hex(), which would in turn initiate another, resulting in an infinite loop. To prevent this from occurring in this work, any left-handed BNF has been coded in right-hand form to make implementation more straightforward. In the given example, the x terminal symbol is assumed to be lower case. Upper case X would not be allowed. Similarly, the alphabetic hexadecimal digits must be upper case. Lower case digits would be considered to be in error. Including both upper and lower case digits as valid terminals within <hdigit> causes the number of possible terminals to increase from 16 to 22. That is, there would be 22 possible valid hexadecimal digits, seemingly a paradox. In the existing example, preprocessing of the string of digits would be required to correctly parse lower case digits without increasing the number of terminals. Fortunately, throughout this work, we are working with hexadecimal digits made of 4 bits each (0000, 0001,, 1110, 1111), rather than text strings of hexadecimal digits. When constructing a JPEG header BNF, some non-standard modifications must be made. Most JPEG data segments (i.e. quantization and Huffman table definitions, etc.) begin with 2 bytes used to indicate the number of bytes contained in that particular data segment. A parser can read the length data and use this information to detect the location of the next JPEG header marker. Unfortunately, BNF does not include this kind of construct. There is no counting ability within BNF because of the larger issue of BNF being data independent. The BNF simply parses the data and does not have the ability to read or interpret data. To make up for this deficiency, function placeholders are shown in the BNF provided by Thornton and Anderson. These placeholders are s64chr(), s64int(), huffspec(), comspec(), appspec(), fspec(), and sspec(). Each placeholder function is distinct, but has a common purpose: to consume the 10

11 number of bytes needed to exactly arrive at the next data field while performing validation on parameters seen within the function. Another complication of the fact that Backus-Naur Form can only verify the syntax of the JPEG image headers is that the BNF is not able to perform any checking of the content of data segments within the image. The task of detecting faults in the JPEG data segments is currently under investigation by Professor Robert Redinbo and Cung Nguyen at the University of California at Davis. The goal of their work is to ensure that no errors exist within the JPEG data segments at the time these segments emerge from the compression unit. JPEG Image Header Parser The JPEG image header parser interprets a JPEG data stream and determines the validity of the stream. Valid streams will follow the assertions found within the BNF while invalid streams will not. When an error is encountered, the parser immediately ceases processing of the stream and generates an error message indicating where the error occurred. If the parser is able to parse to the End of Image marker (EOI) with no errors, it is highly probable that the image is formatted correctly. As a proof-of-concept, a JPEG image header parser has been created for this project. The C++ source code is given in Appendix E. As written, the parser accepts a JPEG image file name in the form of a command-line argument. This file is opened as a binary stream that is processed one byte at a time. The output of the parser is a text string indicating either a valid or invalid JPEG header structure. If the image is valid, the complete structure of the image is presented. If the image is not valid, a partial image structure is displayed along with a message indicating what the parser was anticipating but did not receive. This parser is considered a recursive descent parser. The stream is read from left to right, or beginning to end, and the next byte is not read until the current byte is found to fit legally into the assertions given in the BNF. If no legal fit can be found, the parser will backtrack to the last point of decision and attempt a new path. If all decisions are exhausted without legal placement of the byte, the parser will ascend to the next previous decision and again attempt to find an appropriate fit. This process 11

12 will continue until the byte is placed or all decisions are exhausted. When backtracking, all bytes read since this decision must be replaced to be read again later. In order to facilitate backtracking, several stack data structures have been implemented. Successful backtracking requires that bytes emitted from the input file stream and read by the parser getnextbyte() function be saved for later use. Bytes are saved into the Used Stack as shown in Figure 4 (part 1). When backtracking becomes necessary, the appropriate number of bytes are moved from the Used Stack to the Backtrack Reserve Stack Input Stream Used Stack Backtrack Reserve Stack (shown in part 2 of the figure). When the parser requires more bytes, the getnextbyte() function reads from the Backtrack Reserve Stack while placing the bytes back into the Used Stack (see 1 getnextbyte() function reads from Input Stream. Bytes also stored to Used Stack. getnextbyte() figure part 3). This double stack mechanism allows the left-to-right ordering of the bytes to be Input Stream Used Stack Backtrack Reserve Stack preserved while accommodating the need to backtrack. A pair of similar stacks is used to maintain and display the JPEG image structure. 2 getnextbyte() Backtracking. Move used bytes to Backtrack Reserve Stack. A quick glance at the JPEG BNF will reveal numerous examples of recursion. Some non-terminal functions are optional but may be Input Stream Used Stack Backtrack Reserve Stack executed many more times. Other functions may be executed an arbitrary number of times but are required to be executed at least once. To 3 getnextbyte() getnextbyte() reads from Backtrack Reserve Stack until empty. Bytes returned to Used Stack. accommodate this, the concepts of hard fails and soft fails are employed within the parser. Hard Figure 4. Explanation of the use of stacks to aid in backtracking within the parser. fails occur when the parser does not find a required marker. When a hard fail occurs, parsing of the image data ceases and the image is declared invalid. Soft fails occur in optional or recursive functions when a 12

13 match cannot be found for the current byte. When this occurs, the parsing of the image data will continue after a small amount of backtracking. Parsing begins with a call to the jpeg_data() function. As shown in its BNF equivalent, jpeg_data() allows for several possible forms of JPEG data, all beginning with the Start of Image (<soi>) non-terminal and ending with the End of Image (<eoi>) non-terminal. In this project, only the first form of JPEG data is supported. The remaining forms are primarily used to encapsulate JPEG segments outside of a formally created image. These forms are only of use within specialized software systems that may make use of auxiliary encoding tables, for example. Within jpeg_data(), function calls are immediately made to the soi(), nframe(), and eoi() functions. If all three of these functions return true, jpeg_data() will return true and the image will be considered valid. The first opportunity for a hard fail occurs within the soi() function. At least two calls to getnextbyte() are made from within soi(). The first bits returned must comprise be a string at least one 0xFF byte. The immediately following byte must be 0xD8, as 0xFF D8 is the marker code for a Start of Image marker. If these respective bytes are not found, the function will trigger a hard fail by initiating a call to the badimage() marker which will cease parsing of the image, indicate that no Start of Image marker was found, and exit the program. If the byte match, soi() will return true to jpeg_data(). After execution returns to jpeg_data(), a call is made to the nframe() function which calls tblsmisc(), nsof(), fparms(), and scanset(), as dictated by the BNF. A glance at the BNF confirms that the <nframe> non-terminal simply consists of non-terminals <tblsmisc>, <nsof>, <fparms>, and <scanset>. Again, the parser functions are constructed to duplicate the BNF. In this case, sequential calls are made to the above functions. Within tblsmisc(), the parser is presented with its first decision, and thus the first opportunity to soft fail. At the same time, tblsmisc() also represents the first recursive function. The <tblsmisc> nonterminal allows for the declaration of quantization tables, Huffman tables, arithmetic coding data, restart intervals, comments, and application data. Additionally, <tblsmisc> may also be empty. The empty set (denoted as ε ) serves dual purposes. First, <tblsmisc> may simply not contain any bytes, in 13

14 which case control flow will be returned to <nframe>. Secondarily, the empty set provides a means of exiting the recursion found in <tblsmisc>. If an instance of <tblsmisc> contains only a single data segment, two instances of <tblsmisc> will actually be required due to the non-terminals recursive structure. The second instance will be the empty set. In general, if <tblsmisc> contains n data segments, n+1 instances of <tblsmisc> will be required allowing for the empty set to exit the recursion. The only way the parser can detect the empty set is to receive a marker that is not valid. An invalid marker will be assumed to be part of a subsequent non-terminal and will represent the end of the tblsmisc() recursion tree. The mismatching bytes must be replaced. At this point, the backtracking function backup() is executed. When control is returned to nframe(), nsof() is called and will read the bytes out of the Backtrack Reserve stack. Parsing will continue in the manner described until either a hard failure is encountered or the end of the image is reached. If the end of the image is reached, the parser will display the entire structure of the image. If the parser were actually put into a live system, the code responsible for generating and displaying the image structure could be removed as it would not be necessary. Only a single lead output would be need to indicate valid or invalid JPEG formatting. Appendix C contains example output from the parser. Several correctly and incorrectly formatted images are parsed. The parser has indicated that valid images are correctly formed, while generating error messages for the invalid images. Parser Limitations Under certain circumstances, the proposed JPEG image format parser will not be able to detect certain formatting errors. As shown by the BNF given in Appendix A, within the JPEG standard there are multiple locations where any of several markers would be valid. If a Hamming distance of exactly one separates any two of these markers, special care must be taken. If the single bit that separates two markers is inverted, the parser may not be able to detect this error provided that the data segments that follow each marker use similar or compatible formatting. As an example, within the <tblsmisc> BNF non-terminal, the marker codes shown in Figure 5 could change from one to the other with only a single bit flip. 14

15 DHT[0xC4] DAC[0xCC] = ( ) b DAC[0xCC] APPn[0xEC] = ( ) b DHT[0xC4] APPn[0xE4] = ( ) b : COM[0xFE] : APPn[0xEE] COM[0xFE] APPn[0xEE] = ( ) b Figure 5. Markers subject to possible transformation with a single bit error. Expansion of exclusive-or operation between COM[0xFE] and APPn[0xEE] indicating Hamming distance of 1. Fortunately, the format of the data that succeeds each of these pairs of markers is different for all cases except the last. The differing data formats ensure with very high probability that should such a bit flip occur, the parser would be able catch the error and alert the system that an error has occurred. In the case of COM[0xFE] and APPn[0xEE], the last example in the list above, the data formats are not distinguishable; however, the data contained in those segments are not required for decompression, so the integrity of the actual viewable image will not be corrupted even if a comment segment is confused for an application data segment or vice-versa. Other points of contention may exist within the JPEG standard, but will not be investigated further in this project because of the very small probability that a random, transient error would corrupt a marker rather than a part of a parameter or data segment. The use of the empty set within certain JPEG non-terminals represents another shortcoming of using BNF as the basis for verification. As explained earlier, the empty set allows for empty non-terminals and also provides a mechanism for exiting a recursive non-terminal. Unfortunately, the empty set could also allow an incomplete JPEG image to escape detection. For example, within the <tblsmisc> nonterminal, in addition to non-terminals such as Huffman and quantization table definitions, the empty set is a valid terminal. A problem could arise if a necessary item such as a Huffman or quantization table was errantly excluded from the JPEG stream. Unfortunately, the parser would assume that instance of <tblsmisc> was empty and consider the empty contents valid. This problem could be addressed by creating global variables that could be initialized false but set true inside critical function. At the conclusion of parsing, these variables would be checked to ensure that all necessary functions were visited. 15

16 The JPEG Header Fault Tolerant System When putting together a system to verify and ensure error-free delivery of JPEG images, it is important to keep in mind some of the underlying project assumptions. First and most importantly, only one error will occur at any one time. In other words, faults will be singly occurring and statistically independent. Second, we assume an image may be either transmitted immediately or saved for later transmission. We can also assume that data segments are error-free immediately after being created because of Redinbo and Nguyen s ongoing work. Transient errors may subsequently occur, but data segments are correct at the time they exit the compression unit. This is an important distinction because as the image data is being collated, a cyclic redundancy check (CRC) may be calculated and saved to memory along with the image. Since the data is correct, the CRC will accurately reflect the contents of the JPEG image. However, there is no guarantee that the image is formatted correctly. The task of ensuring a valid JPEG image format is performed by the JPEG parser discussed in earlier sections. The proposed fault tolerant system can logically be divided into two parts. First is the front end of the system, which is responsible for moving images from the compression unit into memory and ensuring their validity. The back end of the system responsible for moving images from memory to the transmission unit while verifying the integrity of the image data. The front end of the JPEG fault tolerant system is shown in Figure 6. The system originates with JPEG image data and cyclic redundancy checks emerging from the compression unit. As stated earlier, the data within each data segment is assumed to be correct as it exits the compression unit because of the work of Redinbo and Nguyen. However, the image data may be incorrectly formatted. If it is, the parser will indicate that the format is invalid by placing a 0 on its output line. This will propagate to the output through the AND gate and the image will be declared invalid. 16

17 Compression Unit Image Data Image Data, CRCs CRCs CRC Cache Main Memory (Image Data, CRC) CRC Gen Image Data ( mem read) Parser (Software Format Verification) CRCs Comparator CRCs Valid Format? CRCs Match? & Valid Image? Figure 6. The front end of the proposed JPEG image fault tolerance system. Ensures that images are moved from the compression unit into memory with high assurance that the stored JPEG images are correct. The basic concept is that an image is written to memory, then read from memory. A CRC is generated from the resulting image. If this CRC matches the originally generated CRC, it can be assumed that the JPEG image stored in memory is correct, assuming it was correct when emerging from the compression unit. If any problems occur, such as mismatched CRCs or bad image data, the error will be propagated to the output and the appropriate action taken. Since it would be difficult to determine the exact location of the error, the image is simply recompressed should an error arise. The following table indicates the locations and descriptions of possible faults. Also included in the table is each fault s coverage or description of how the fault will be handled. Summary of Faults and Coverage for Front End of JPEG Fault Tolerant System Location of Fault Description/Effect of Fault Coverage for Fault Compression Unit Errors in image data segments Assuming will not occur due to Redinbo and Nguyen s work 17

18 Incorrect formatting of JPEG image data Parser will indicate invalid format. Recompress. Parser Main Memory Incorrect computation of CRC Error in parser incorrectly declares invalid format when format is actually valid Error in parser incorrectly declares image format valid when errors exist Image data not written correctly (bit errors, wrong address, write enable issues, etc.) Image data not read correctly CRC not written correctly CRC is regenerated after image data is placed in memory. Original CRC and regenerated CRC will not match. Recompress. Image will be declared invalid. Recompress. Assumption is that this will not occur because only a single error is allowed in system. Two errors would have to occur (incorrect formatting, parser error). Data read out of memory and CRC recomputed, compared with original CRC. If data is wrong, comparator will indicate. Recompress. Data read out of memory and CRC recomputed, compared with original CRC. If data is wrong, comparator will indicate. Recompress. See back end system description. (Under Figure 7.) CRC Cache CRC not written correctly Will not match regenerated CRC. Recompress. CRC not read correctly Will not match regenerated CRC. Recompress. CRC Generator Comparator Incorrect CRC generated (data is correct) Inadvertently correct CRC generated from bad image data CRCs match but comparator indicates mismatch CRCs mismatch but comparator indicates match CRCs match but are both incorrect Will not match cached CRC. Recompress. Will not happen. Only a single error is assumed. Would require two errors (bad image data from memory, incorrect generation). Image declared invalid. Recompress. Will not happen. Only a single error is assumed. Would require two errors (error to create bad CRC, incorrect comparison) Will not happen. Only a single error is assumed. 18

19 AND gate Both inputs 1, but output 0. Inputs not both 1, but output 1. Image declared invalid. Recompress. Will not happen. In order for an input to be 0, an error must have occurred. Cannot have a secondary error. The back end of the JPEG fault tolerant system is shown in Figure 7. The objective is now to transmit the image currently stored in memory. The communication protocol with which the images are transmitted will likely have error correction or detection capability, but this is not sufficient to guarantee that the image is successfully read from memory. Errors could occur between the image leaving memory and arriving under the jurisdiction of the communication protocol. For this reason, as the image is being transmitted, the communication system will be snooped and the serial image data returned to parallel form. A CRC is then calculated from this image data and compared to the CRC originally stored with the image. If an error occurs, such as mismatching CRCs or bad image data, the data could be reread from memory. If the error occurs again, recompression is necessary. This implies that the raw image data should not be released for reuse until the compressed image is successfully transmitted. Main Memory (Image Data, CRC) Image Data, CRCs Transmission Unit Serial Image Data CRCs CRC Cache CRCs Serial to Parallel CRC Gen CRCs Image Data Comparator Valid Image? Figure 7. The back end of the proposed JPEG image fault tolerance system. Ensures that images are moved from memory and transmitted with high assurance that the stored JPEG images remain intact. 19

20 The following table indicates the locations and descriptions of possible faults. Also included in the table is each fault s coverage or description of how the fault will be handled. Summary of Faults and Coverage for Back End of JPEG Fault Tolerant System Location of Fault Description/Effect of Fault Coverage for Fault Main Memory CRC Cache Transmission Unit Incorrect reading of image data Image data was written incorrectly Transient error causes single bit error in a memory word. More than one bit error in single word CRC written incorrectly CRC not read correctly CRC not written correctly CRC not read correctly Incorrect CRC transmitted Incorrect image data transmitted Regenerated CRC will not match stored CRC. Reread or recompress. See front-end description. (Under Figure 6.) ECC memory used and will correct single bit errors in any number of words. Assuming will not happen. Only a single error is assumed. Regenerated CRC will not match stored CRC. Recompress. Regenerated CRC will not match stored CRC. Reread or recompress. Will not match regenerated CRC Will not match regenerated CRC Assuming only single error, so image will be correct. Regenerated CRC will not match stored CRC. Reread or recompress. Serial to Parallel Error(s) in serial to parallel conversion Regenerated CRC will not match stored CRC. Reread or recompress. CRC Generator Incorrect CRC generated (data is correct) Will not match cached CRC. Reread or recompress. Inadvertently correct CRC generated from bad image data Will not happen. Only a single error is assumed. Would require two errors (bad image data from memory, incorrect generation). Comparator CRCs match but comparator indicates mismatch Image declared invalid. recompress. Reread or 20

21 CRCs mismatch but comparator indicates match CRCs match but are both incorrect Will not happen. Only a single error is assumed. Would require two errors (error to create bad CRC, incorrect comparison) Will not happen. Only a single error is assumed. Figures 6 and 7 both include separate output lines labeled Valid Image. The exact function of this output depends on the implementation of the system. However, one viable option would be to use the Valid Image line as an interrupt signal. In order to prevent meaningless interrupts causes by unsettled logic, the interrupt would likely be disabled the majority of the time. For the front-end system, at the same time the parser indicates a valid or invalid format, it could also signal the completion of parsing. This completion signal could be used as a mechanism for enabling the Valid Image interrupt. The interrupt service routine would simply recompress the previous image. For the back-end system, a similar scheme could be adopted. The CRC Generator could have a secondary output used to signal the completion of CRC calculation. Again, this signal could be used to enable the interrupt. 21

22 Appendix A: Backus-Naur Form of JPEG Image Data (Thornton and Anderson, 1990) <anyb> BY00 BYFF <non00b> BY01 BYFF <nonffb> BY00 BYFE <indexb> BY00 BY3F <kxindexb> BY01 BY3F <spechi0b> BY00 BY01 BY02 BY03 <spechi1b> BY10 BY11 BY12 BY13 <nsofb> BYC0 BYC1 BYC2 BYC3 BYC9 BYCA BYCB <dsofb> BYC5 BYC6 BYC7 BYCD BYCE BYCF <rstmb> BYD0 BYD7 <appnb> BYE0 BYEF <jpgnb> BYF0 BYFD <resb> BY02 BYBF Figure A-1. BNF for JPEG byte groupings. ( BY indicates a byte.) <fill> ε <fill> BYFF <prefix> <fill> BYFF <appn> <prefix> <appnb> <com> <prefix> BYFE <dac> <prefix> BYCC <dhp> <prefix> BYDE <dht> <prefix> BYC4 <dnl> <prefix> BYDC <dqt> <prefix> BYDB <dri> <prefix> BYDD <dsof> <prefix> <dsofb> <eoi> <prefix> BYD9 <exp> <prefix> BYDF <jpg> <prefix> BYC8 <jpgn> <prefix> <jpgnb> <nsof> <prefix> <nsofb> <rstm> <prefix> <rstmb> <soi> <prefix> BYD8 <sos> <prefix> BYDA <tem> <prefix> BY01 <forbid> <prefix> <resb> <tem> <jpg> <jpgn> Figure A-2. BNF for JPEG markers. 22

23 <intval> <anyb> <anyb> <len> <intval> <qbyt_spec> <spechi0b> <qint_spec> <spechi1b> <qt_tbl> <qbyt_spec> s64chr() <qbyt_spec> s64chr() <dqt_data> <qt_tbl> <dqt_data> <qt_tbl> <dc_spec> <spechi0b> <ac_spec> <spechi1b> <tabspec> <dc_spec> <ac_spec> <huff_tbl> <tabspec> huffspec() <dht_data> <huff_tbl> <dht_data> <huff_tbl> <ul> <anyb> <kx> <kxindexb> <dac_cond> <dc_spec> <ul> <ac_spec> <kx> <dac_data> <dac_cond> <dac_data> <dac_cond> <rstintv> <intval> <tblsmisc> ε <tblsmisc> <dqt> <len> <dqt_data> <tblsmisc> <dht> <len> <dht_data> <tblsmisc> <dac> <len> <dac_data> <tblsmisc> <dri> <len> <rstintv> <tblsmisc> <com> <len> comspec() <tblsmisc> <appn> <len> appspec() Figure A-3. BNF for JPEG markers. 23

24 <prec> <anyb> <nlines> <intval> <linlen> <intval> <nfc> <non00b> <fparms> <len> <prec> <nlines> <linlen> <nfc> fspec() <nsc> BY01 BY02 BY03 BY04 <ssstart> <indexb> <ssend> <indexb> <sapprox> <anyb> <prog_spec> <ssstart> <ssend> <sapprox> <sparms> <len> <nsc> sspec() <prog_spec> <ecdata> ε <ecdata> <nonffb> <ecdata> <rstm> <ecdata> BYFF BY00 <scan> <tblsmisc> <sos> <sparms> <ecdata> <ecdataf> <ecdata> <ecdata> <dnl> <len> <nlines> <scanf> <tblsmisc> <sos> <sparms> <ecdataf> <scanset> <scanf> <scanset> <scan> <nframe> <tblsmisc> <nsof> <fparms> <scanset> <exp_data> BY01 BY10 BY11 <dtblsmisc> <tblsmisc> <tblsmisc> <exp> BY00 BY03 <exp_data> <tblsmisc> <dframe> <tblsmisc> <dsof> <fparms> <scanset> Figure A-4. BNF for JPEG frames, scans, and entropy-coded data. <xframes> ε <xframes> <dframe> <xframes> <nframe> <fset> <nframe> <xframes> <jpeg_data> <soi> <nframe> <eoi> <soi> <tblsmisc> <eoi> <soi> <tblsmisc> <dhp> <fparms> <fset> <eoi> <soi> <forbid> <eoi> Figure A-5. BNF for JPEG compressed data streams. 24

25 5 pixels Appendix B: Sample JPEG Image The image shown enlarged to the right is 516 bytes. These bytes are shown below the image. The colors indicate the nature of the data the particular bytes describe (shown below). 4 pixels Start of Image / End of Image markers 0xFF D8 = Start of Image Marker 0xFF D9 = End of Image Marker Application Specific Data Marker + Data First 2 bytes comprise the marker. Next 2 bytes indicate the length of the field. Remainder of bytes are data. In this case, when displayed inside an ASCII text editor, the first 5 bytes of the second application data field (0x41 0x65) spell the word Adobe, evidence of the last application to have compressed this image. Define Quantization Table Marker + Data First 2 bytes comprise the marker. Next 2 bytes indicate the length of the field. Next byte indicates byte or integer specification. In this case, the fifth byte is 0x00, which corresponds to a byte specification. This is followed by 64 bytes describing the Huffman table. After those 64 bytes, we are not at the end of the field, but rather have a 0x01 byte. This indicates the presence of another Huffman table of byte specification. Another 64 bytes follow to describe the second Huffman table. Start of Frame Marker + Data First 2 bytes comprise the marker. Next 2 bytes indicate the length of the field. The next byte indicates ff d8 ff e a ff ee 00 0e f ff db a 12 1a c 1c 1c 1c c 0c 0c 0c 0c 0c 11 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c a 1a 21 1d e 0e 0e e 0e 0e 0e c 0c 0c 0c 0c c 0c 0c 0c 0c 0c 11 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c ff c ff dd ff c4 01 1b a 0b a 0b b1 42 a1 05 d1 c1 14 f e1 82 f a2 b2 15 d c e2 f2 a b3 84 c3 d3 75 e3 f a4 85 b4 95 c4 d4 e4 f4 a5 b5 c5 d5 e5 f a6 b6 c6 d6 e6 f f f0 a1 b1 04 c1 d1 e1 f a2 b c2 d a3 54 e2 f b3 84 c3 d3 75 e3 f a4 85 b4 95 c4 d4 e4 f4 a5 b5 c5 d5 e5 f ff da 00 0c f 00 fa 5f 3f a9 f2 57 f ff fe 8c e1 ff 00 3f fe 90 ff d9 the precision of the frame. This is followed by 2 bytes indicating the number of lines in the image (height) and 2 bytes indicating the line length. Together, these give the dimensions of the image. A single byte follows which indicates the number of frame components. For each frame component, a single byte identifier (counting from 1 to the number of components) is given. This is followed by a single byte that contains both the horizontal and vertical sampling factors. Last is a single byte giving the quantization table destination selector. Define Restart Interval First 2 bytes comprise the marker. Next 2 bytes indicate the length of the field. The last 2 bytes indicate the number of minimum coding units that will separate restart markers in the entropy-coded data Define Huffman Table Marker + Data First 2 bytes comprise the marker. Next 2 bytes indicate the length of the field. Next byte indicates the type of Huffman table (DC difference or AC coefficient). The next 16 bytes indicate the number of codes of that particular length (from 1 to 16). In other words, the first byte indicates the number of codes of length 1. The second byte indicates the number of codes of length 2, etc. Finally, the one-byte value associated with each Huffman code is given. This image contains several Huffman tables. Start of Scan Marker + Entropy-Coded Data First 2 bytes comprise the marker. Next 2 bytes indicate the length of the field. A single byte follows which indicates the number of frame components in the scan. For each component two selector bytes are given including a byte identifier. 3 spectral selection bytes follow. The remainder of the bytes are the entropy coded data. Note the stuffed 0x00 bytes that follow all 0xFF bytes. Also note that although the restart interval is specified, this image is too small to contain restart markers. 25

26 Appendix C: Output From JPEG Parser 5 pixels 1) The same 516 byte, 5x4 pixel image shown in Appendix B has been run through the JPEG parser. The output is shown below. This image is correctly formatted. 4 pixels [smithb@pc34 ~/jpegparser]$ jpegparser 5x4.jpg JPEG data is correctly formatted. Structure of Image: SOI marker NFRAME APP_DATA marker APP_DATA APP_DATA marker APP_DATA DQT marker DQT_DATA DQT_DATA NSOF FPARMS (lines: 4, line length: 5, precision: 8) SCANSET DRI marker RSTINTV (1 MCU's) DHT marker DHT_DATA SOS marker SPARMS ECDATA (18 bytes) EOI marker 2) Now, an error is injected into the image. The Start of Image marker is erroneously replaced with the End of Image marker. Since the parser needed the SOI marker, but did not receive it, an error is generated. [smithb@pc21 ~/jpegparser]$ jpegparser 5x4bad1.jpg JPEG data is NOT correctly formatted.!!!!! Needed SOI marker 26

27 3) If an invalid byte/word specifier is generated within the quantization table definition inside an image that is otherwise error-free, the following results: ~/jpegparser]$ jpegparser 5x4bad2.jpg JPEG data is NOT correctly formatted. SOI marker NFRAME APP_DATA marker APP_DATA APP_DATA marker APP_DATA DQT marker!!!!! Malformed DQT segment 4) In this case, the End of Image marker is missing from the image and the following error is generated: ~/jpegparser]$ jpegparser 5x4bad2.jpg JPEG data is NOT correctly formatted. SOI marker NFRAME APP_DATA marker APP_DATA APP_DATA marker APP_DATA DQT marker DQT_DATA DQT_DATA NSOF FPARMS (lines: 4, line length: 5, precision: 8) SCANSET DRI marker RSTINTV (1 MCU's) DHT marker DHT_DATA SOS marker SPARMS ECDATA (17 bytes)!!!!! Reached EOF 27

28 5) A different JPEG image is now parsed. Shown here in reduced size, the parsed image is 600x400 pixels and occupies 63,147 bytes. The image is correctly formatted: [smithb@pc21 ~/jpegparser]$ jpegparser gull.jpg JPEG data is correctly formatted. Structure of Image: SOI marker 600 pixels NFRAME APP_DATA marker APP_DATA APP_DATA marker 400 pixels APP_DATA APP_DATA marker APP_DATA APP_DATA marker APP_DATA DQT marker DQT_DATA DQT_DATA NSOF FPARMS (lines: 480, line length: 600, precision: 8) SCANSET DRI marker RSTINTV (75 MCU's) DHT marker DHT_DATA SOS marker SPARMS ECDATA (56174 bytes) RST marker RST marker... RST marker RST marker EOI marker 59 restart markers 28

29 6) Another JPEG image is parsed. Shown here in reduced size, the parsed image is 736x487 pixels and occupies 120,396 bytes. The image is correctly formatted: ~/jpegparser]$ jpegparser calcoast09.jpg JPEG data is correctly formatted. Structure of Image: 736 pixels SOI marker NFRAME APP_DATA marker APP_DATA 487 pixels APP_DATA marker APP_DATA APP_DATA marker APP_DATA DQT marker DQT_DATA DQT_DATA NSOF FPARMS (lines: 487, line length: 736, precision: 8) SCANSET DHT marker DHT_DATA DRI marker RSTINTV (46 MCU's) SOS marker SPARMS ECDATA ( bytes) RST marker RST marker... RST marker RST marker EOI marker 30 restart markers Along with the source code for the JPEG parser, all images shown in this appendix are available at: 29

JPEG File Layout and Format

JPEG File Layout and Format Page 1 of 6 JPEG File Layout and Format The File Layout A JPEG file is partitioned by markers. Each marker is immediately preceded by an all 1 byte (0xff). Although t more markers, We will discuss the

More information

Jpeg Decoder. Baseline Sequential DCT-based

Jpeg Decoder. Baseline Sequential DCT-based Jpeg Decoder Baseline Sequential DCT-based Baseline Sequential DCT-based Baseline Sequential DCT-based Encoding Process Color Space Conversion Subsampling Partition Encoding Flow Control Discrete Cosine

More information

JPEG Syntax and Data Organization

JPEG Syntax and Data Organization JPEG Syntax and Data Organization Compressed image data SOI Frame EOI Frame [ Tables/ misc. [ Frame header Scan 1 [ DNL segment [ [ Scan 2 [ [Scan last [ Scan [ Tables/ misc. [ Scan header [ECS 0 RST 0

More information

ITU-T T.851. ITU-T T.81 (JPEG-1)-based still-image coding using an alternative arithmetic coder SERIES T: TERMINALS FOR TELEMATIC SERVICES

ITU-T T.851. ITU-T T.81 (JPEG-1)-based still-image coding using an alternative arithmetic coder SERIES T: TERMINALS FOR TELEMATIC SERVICES International Telecommunication Union ITU-T T.851 TELECOMMUNICATION STANDARDIZATION SECTOR OF ITU (09/2005) SERIES T: TERMINALS FOR TELEMATIC SERVICES ITU-T T.81 (JPEG-1)-based still-image coding using

More information

Technical Specification. Third Party Control Protocol. AV Revolution

Technical Specification. Third Party Control Protocol. AV Revolution Technical Specification Third Party Control Protocol AV Revolution Document AM-TS-120308 Version 1.0 Page 1 of 31 DOCUMENT DETAILS Document Title: Technical Specification, Third Party Control Protocol,

More information

INTERNATIONAL TELECOMMUNICATION UNION TERMINAL EQUIPMENT AND PROTOCOLS FOR TELEMATIC SERVICES

INTERNATIONAL TELECOMMUNICATION UNION TERMINAL EQUIPMENT AND PROTOCOLS FOR TELEMATIC SERVICES INTERNATIONAL TELECOMMUNICATION UNION CCITT T.81 THE INTERNATIONAL (09/92) TELEGRAPH AND TELEPHONE CONSULTATIVE COMMITTEE TERMINAL EQUIPMENT AND PROTOCOLS FOR TELEMATIC SERVICES INFORMATION TECHNOLOGY

More information

Features. Sequential encoding. Progressive encoding. Hierarchical encoding. Lossless encoding using a different strategy

Features. Sequential encoding. Progressive encoding. Hierarchical encoding. Lossless encoding using a different strategy JPEG JPEG Joint Photographic Expert Group Voted as international standard in 1992 Works with color and grayscale images, e.g., satellite, medical,... Motivation: The compression ratio of lossless methods

More information

MRT based Fixed Block size Transform Coding

MRT based Fixed Block size Transform Coding 3 MRT based Fixed Block size Transform Coding Contents 3.1 Transform Coding..64 3.1.1 Transform Selection...65 3.1.2 Sub-image size selection... 66 3.1.3 Bit Allocation.....67 3.2 Transform coding using

More information

6 Remote memory access protocol (normative)

6 Remote memory access protocol (normative) 6 Remote memory access protocol (normative) 6.1 General 6.1.1 Purpose The remote memory access protocol (RMAP) has been designed to support a wide range of SpaceWire applications. Its primary purpose however

More information

JPEG Compression. What is JPEG?

JPEG Compression. What is JPEG? JPEG Compression Michael W. Chou Scott Siegrist EEA Spring April, Professor Ingrid Verbauwhede What is JPEG? JPEG is short for the 'Joint Photographic Experts Group'. The JPEG standard is fairly complex

More information

13.6 FLEXIBILITY AND ADAPTABILITY OF NOAA S LOW RATE INFORMATION TRANSMISSION SYSTEM

13.6 FLEXIBILITY AND ADAPTABILITY OF NOAA S LOW RATE INFORMATION TRANSMISSION SYSTEM 13.6 FLEXIBILITY AND ADAPTABILITY OF NOAA S LOW RATE INFORMATION TRANSMISSION SYSTEM Jeffrey A. Manning, Science and Technology Corporation, Suitland, MD * Raymond Luczak, Computer Sciences Corporation,

More information

CTT MODBUS-RTU COMMUNICATION PROTOCOL TEMPERATURE MONITOR DEVICE

CTT MODBUS-RTU COMMUNICATION PROTOCOL TEMPERATURE MONITOR DEVICE INSTRUCTION MANUAL IM149-U v0.92 CTT MODBUS-RTU COMMUNICATION PROTOCOL TEMPERATURE MONITOR DEVICE Firmware version: v3.0 or higher MODBUS PROTOCOL Modbus is a master-slave communication protocol able to

More information

CS 335 Graphics and Multimedia. Image Compression

CS 335 Graphics and Multimedia. Image Compression CS 335 Graphics and Multimedia Image Compression CCITT Image Storage and Compression Group 3: Huffman-type encoding for binary (bilevel) data: FAX Group 4: Entropy encoding without error checks of group

More information

Digital Image Representation Image Compression

Digital Image Representation Image Compression Digital Image Representation Image Compression 1 Image Representation Standards Need for compression Compression types Lossless compression Lossy compression Image Compression Basics Redundancy/redundancy

More information

Video Compression An Introduction

Video Compression An Introduction Video Compression An Introduction The increasing demand to incorporate video data into telecommunications services, the corporate environment, the entertainment industry, and even at home has made digital

More information

Advanced Computer Networks. Rab Nawaz Jadoon DCS. Assistant Professor COMSATS University, Lahore Pakistan. Department of Computer Science

Advanced Computer Networks. Rab Nawaz Jadoon DCS. Assistant Professor COMSATS University, Lahore Pakistan. Department of Computer Science Advanced Computer Networks Department of Computer Science DCS COMSATS Institute of Information Technology Rab Nawaz Jadoon Assistant Professor COMSATS University, Lahore Pakistan Advanced Computer Networks

More information

Input Channels: 4 differential or four single-ended. Address / Baud rate / range configurable by the user

Input Channels: 4 differential or four single-ended. Address / Baud rate / range configurable by the user DAM-Series User Manual Amazing Electronic (HK) Limited User s Manual Overview: DAM module is a new generation data acquisition and control system based on modular embedded systems. Adopting standard DIN35

More information

ECE 533 Digital Image Processing- Fall Group Project Embedded Image coding using zero-trees of Wavelet Transform

ECE 533 Digital Image Processing- Fall Group Project Embedded Image coding using zero-trees of Wavelet Transform ECE 533 Digital Image Processing- Fall 2003 Group Project Embedded Image coding using zero-trees of Wavelet Transform Harish Rajagopal Brett Buehl 12/11/03 Contributions Tasks Harish Rajagopal (%) Brett

More information

Digital Image Processing

Digital Image Processing Imperial College of Science Technology and Medicine Department of Electrical and Electronic Engineering Digital Image Processing PART 4 IMAGE COMPRESSION LOSSY COMPRESSION NOT EXAMINABLE MATERIAL Academic

More information

Digital Image Processing

Digital Image Processing Lecture 9+10 Image Compression Lecturer: Ha Dai Duong Faculty of Information Technology 1. Introduction Image compression To Solve the problem of reduncing the amount of data required to represent a digital

More information

Chapter 2: Number Systems

Chapter 2: Number Systems Chapter 2: Number Systems Logic circuits are used to generate and transmit 1s and 0s to compute and convey information. This two-valued number system is called binary. As presented earlier, there are many

More information

Bits, Words, and Integers

Bits, Words, and Integers Computer Science 52 Bits, Words, and Integers Spring Semester, 2017 In this document, we look at how bits are organized into meaningful data. In particular, we will see the details of how integers are

More information

Module 6 STILL IMAGE COMPRESSION STANDARDS

Module 6 STILL IMAGE COMPRESSION STANDARDS Module 6 STILL IMAGE COMPRESSION STANDARDS Lesson 19 JPEG-2000 Error Resiliency Instructional Objectives At the end of this lesson, the students should be able to: 1. Name two different types of lossy

More information

CMSC 2833 Lecture 18. Parity Add a bit to make the number of ones (1s) transmitted odd.

CMSC 2833 Lecture 18. Parity Add a bit to make the number of ones (1s) transmitted odd. Parity Even parity: Odd parity: Add a bit to make the number of ones (1s) transmitted even. Add a bit to make the number of ones (1s) transmitted odd. Example and ASCII A is coded 100 0001 Parity ASCII

More information

Network Working Group. Category: Informational DayDreamer August 1996

Network Working Group. Category: Informational DayDreamer August 1996 Network Working Group Request for Comments: 1974 Category: Informational R. Friend Stac Electronics W. Simpson DayDreamer August 1996 PPP Stac LZS Compression Protocol Status of this Memo This memo provides

More information

IMAGE COMPRESSION. Image Compression. Why? Reducing transportation times Reducing file size. A two way event - compression and decompression

IMAGE COMPRESSION. Image Compression. Why? Reducing transportation times Reducing file size. A two way event - compression and decompression IMAGE COMPRESSION Image Compression Why? Reducing transportation times Reducing file size A two way event - compression and decompression 1 Compression categories Compression = Image coding Still-image

More information

Wireless Communication

Wireless Communication Wireless Communication Systems @CS.NCTU Lecture 6: Image Instructor: Kate Ching-Ju Lin ( 林靖茹 ) Chap. 9 of Fundamentals of Multimedia Some reference from http://media.ee.ntu.edu.tw/courses/dvt/15f/ 1 Outline

More information

Chapter 5 VARIABLE-LENGTH CODING Information Theory Results (II)

Chapter 5 VARIABLE-LENGTH CODING Information Theory Results (II) Chapter 5 VARIABLE-LENGTH CODING ---- Information Theory Results (II) 1 Some Fundamental Results Coding an Information Source Consider an information source, represented by a source alphabet S. S = { s,

More information

Compression II: Images (JPEG)

Compression II: Images (JPEG) Compression II: Images (JPEG) What is JPEG? JPEG: Joint Photographic Expert Group an international standard in 1992. Works with colour and greyscale images Up 24 bit colour images (Unlike GIF) Target Photographic

More information

A Image Comparative Study using DCT, Fast Fourier, Wavelet Transforms and Huffman Algorithm

A Image Comparative Study using DCT, Fast Fourier, Wavelet Transforms and Huffman Algorithm International Journal of Engineering Research and General Science Volume 3, Issue 4, July-August, 15 ISSN 91-2730 A Image Comparative Study using DCT, Fast Fourier, Wavelet Transforms and Huffman Algorithm

More information

CSCI 2212: Intermediate Programming / C Chapter 15

CSCI 2212: Intermediate Programming / C Chapter 15 ... /34 CSCI 222: Intermediate Programming / C Chapter 5 Alice E. Fischer October 9 and 2, 25 ... 2/34 Outline Integer Representations Binary Integers Integer Types Bit Operations Applying Bit Operations

More information

Keywords: CRC, CRC-7, cyclic redundancy check, industrial output, PLC, programmable logic controller, C code, CRC generation, microprocessor, switch

Keywords: CRC, CRC-7, cyclic redundancy check, industrial output, PLC, programmable logic controller, C code, CRC generation, microprocessor, switch Keywords: CRC, CRC-7, cyclic redundancy check, industrial output, PLC, programmable logic controller, C code, CRC generation, microprocessor, switch APPLICATION NOTE 6002 CRC PROGRAMMING FOR THE MAX14900E

More information

RS-232 Control of the Advantage EQ281/8, EQ282/8 and Advantage SMS200

RS-232 Control of the Advantage EQ281/8, EQ282/8 and Advantage SMS200 RS-232 Control of the Advantage EQ281/8, EQ282/8 and Advantage SMS200 Biamp Systems, 14130 N.W. Science Park, Portland, Oregon 97229 U.S.A. (503) 641-7287 an affiliate of Rauland-Borg Corp. Introduction

More information

MTR-4. C8 Command to MODBUS Bridge User Manual F-1, No. 631, Chung Der Road, Sec 1, Taichung Taiwan.

MTR-4. C8 Command to MODBUS Bridge User Manual F-1, No. 631, Chung Der Road, Sec 1, Taichung Taiwan. MTR-4 C8 Command to MODBUS Bridge User Manual 404 19F-1, No. 631, Chung Der Road, Sec 1, Taichung Taiwan. TEL:886-4-2238-0698 FAX:886-4-2238-0891 Web Site:http://www.monicon.com.tw E-mail: sales@monicon.com.tw

More information

Test Requirement Catalog. Generic Clues, Developer Version

Test Requirement Catalog. Generic Clues, Developer Version Version 4..0 PART 1: DATA TYPES Test Requirement Catalog SIMPLE DATA TYPES... 4 BOOLEAN... 4 CASES... 4 COUNTS... 5 INTERVALS... 5 [LOW, HIGH] an interval that contains both LOW and HIGH... 6 [LOW, HIGH)

More information

Data Compression Techniques

Data Compression Techniques Data Compression Techniques Part 1: Entropy Coding Lecture 1: Introduction and Huffman Coding Juha Kärkkäinen 31.10.2017 1 / 21 Introduction Data compression deals with encoding information in as few bits

More information

Modbus Protocol Guide for ZP2 Series Control Panels

Modbus Protocol Guide for ZP2 Series Control Panels Modbus Protocol Guide for ZP2 Series Control Panels P/N 00-3243-505-2603-01 ISS 14DEC15 Copyright Trademarks and patents Manufacturer Version REV 01 Certification 2015 UTC Fire & Security. All rights reserved.

More information

Space engineering. SpaceWire Protocols

Space engineering. SpaceWire Protocols Space engineering SpaceWire Protocols This ECSS is a draft standard circulated for xxxxxxxxxx. It is therefore subject to change without notice and may not be referred to as an ECSS Standard until published

More information

CMPT 365 Multimedia Systems. Media Compression - Image

CMPT 365 Multimedia Systems. Media Compression - Image CMPT 365 Multimedia Systems Media Compression - Image Spring 2017 Edited from slides by Dr. Jiangchuan Liu CMPT365 Multimedia Systems 1 Facts about JPEG JPEG - Joint Photographic Experts Group International

More information

UNH-IOL MIPI Alliance Test Program

UNH-IOL MIPI Alliance Test Program DSI Receiver Protocol Conformance Test Report UNH-IOL 121 Technology Drive, Suite 2 Durham, NH 03824 +1-603-862-0090 mipilab@iol.unh.edu +1-603-862-0701 Engineer Name engineer@company.com Panel Company

More information

Stating the obvious, people and computers do not speak the same language.

Stating the obvious, people and computers do not speak the same language. 3.4 SYSTEM SOFTWARE 3.4.3 TRANSLATION SOFTWARE INTRODUCTION Stating the obvious, people and computers do not speak the same language. People have to write programs in order to instruct a computer what

More information

Image Compression Algorithm and JPEG Standard

Image Compression Algorithm and JPEG Standard International Journal of Scientific and Research Publications, Volume 7, Issue 12, December 2017 150 Image Compression Algorithm and JPEG Standard Suman Kunwar sumn2u@gmail.com Summary. The interest in

More information

JPEG decoding using end of block markers to concurrently partition channels on a GPU. Patrick Chieppe (u ) Supervisor: Dr.

JPEG decoding using end of block markers to concurrently partition channels on a GPU. Patrick Chieppe (u ) Supervisor: Dr. JPEG decoding using end of block markers to concurrently partition channels on a GPU Patrick Chieppe (u5333226) Supervisor: Dr. Eric McCreath JPEG Lossy compression Widespread image format Introduction

More information

Image Compression for Mobile Devices using Prediction and Direct Coding Approach

Image Compression for Mobile Devices using Prediction and Direct Coding Approach Image Compression for Mobile Devices using Prediction and Direct Coding Approach Joshua Rajah Devadason M.E. scholar, CIT Coimbatore, India Mr. T. Ramraj Assistant Professor, CIT Coimbatore, India Abstract

More information

Computer Architecture and System Software Lecture 02: Overview of Computer Systems & Start of Chapter 2

Computer Architecture and System Software Lecture 02: Overview of Computer Systems & Start of Chapter 2 Computer Architecture and System Software Lecture 02: Overview of Computer Systems & Start of Chapter 2 Instructor: Rob Bergen Applied Computer Science University of Winnipeg Announcements Website is up

More information

CHAPTER 4 REVERSIBLE IMAGE WATERMARKING USING BIT PLANE CODING AND LIFTING WAVELET TRANSFORM

CHAPTER 4 REVERSIBLE IMAGE WATERMARKING USING BIT PLANE CODING AND LIFTING WAVELET TRANSFORM 74 CHAPTER 4 REVERSIBLE IMAGE WATERMARKING USING BIT PLANE CODING AND LIFTING WAVELET TRANSFORM Many data embedding methods use procedures that in which the original image is distorted by quite a small

More information

International Journal of Emerging Technology and Advanced Engineering Website: (ISSN , Volume 2, Issue 4, April 2012)

International Journal of Emerging Technology and Advanced Engineering Website:   (ISSN , Volume 2, Issue 4, April 2012) A Technical Analysis Towards Digital Video Compression Rutika Joshi 1, Rajesh Rai 2, Rajesh Nema 3 1 Student, Electronics and Communication Department, NIIST College, Bhopal, 2,3 Prof., Electronics and

More information

Lexical and Syntax Analysis. Top-Down Parsing

Lexical and Syntax Analysis. Top-Down Parsing Lexical and Syntax Analysis Top-Down Parsing Easy for humans to write and understand String of characters Lexemes identified String of tokens Easy for programs to transform Data structure Syntax A syntax

More information

7.5 Dictionary-based Coding

7.5 Dictionary-based Coding 7.5 Dictionary-based Coding LZW uses fixed-length code words to represent variable-length strings of symbols/characters that commonly occur together, e.g., words in English text LZW encoder and decoder

More information

CIS 121 Data Structures and Algorithms with Java Spring 2018

CIS 121 Data Structures and Algorithms with Java Spring 2018 CIS 121 Data Structures and Algorithms with Java Spring 2018 Homework 6 Compression Due: Monday, March 12, 11:59pm online 2 Required Problems (45 points), Qualitative Questions (10 points), and Style and

More information

Lecture / The Data Link Layer: Framing and Error Detection

Lecture / The Data Link Layer: Framing and Error Detection Lecture 2 6.263/16.37 The Data Link Layer: Framing and Error Detection MIT, LIDS Slide 1 Data Link Layer (DLC) Responsible for reliable transmission of packets over a link Framing: Determine the start

More information

VIDEO SIGNALS. Lossless coding

VIDEO SIGNALS. Lossless coding VIDEO SIGNALS Lossless coding LOSSLESS CODING The goal of lossless image compression is to represent an image signal with the smallest possible number of bits without loss of any information, thereby speeding

More information

The Encoding Complexity of Network Coding

The Encoding Complexity of Network Coding The Encoding Complexity of Network Coding Michael Langberg Alexander Sprintson Jehoshua Bruck California Institute of Technology Email: mikel,spalex,bruck @caltech.edu Abstract In the multicast network

More information

Professor Laurence S. Dooley. School of Computing and Communications Milton Keynes, UK

Professor Laurence S. Dooley. School of Computing and Communications Milton Keynes, UK Professor Laurence S. Dooley School of Computing and Communications Milton Keynes, UK How many bits required? 2.4Mbytes 84Kbytes 9.8Kbytes 50Kbytes Data Information Data and information are NOT the same!

More information

GNetPlus Communication Protocol

GNetPlus Communication Protocol Basic Package (BINARY VERSION) Master Query Package (HOST) Field Header Address Query Function Data length DATA BYTES Error Check Desc SOH 0~255 0~255 0~255 CRC16_Low CRC16_Hi Size 1 BYTE 1 BYTE 1 BYTE

More information

An introduction to JPEG compression using MATLAB

An introduction to JPEG compression using MATLAB An introduction to JPEG compression using MATLAB Arno Swart 30 October, 2003 1 Introduction This document describes the popular JPEG still image coding format. The aim is to compress images while maintaining

More information

Part 1 of 4. MARCH

Part 1 of 4. MARCH Presented by Brought to You by Part 1 of 4 MARCH 2004 www.securitysales.com A1 Part1of 4 Essentials of DIGITAL VIDEO COMPRESSION By Bob Wimmer Video Security Consultants cctvbob@aol.com AT A GLANCE Compression

More information

Multimedia Systems Image III (Image Compression, JPEG) Mahdi Amiri April 2011 Sharif University of Technology

Multimedia Systems Image III (Image Compression, JPEG) Mahdi Amiri April 2011 Sharif University of Technology Course Presentation Multimedia Systems Image III (Image Compression, JPEG) Mahdi Amiri April 2011 Sharif University of Technology Image Compression Basics Large amount of data in digital images File size

More information

CHAPTER 2 Data Representation in Computer Systems

CHAPTER 2 Data Representation in Computer Systems CHAPTER 2 Data Representation in Computer Systems 2.1 Introduction 37 2.2 Positional Numbering Systems 38 2.3 Decimal to Binary Conversions 38 2.3.1 Converting Unsigned Whole Numbers 39 2.3.2 Converting

More information

Signed/Unsigned Integer Arithmetic in C. Vineel Kovvuri

Signed/Unsigned Integer Arithmetic in C. Vineel Kovvuri Signed/Unsigned Integer Arithmetic in C Vineel Kovvuri http://vineelkovvuri.com Contents 1 Introduction 2 2 How signed-ness is represented in the hardware? 2 3 How signed-ness is interpreted in assembly?

More information

Inst: Chris Davison

Inst: Chris Davison ICS 153 Introduction to Computer Networks Inst: Chris Davison cbdaviso@uci.edu ICS 153 Data Link Layer Contents Simplex and Duplex Communication Frame Creation Flow Control Error Control Performance of

More information

FAULT TOLERANT SYSTEMS

FAULT TOLERANT SYSTEMS FAULT TOLERANT SYSTEMS http://www.ecs.umass.edu/ece/koren/faulttolerantsystems Part 6 Coding I Chapter 3 Information Redundancy Part.6.1 Information Redundancy - Coding A data word with d bits is encoded

More information

JPEG Compression Using MATLAB

JPEG Compression Using MATLAB JPEG Compression Using MATLAB Anurag, Sonia Rani M.Tech Student, HOD CSE CSE Department, ITS Bhiwani India ABSTRACT Creating, editing, and generating s in a very regular system today is a major priority.

More information

The PackBits program on the Macintosh used a generalized RLE scheme for data compression.

The PackBits program on the Macintosh used a generalized RLE scheme for data compression. Tidbits on Image Compression (Above, Lena, unwitting data compression spokeswoman) In CS203 you probably saw how to create Huffman codes with greedy algorithms. Let s examine some other methods of compressing

More information

CS /534 Compiler Construction University of Massachusetts Lowell

CS /534 Compiler Construction University of Massachusetts Lowell CS 91.406/534 Compiler Construction University of Massachusetts Lowell Professor Li Xu Fall 2004 Lab Project 2: Parser and Type Checker for NOTHING Due: Sunday, November 14, 2004, 11:59 PM 1 Introduction

More information

Theoretical Part. Chapter one:- - What are the Phases of compiler? Answer:

Theoretical Part. Chapter one:- - What are the Phases of compiler? Answer: Theoretical Part Chapter one:- - What are the Phases of compiler? Six phases Scanner Parser Semantic Analyzer Source code optimizer Code generator Target Code Optimizer Three auxiliary components Literal

More information

Appendix. Numbering Systems. In This Appendix...

Appendix. Numbering Systems. In This Appendix... Numbering Systems ppendix In This ppendix... Introduction... inary Numbering System... exadecimal Numbering System... Octal Numbering System... inary oded ecimal () Numbering System... 5 Real (Floating

More information

SPM90 MODBUS PROTOCOL AND REGISTER LIST V1.0

SPM90 MODBUS PROTOCOL AND REGISTER LIST V1.0 SPM90 MODBUS PROTOCOL AND REGISTER LIST V1.0 目 录 1. Introduction... 1 1.1 Purpose of the Communication Protocol... 1 1.2 Version of Communication Protocol... 1 2. Detailed Description of the SPM90 Modbus

More information

Volume 2, Issue 9, September 2014 ISSN

Volume 2, Issue 9, September 2014 ISSN Fingerprint Verification of the Digital Images by Using the Discrete Cosine Transformation, Run length Encoding, Fourier transformation and Correlation. Palvee Sharma 1, Dr. Rajeev Mahajan 2 1M.Tech Student

More information

Review of Number Systems

Review of Number Systems Review of Number Systems The study of number systems is important from the viewpoint of understanding how data are represented before they can be processed by any digital system including a digital computer.

More information

Pololu TReX Jr Firmware Version 1.2: Command Documentation

Pololu TReX Jr Firmware Version 1.2: Command Documentation Pololu TReX Jr Firmware Version 1.2: Command Documentation Quick Command List: Data-Query Commands: 0x80: Expanded Protocol Packet Start Byte 0x81: Get Signature 0x82: Get Mode 0x83: Does Serial Control

More information

2386 IEEE TRANSACTIONS ON INFORMATION THEORY, VOL. 52, NO. 6, JUNE 2006

2386 IEEE TRANSACTIONS ON INFORMATION THEORY, VOL. 52, NO. 6, JUNE 2006 2386 IEEE TRANSACTIONS ON INFORMATION THEORY, VOL. 52, NO. 6, JUNE 2006 The Encoding Complexity of Network Coding Michael Langberg, Member, IEEE, Alexander Sprintson, Member, IEEE, and Jehoshua Bruck,

More information

ELE 201, Spring 2014 Laboratory No. 4 Compression, Error Correction, and Watermarking

ELE 201, Spring 2014 Laboratory No. 4 Compression, Error Correction, and Watermarking ELE 201, Spring 2014 Laboratory No. 4 Compression, Error Correction, and Watermarking 1 Introduction This lab focuses on the storage and protection of digital media. First, we ll take a look at ways to

More information

Redundancy in fault tolerant computing. D. P. Siewiorek R.S. Swarz, Reliable Computer Systems, Prentice Hall, 1992

Redundancy in fault tolerant computing. D. P. Siewiorek R.S. Swarz, Reliable Computer Systems, Prentice Hall, 1992 Redundancy in fault tolerant computing D. P. Siewiorek R.S. Swarz, Reliable Computer Systems, Prentice Hall, 1992 1 Redundancy Fault tolerance computing is based on redundancy HARDWARE REDUNDANCY Physical

More information

DLD VIDYA SAGAR P. potharajuvidyasagar.wordpress.com. Vignana Bharathi Institute of Technology UNIT 3 DLD P VIDYA SAGAR

DLD VIDYA SAGAR P. potharajuvidyasagar.wordpress.com. Vignana Bharathi Institute of Technology UNIT 3 DLD P VIDYA SAGAR DLD UNIT III Combinational Circuits (CC), Analysis procedure, Design Procedure, Combinational circuit for different code converters and other problems, Binary Adder- Subtractor, Decimal Adder, Binary Multiplier,

More information

Appendix. Numbering Systems. In this Appendix

Appendix. Numbering Systems. In this Appendix Numbering Systems ppendix n this ppendix ntroduction... inary Numbering System... exadecimal Numbering System... Octal Numbering System... inary oded ecimal () Numbering System... 5 Real (Floating Point)

More information

So, what is data compression, and why do we need it?

So, what is data compression, and why do we need it? In the last decade we have been witnessing a revolution in the way we communicate 2 The major contributors in this revolution are: Internet; The explosive development of mobile communications; and The

More information

15 Data Compression 2014/9/21. Objectives After studying this chapter, the student should be able to: 15-1 LOSSLESS COMPRESSION

15 Data Compression 2014/9/21. Objectives After studying this chapter, the student should be able to: 15-1 LOSSLESS COMPRESSION 15 Data Compression Data compression implies sending or storing a smaller number of bits. Although many methods are used for this purpose, in general these methods can be divided into two broad categories:

More information

CSEP 521 Applied Algorithms Spring Lossy Image Compression

CSEP 521 Applied Algorithms Spring Lossy Image Compression CSEP 521 Applied Algorithms Spring 2005 Lossy Image Compression Lossy Image Compression Methods Scalar quantization (SQ). Vector quantization (VQ). DCT Compression JPEG Wavelet Compression SPIHT UWIC (University

More information

CHAPTER 2 Data Representation in Computer Systems

CHAPTER 2 Data Representation in Computer Systems CHAPTER 2 Data Representation in Computer Systems 2.1 Introduction 37 2.2 Positional Numbering Systems 38 2.3 Decimal to Binary Conversions 38 2.3.1 Converting Unsigned Whole Numbers 39 2.3.2 Converting

More information

Digital Communication Prof. Bikash Kumar Dey Department of Electrical Engineering Indian Institute of Technology, Bombay

Digital Communication Prof. Bikash Kumar Dey Department of Electrical Engineering Indian Institute of Technology, Bombay Digital Communication Prof. Bikash Kumar Dey Department of Electrical Engineering Indian Institute of Technology, Bombay Lecture - 29 Source Coding (Part-4) We have already had 3 classes on source coding

More information

University of Texas at El Paso Electrical and Computer Engineering Department

University of Texas at El Paso Electrical and Computer Engineering Department University of Texas at El Paso Electrical and Computer Engineering Department EE 3176 Laboratory for Microprocessors I Fall 2016 LAB 07 Flash Controller Goals: Bonus: Pre Lab Questions: Familiarize yourself

More information

CHAPTER 6. 6 Huffman Coding Based Image Compression Using Complex Wavelet Transform. 6.3 Wavelet Transform based compression technique 106

CHAPTER 6. 6 Huffman Coding Based Image Compression Using Complex Wavelet Transform. 6.3 Wavelet Transform based compression technique 106 CHAPTER 6 6 Huffman Coding Based Image Compression Using Complex Wavelet Transform Page No 6.1 Introduction 103 6.2 Compression Techniques 104 103 6.2.1 Lossless compression 105 6.2.2 Lossy compression

More information

Lexical and Syntax Analysis

Lexical and Syntax Analysis Lexical and Syntax Analysis (of Programming Languages) Top-Down Parsing Lexical and Syntax Analysis (of Programming Languages) Top-Down Parsing Easy for humans to write and understand String of characters

More information

3.5 Practical Issues PRACTICAL ISSUES Error Recovery

3.5 Practical Issues PRACTICAL ISSUES Error Recovery 3.5 Practical Issues 141 3.5 PRACTICAL ISSUES Even with automatic parser generators, the compiler writer must manage several issues to produce a robust, efficient parser for a real programming language.

More information

Megapixel Video for. Part 2 of 4. Brought to You by. Presented by Video Security Consultants

Megapixel Video for. Part 2 of 4. Brought to You by. Presented by Video Security Consultants rought to You by 2009 Video Security Consultants Presented by Part 2 of 4 A1 Part 2 of 4 How to Avert a Compression Depression Illustration by Jerry King While bandwidth is widening, larger video systems

More information

Image Coding and Data Compression

Image Coding and Data Compression Image Coding and Data Compression Biomedical Images are of high spatial resolution and fine gray-scale quantisiation Digital mammograms: 4,096x4,096 pixels with 12bit/pixel 32MB per image Volume data (CT

More information

AN ANALYTICAL STUDY OF LOSSY COMPRESSION TECHINIQUES ON CONTINUOUS TONE GRAPHICAL IMAGES

AN ANALYTICAL STUDY OF LOSSY COMPRESSION TECHINIQUES ON CONTINUOUS TONE GRAPHICAL IMAGES AN ANALYTICAL STUDY OF LOSSY COMPRESSION TECHINIQUES ON CONTINUOUS TONE GRAPHICAL IMAGES Dr.S.Narayanan Computer Centre, Alagappa University, Karaikudi-South (India) ABSTRACT The programs using complex

More information

Greedy Algorithms CHAPTER 16

Greedy Algorithms CHAPTER 16 CHAPTER 16 Greedy Algorithms In dynamic programming, the optimal solution is described in a recursive manner, and then is computed ``bottom up''. Dynamic programming is a powerful technique, but it often

More information

Error Detection And Correction

Error Detection And Correction Announcements Please read Error Detection and Correction sent to you by your grader. Lab Assignment #2 deals with Hamming Code. Lab Assignment #2 is available now and will be due by 11:59 PM on March 22.

More information

ECE 4450:427/527 - Computer Networks Spring 2017

ECE 4450:427/527 - Computer Networks Spring 2017 ECE 4450:427/527 - Computer Networks Spring 2017 Dr. Nghi Tran Department of Electrical & Computer Engineering Lecture 5.1: Link Layer Dr. Nghi Tran (ECE-University of Akron) ECE 4450:427/527 Computer

More information

SERIES PM172EH POWERMETERS COMMUNICATIONS REFERENCE GUIDE

SERIES PM172EH POWERMETERS COMMUNICATIONS REFERENCE GUIDE SERIES PM172EH POWERMETERS COMMUNICATIONS Modbus Communications Protocol REFERENCE GUIDE Every effort has been made to ensure that the material herein is complete and accurate. However, the manufacturer

More information

Parallel Streaming Computation on Error-Prone Processors. Yavuz Yetim, Margaret Martonosi, Sharad Malik

Parallel Streaming Computation on Error-Prone Processors. Yavuz Yetim, Margaret Martonosi, Sharad Malik Parallel Streaming Computation on Error-Prone Processors Yavuz Yetim, Margaret Martonosi, Sharad Malik Upsets/B muons/mb Average Number of Dopant Atoms Hardware Errors on the Rise Soft Errors Due to Cosmic

More information

UNIT-II. Part-2: CENTRAL PROCESSING UNIT

UNIT-II. Part-2: CENTRAL PROCESSING UNIT Page1 UNIT-II Part-2: CENTRAL PROCESSING UNIT Stack Organization Instruction Formats Addressing Modes Data Transfer And Manipulation Program Control Reduced Instruction Set Computer (RISC) Introduction:

More information

IMAGE COMPRESSION USING FOURIER TRANSFORMS

IMAGE COMPRESSION USING FOURIER TRANSFORMS IMAGE COMPRESSION USING FOURIER TRANSFORMS Kevin Cherry May 2, 2008 Math 4325 Compression is a technique for storing files in less space than would normally be required. This in general, has two major

More information

PowerLogic ION6200 Serial Communications Protocol and ION / Modbus Register Map

PowerLogic ION6200 Serial Communications Protocol and ION / Modbus Register Map 70022-05-XX PROTOCOL DOCUMENT 04/2007 PowerLogic ION6200 Serial Communications Protocol and ION / Modbus Register Map This document explains the Modbus protocol on the ION6200 meter. The ION6200 meter

More information

MRT based Adaptive Transform Coder with Classified Vector Quantization (MATC-CVQ)

MRT based Adaptive Transform Coder with Classified Vector Quantization (MATC-CVQ) 5 MRT based Adaptive Transform Coder with Classified Vector Quantization (MATC-CVQ) Contents 5.1 Introduction.128 5.2 Vector Quantization in MRT Domain Using Isometric Transformations and Scaling.130 5.2.1

More information

Sources of Evidence. CSF: Forensics Cyber-Security. Part I. Foundations of Digital Forensics. Fall 2015 Nuno Santos

Sources of Evidence. CSF: Forensics Cyber-Security. Part I. Foundations of Digital Forensics. Fall 2015 Nuno Santos Sources of Evidence Part I. Foundations of Digital Forensics CSF: Forensics Cyber-Security Fall 2015 Nuno Santos Summary Reasoning about sources of evidence Data representation and interpretation Number

More information

GUIDELINES FOR USING DEVICE LEVEL RING (DLR) WITH ETHERNET/IP. PUB00316R ODVA, Inc. Page 1 of 18

GUIDELINES FOR USING DEVICE LEVEL RING (DLR) WITH ETHERNET/IP. PUB00316R ODVA, Inc. Page 1 of 18 GUIDELINES FOR USING DEVICE LEVEL RING (DLR) WITH ETHERNET/IP PUB00316R2 2017-2018 ODVA, Inc. Page 1 of 18 Guidelines for Using Device Level Ring (DLR) with EtherNet/IP Contents 1. Introduction... 3 2.

More information

Lecture 8 JPEG Compression (Part 3)

Lecture 8 JPEG Compression (Part 3) CS 414 Multimedia Systems Design Lecture 8 JPEG Compression (Part 3) Klara Nahrstedt Spring 2012 Administrative MP1 is posted Today Covered Topics Hybrid Coding: JPEG Coding Reading: Section 7.5 out of

More information