This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
notes:discrete:fall2022:projects:rle1 [2022/10/03 19:16] – [SPECIFICATIONS] hcordell | notes:discrete:fall2022:projects:rle1 [2022/10/06 15:38] (current) – Added info about compression ratio. bolsen1 | ||
---|---|---|---|
Line 30: | Line 30: | ||
Header Format: | Header Format: | ||
- | byte 0: 0x72 | + | byte 0: 0x72\\ |
- | byte 1: 0x6c | + | byte 1: 0x6c\\ |
- | byte 2: 0x65 | + | byte 2: 0x65\\ |
- | byte 3: 0x58 | + | byte 3: 0x58\\ |
- | byte 4: 0x20 | + | byte 4: 0x20\\ |
- | byte 5: 0x52 | + | byte 5: 0x52\\ |
- | byte 6: 0x4c | + | byte 6: 0x4c\\ |
- | byte 7: 0x45 | + | byte 7: 0x45\\ |
- | byte 8: 0x00 (reserved) | + | byte 8: 0x00 (reserved)\\ |
- | byte 9: 0x02 (version) | + | byte 9: 0x02 (version)\\ |
- | byte 10: 0x(stride value) -- changes depending on input | + | byte 10: 0x(stride value) -- changes depending on input\\ |
- | byte 11: 0xArgv The length of the source file name, not including NULL terminator | + | byte 11: 0xArgv The length of the source file name, not including NULL terminator\\ |
- | (how many characters in Argv - 1) | + | (how many characters in Argv - 1)\\ |
- | byte 12: The name of the source file, not including the NULL terminator | + | byte 12: The name of the source file, not including the NULL terminator\\ |
====CUSTOMISATION: | ====CUSTOMISATION: | ||
The stride will determine the workings of the the encoding/ | The stride will determine the workings of the the encoding/ | ||
Line 77: | Line 77: | ||
=====OUTPUT SPECIFICATIONS===== | =====OUTPUT SPECIFICATIONS===== | ||
+ | |||
+ | Just like what we did in rle0, the rle1's encoder should output the original file's length, the encoded file length, followed by the compression ratio. The output is not strict, as long as you have the correct input file length, output file length, and compression ratio. The compression ratio can be calculated by the following equation: ' | ||
+ | |||
+ | Example: | ||
+ | Input File length: 100 | ||
+ | | ||
+ | | ||
=====VERIFICATION===== | =====VERIFICATION===== | ||
+ | **NOTE** Verification using ./check may not work. If this is the case, then run manual checks. To do this, run the sample and use the stride that is in the header of the sample output you are comparing to (Byte 10). The stride used is also in the file name. | ||
+ | |||
+ | To run the check file provided to you when you grabbed the project, run ./check (linux-based system, may vary on different OS). | ||
+ | |||
+ | You can also manually verify by encoding/ |