اتحاد مشرفى فنان سات ومصراوى سات
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.

اتحاد مشرفى فنان سات ومصراوى سات

خلاصة احدث موضيع منتديات فنان سات ومصراوى سات
 
الرئيسيةPortailأحدث الصورالتسجيلدخول

 

 ضغط سوفتوير الأسترا والكوندور والهايفيون بين أيادي أبناء فنان سات )==

اذهب الى الأسفل 
كاتب الموضوعرسالة
Admin
Admin



المساهمات : 317
تاريخ التسجيل : 27/06/2008

ضغط سوفتوير الأسترا والكوندور والهايفيون بين أيادي أبناء فنان سات )== Empty
مُساهمةموضوع: ضغط سوفتوير الأسترا والكوندور والهايفيون بين أيادي أبناء فنان سات )==   ضغط سوفتوير الأسترا والكوندور والهايفيون بين أيادي أبناء فنان سات )== Icon_minitime1الأحد يونيو 29, 2008 2:32 am

ضغط سوفتوير الأسترا والكوندور والهايفيون بين أيادي أبناء فنان سات )==

<hr style="color: rgb(209, 209, 225);" size="1">






السلام عليكم ورحمة الله وبركاته

بفضل من الله وتوفيقه وعبر بوابة فنان سات

نتطرق لألية ضغط السوفتوير والمستخدم من قبل الشركات الأصلية لأجهزة كوندور وأسترا وستارسات وهايفيون

ذات المعالج ( البريسسور ) st5518

====( مقدمة )====

فلنسأل أنفسنا سؤال جدي وواضح

لما لم تضع لنا الشركات سوفتويراتها مفكوكة الضغط كحال السوفتويرات اللتي نسحبها من الأجهزة ( المفرودة ) ؟؟؟

الجواب العلمي والدقيق وبفضل الله :-

أن حجم السوفتوير المفرود يتعدى 1 ميجا ويقارب الواحد ميجا ونصف وله أبلغ الأثر في عطب فلاشات الأجهزة

بسبب حجمه وتوقيت تحميله للجهاز كما له أبلغ الأثر في التعارض بأوامر فك الضغط من خلال ( الهاردوير )

فهناك ألية تنشأ بالجهاز ( لفك ضغط السوفتوير المضغوط ) ليحل مفرودا إما بالفلاش و sdram أو بكلاهما

فمابالك بسوفتوير يرسل مفكوكا مفرودا للجهاز يجعل هذه الألية تتخبط بمساراتها وإستقبالها للأوامر !!!!!

لذا إستوجب الأمر توضيح أهمية ضغط السوفتوير بعد التعديل به ولايصح غير الصحيح

===()====

النتيجة :-

إنما سوفتويرات الأسترا والكوندور والهايفيون ذات المعالج أوميجا 5518 ألية ضغط السوفتوير هي :-

==( ألغوريثم LZSS )==

ويجب معالجة السوفتوير لرسائل الخطأ ERROR3 & ERROR9 وكذلك معالجة الحجم والعنوان

وإحقاقا للحق فلنزين المشاركة بأولى صورها لأخوة فوالله يشاد لهم بأصبع التميز والخلق قبل العلم

وكان لهم بالغ الأثر فيما يتم تحقيقه دوما من نجاحات لهي فخر لكل العرب

وبالمرفقات سوفتوير الأسترا هاردوير 200 وكذلك الفري فيرجن 700 2 ميجا

لغرض تجربتكم

ولايتبقى غير أن نتقدم جميعا بأسمى أيات الشكر لكل من ساهم في إنتاج هذا العمل وأسماؤهم اللتي زينت لوحة الشرف

تحت بانر ( فنان سات )

تلميذ الجميع : مودي سات



ضغط سوفتوير الأسترا والكوندور والهايفيون بين أيادي أبناء فنان سات )== Attachment

ضغط سوفتوير الأسترا والكوندور والهايفيون بين أيادي أبناء فنان سات )== Attachment

ضغط سوفتوير الأسترا والكوندور والهايفيون بين أيادي أبناء فنان سات )== Attachment





كود:

*/
#include<stdio.h>
#include<stdlib.h>
#include<time.h>

#define CONTROL_LITERAL 0
#define CONTROL_CODEWORD 1

#define MAX_LENGTH 17
#define MAX_WINDOWSIZE 4095
#define ITERATIONS_BEFORE_CALLBACK 64

