Difference between revisions of "DPS915/M-N-M"
(→Source Code for LZW File Compression) |
(→Source Code for LZW File Compression) |
||
Line 188: | Line 188: | ||
− | [[ | + | [[lzw.cpp]] |
[[File:lzw.h]] | [[File:lzw.h]] | ||
=== Assignment 2 === | === Assignment 2 === | ||
=== Assignment 3 === | === Assignment 3 === |
Revision as of 15:52, 20 February 2013
GPU610/DPS915 | Student List | Group and Project Index | Student Resources | Glossary
Team: M-N-M
Team Members
Potential Projects
Project Name | Project Description | Status |
---|---|---|
C Compiler | Take the compilation process and transfer it to the GPU | failed |
Galactic Collision Simulation | A 2D simulation of two galaxies colliding, with fully simulated gravity effects. | cannot benefit from parallel computing,already fast enough |
Isomorphism of graphs | Check if two graphs are isomorphic in nature. This is a very straight forward program. | failed |
Image Processing | Mathematical operations applied to images for colour negation, rotation, blurring effects, etc. | scrapped |
Facial Recognition system | Speed up time taken to match face with database | already CUDA enabled |
Steganography | Speed up the process of encrypting one type of file into another | Profiled |
Prime number generator | Generate prime numbers | Profiled |
LZW File compression | Compress files using Lempel-Ziv-Welch algorithm | Profiled |
Progress
Assignment 1
Mohamed Baig: Steganography using Steghide
- Steghide has certain dependencies that it uses to complete its function.
- Dependencies:
- libmash
- libcrypt
- libjpeg
- zlib
- Ran the Configure file to see if I have all the Dependencies
- Installed the all the dependencies
- Ran Configure again to generate Makefile in the src folder
- Altered the Makefile to enable profiling
- Altered some source files to avoid errors
AuSampleValues.cc
#include "AuSampleValues.h" // AuMuLawSampleValue template <> //My change const BYTE AuMuLawSampleValue::MinValue = 0 ; template <> //My change const BYTE AuMuLawSampleValue::MaxValue = BYTE_MAX ; // AuPCM8SampleValue template <> //My change const SBYTE AuPCM8SampleValue::MinValue = SBYTE_MIN ; template <> //My change const SBYTE AuPCM8SampleValue::MaxValue = SBYTE_MAX ; // AuPCM16SampleValue template <> //My change const SWORD16 AuPCM16SampleValue::MinValue = SWORD16_MIN ; template <> //My change const SWORD16 AuPCM16SampleValue::MaxValue = SWORD16_MAX ; // AuPCM32SampleValue template <> //My change const SWORD32 AuPCM32SampleValue::MinValue = SWORD32_MIN ; template <> //My change const SWORD32 AuPCM32SampleValue::MaxValue = SWORD32_MAX ;
AuData.h
#ifndef SH_AUDATA_H #define SH_AUDATA_H #include "BinaryIO.h" #include "AudioData.h" // AuMuLawAudioData typedef AudioDataImpl<AuMuLaw,BYTE> AuMuLawAudioData ; template <> //My change inline BYTE AuMuLawAudioData::readValue (BinaryIO* io) const { return (io->read8()) ; } template <> //My change inline void AuMuLawAudioData::writeValue (BinaryIO* io, BYTE v) const { io->write8(v) ; } // AuPCM8AudioData typedef AudioDataImpl<AuPCM8,SBYTE> AuPCM8AudioData ; template <> //My change inline SBYTE AuPCM8AudioData::readValue (BinaryIO* io) const { return ((SBYTE) io->read8()) ; } template <> //My change inline void AuPCM8AudioData::writeValue (BinaryIO* io, SBYTE v) const { io->write8((BYTE) v) ; } // AuPCM16AudioData typedef AudioDataImpl<AuPCM16,SWORD16> AuPCM16AudioData ; template <> //My change inline SWORD16 AuPCM16AudioData::readValue (BinaryIO* io) const { return ((SWORD16) io->read16_be()) ; } template <> //My change inline void AuPCM16AudioData::writeValue (BinaryIO* io, SWORD16 v) const { io->write16_be((UWORD16) v) ; } // AuPCM32AudioData typedef AudioDataImpl<AuPCM32,SWORD32> AuPCM32AudioData ; template <> //My change inline SWORD32 AuPCM32AudioData::readValue (BinaryIO* io) const { return ((SWORD32) io->read32_be()) ; } template <> //My change inline void AuPCM32AudioData::writeValue (BinaryIO* io, SWORD32 v) const { io->write32_be((UWORD32) v) ; } #endif // ndef SH_AUDATA_H
- The result of embedding kilobytes of text data into an image
Flat profile: Each sample counts as 0.01 seconds. % cumulative self self total time seconds seconds calls s/call s/call name 13.38 0.21 0.21 1318276 0.00 0.00 Selector::idxX(unsigned int, unsigned int, unsigned int*) const 11.47 0.39 0.18 4054789 0.00 0.00 Vertex::getDegree() const 9.55 0.54 0.15 659139 0.00 0.00 Selector::calculate(unsigned int) 7.64 0.66 0.12 659141 0.00 0.00 JpegFile::getEmbeddedValue(unsigned int) const 7.01 0.77 0.11 659139 0.00 0.00 __gnu_cxx::hashtable<std::pair<unsigned int const, unsigned int>, unsigned int, __gnu_cxx::hash<unsigned int>, std::_Select1st<std::pair<unsigned int const, unsigned int> >, std::equal_to<unsigned int>, std::allocator<unsigned int> >::resize(unsigned long) 6.37 0.87 0.10 328293 0.00 0.00 JpegFile::getSampleValue(unsigned int) const 5.73 0.96 0.09 1 0.09 0.09 Selector::~Selector() 3.82 1.02 0.06 1 0.06 0.09 JpegFile::read(BinaryIO*)
- The result of attempting to embed 1.7 GB of data into an image
Flat profile: Each sample counts as 0.01 seconds. % cumulative self self total time seconds seconds calls s/call s/call name 54.43 21.52 21.52 1192388169 0.00 0.00 BitString::_append(bool) 16.79 28.15 6.64 593200712 0.00 0.00 BitString::operator[](unsigned long) const 9.30 31.83 3.68 74898412 0.00 0.00 BitString::append(unsigned char, unsigned short) 4.78 33.72 1.89 3 0.63 6.41 BitString::append(BitString const&) 3.50 35.10 1.39 BitString::BitString(unsigned long) 1.91 35.86 0.76 BitString::clear() 1.29 36.37 0.51 1 0.51 37.26 Embedder::Embedder() 1.20 36.84 0.48 37823336 0.00 0.00 BinaryIO::eof() const
Assignment 1
Muhammad Ahsan: Prime Number Generator( 1,000,000,000 primes)
Flat profile Each sample counts as 0.01 seconds. % cumulative self self total time seconds seconds calls Ts/call Ts/call name 100.00 53.83 53.83 get_primes(unsigned long) 0.00 53.83 0.00 27 0.00 0.00 void std::vector<unsigned long, std::allocator<unsigned long> >::_M_emplace_back_aux<unsigned long const&>(unsigned long const&&&) 0.00 53.83 0.00 1 0.00 0.00 _GLOBAL__sub_I__Z10get_primesm
Assignment 1
Nitin Prakash Panicker: LZW File Compression
Flat profile: Each sample counts as 0.01 seconds. % cumulative self self total time seconds seconds calls ns/call ns/call name 99.46 48.19 48.19 CLZWCompressFile::Compress(char*, char*) 0.33 48.35 0.16 17122488 9.34 9.34 CLZWCompressFile::getc_src() 0.21 48.45 0.10 7095561 14.09 14.09 CLZWCompressFile::putc_comp(int)