typedef unsigned int (_cdecl *PFNCOMPRESSCALLBACK)(unsigned char *,unsigned char *,unsigned char *);

unsigned long CompressData(unsigned char *src, unsigned char *dest,
unsigned long src_length,
unsigned long windowsize,PFNCOMPRESSCALLBACK);
unsigned long DecompressData(unsigned char *src, unsigned char *dest);

unsigned long DecompressData(unsigned char *src, unsigned char *dest) {
unsigned char control;
unsigned int phrase_index,control_count=0;
int phrase_length=0;
unsigned char *dest_start=dest,*temp;
unsigned short codeword=0;
control=*src;
src++;
while(1) {
if((control>>7)==CONTROL_LITERAL) {
*dest=*src;
dest++;
src++;
}
else {
codeword=*src;
codeword<<=8;
codeword|=*(src+1);
phrase_index=codeword>>4;
if(!phrase_index) break;
temp=dest-phrase_index;
for(phrase_length=((codeword&0x0f)+2);
phrase_length>0;
phrase_length--,temp++,dest++) {
*dest=*temp;
}
src+=2;
}
control=control<<1;
control_count++;
if(control_count>=Cool {
control=*src;
*src++;
control_count=0;
}
}
return (unsigned long)(dest-dest_start)-1;
}

unsigned int _cdecl CompressCallback(unsigned char *src,unsigned char *src_end,unsigned char *p) {
printf("\r%d%% complete. ",
((((unsigned int)p-(unsigned int)src)*100)/((unsigned int)src_end-(unsigned int)src)));
return 1;
}

unsigned long DataCompare(unsigned char *str1,unsigned char *str2,
unsigned long maxlength) {
unsigned long length=1;
for(;*str1==*str2 && length<maxlength;length++,str1++,str2++);
return length;
}

unsigned char *SearchForPhrase(unsigned char *str, unsigned char *src,
unsigned long maxlength,
unsigned long *bestlength) {
unsigned char *p=str, *best=NULL;
unsigned long curlength;
*bestlength=1;
p--;
while(p>=src) {
if(*p==*str) {
curlength=DataCompare((p+1),(str+1),maxlength);
if(curlength>*bestlength) {
*bestlength=curlength;
best=p;
}
}
p--;
}
return best;
}

unsigned long CompressData(unsigned char *src, unsigned char *dest,
unsigned long src_length,
unsigned long windowsize, PFNCOMPRESSCALLBACK CallbackProc) {
unsigned char *src_end=src+src_length,
*dest_end=dest+src_length,
*phrase_ptr=NULL,
*lazy_ptr,
*control_ptr,
*start_dest=dest,
*temp,
*p=src;
unsigned long phrase_length,maxlength,lazy_length,control_counter=0,
iterationcnt=0;
unsigned short phrase_index;
unsigned char control=0;
control_ptr=dest;
dest++;
while(p<=src_end && dest<=dest_end) {
control_counter++;
if(control_counter==9) {
*control_ptr=control;
control_ptr=dest;
dest++;
control=0;
control_counter=1;
}
maxlength=(unsigned long)(src_end-src);
if(maxlength>windowsize) maxlength=windowsize;
if(maxlength>MAX_LENGTH) maxlength=MAX_LENGTH;
temp=p-windowsize;
if(temp<src) temp=src;
if(!phrase_ptr) phrase_ptr=SearchForPhrase(p,temp,maxlength,&phrase_length);
if(maxlength>1)
lazy_ptr=SearchForPhrase((p+1),(temp+1),maxlength--,&lazy_length);
if(((lazy_ptr!=NULL) && lazy_length>phrase_length) ||
!phrase_ptr || !maxlength) {
phrase_ptr=lazy_ptr;
phrase_length=lazy_length;
control<<=1;
control|=CONTROL_LITERAL;
*dest=*p;
dest++;
p++;
}
else {
control<<=1;
control|=CONTROL_CODEWORD;
phrase_index=(unsigned short)(p-phrase_ptr);
phrase_index=phrase_index<<4;
phrase_index=phrase_index|(((unsigned short)phrase_length-2)&0x0f);
*dest=(phrase_index>>Cool;
dest++;
*dest=(phrase_index&0xff);
dest++;
p+=phrase_length;
phrase_ptr=NULL;
}
iterationcnt++;
if(iterationcnt==ITERATIONS_BEFORE_CALLBACK) {
iterationcnt=0;
CallbackProc(src,src_end,p);
}

}
control_counter++;
control<<=1;
control|=CONTROL_CODEWORD;
*dest=0;dest++;
*dest=0;dest++;
while(control_counter!=Cool {
control<<=1;
control_counter++;
}
*control_ptr=control;
CompressCallback(src,src_end,src_end);
return (unsigned long)(dest-start_dest);
}

int main(int argc,char **argv) {
FILE *infile,*outfile;
unsigned long newsize=0;
time_t time1,time2;
fpos_t filesize=0;
void *srcmem,*destmem;
printf("\nSimple LZSS implementation v1.0, by Jeremy Collake");
printf("\nWritten for demonstrative/learning purposes only.");
printf("\nhttp://www.collakesoftware.com");
printf("\n---------------------------------------------------");
if(argc!=4) {
printf("\nInvalid parameters.");
printf("\nUsage: LZSS [c|d] inputfile outputfile\n");
return 1;
}
if(toupper(argv[1][0])=='C') {
printf("\nCompression mode.\n");
if((infile=fopen(argv[2],"rb"))==NULL) {
printf("\nError opening %s for input!",argv[2]);
return 2;
}
if((outfile=fopen(argv[3],"wb"))==NULL) {
printf("\nError opening %s for output!",argv[3]);
return 3;
}
fseek(infile,0,SEEK_END);
fgetpos(infile,&filesize);
fseek(infile,0,SEEK_SET);
srcmem=malloc((size_t)filesize);
destmem=malloc((size_t)filesize);
fread(srcmem,1,(size_t)filesize,infile);
fwrite((void *)&filesize,1,4,outfile);
time(&time1);
newsize=CompressData((unsigned char *)srcmem,(unsigned char *)destmem,(unsigned long)filesize,MAX_WINDOWSIZE,&CompressCallback);
time(&time2);
fwrite(destmem,1,(size_t)newsize,outfile);
printf("\nOriginal size: %u\tCompressed Size: %u\tTiming: %.0f seconds.\n",
(unsigned int)filesize,newsize+4,difftime(time2,time1));
}
else {
printf("\nDecompression mode.");
if((infile=fopen(argv[2],"rb"))==NULL) {
printf("\nError opening %s for input!",argv[2]);
return 2;
}
if((outfile=fopen(argv[3],"wb"))==NULL) {
printf("\nError opening %s for output!",argv[3]);
return 3;
}
fseek(infile,0,SEEK_END);
fgetpos(infile,&filesize);
fseek(infile,0,SEEK_SET);
fread((void *)&newsize,1,4,infile);
destmem=malloc((size_t)newsize+1);
srcmem=malloc((size_t)filesize);
fread(srcmem,1,(size_t)filesize-4,infile);
newsize=DecompressData((unsigned char *)srcmem,(unsigned char *)destmem);
fwrite(destmem,1,(size_t)newsize,outfile);
printf("\nCompressed size: %u Decompressed size: %u",(unsigned int)filesize,newsize);
}
free(srcmem);
free(destmem);
fclose(infile);
fclose(outfile);
return 0;
}





















الصور المرفقة
ضغط سوفتوير الأسترا والكوندور والهايفيون بين أيادي أبناء فنان سات )== Jpg st-00.jpg (49.8 كيلو بايت, 2242 قراءة)
ضغط سوفتوير الأسترا والكوندور والهايفيون بين أيادي أبناء فنان سات )== Jpg st-111.jpg (57.1 كيلو بايت, 2193 قراءة)
ضغط سوفتوير الأسترا والكوندور والهايفيون بين أيادي أبناء فنان سات )== Jpg st-22.jpg (57.8 كيلو بايت, 2122 قراءة)





الملفات المرفقة
ضغط سوفتوير الأسترا والكوندور والهايفيون بين أيادي أبناء فنان سات )== Rar SW-1309_HW200_ORIGNAL SIZE.rar (687.2 كيلو بايت, 1223 قراءة)
ضغط سوفتوير الأسترا والكوندور والهايفيون بين أيادي أبناء فنان سات )== Rar SW-1309_FREE_HW700_2M_ORIGNAL SIZE.rar (653.6
الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://yadak.rigala.net
 
ضغط سوفتوير الأسترا والكوندور والهايفيون بين أيادي أبناء فنان سات )==
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1
 مواضيع مماثلة
-

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
اتحاد مشرفى فنان سات ومصراوى سات :: الفئة الأولى :: منتدى القنوات الفضائيه-
انتقل الى: