14-04-2005, 14:57
|
|
|
|
חבר מתאריך: 20.06.03
הודעות: 5,616
|
|
אז ככה....
אם אתה משווה פיקסל פיקסל, מה עשית בחלוקה ל-20??
למעשה את מנסה לממש זרימת וידאו ברשת, ולא משנה איך תקרא לזה....(:
1. יש מחלקות מוכנים על מנת לנתח סדרת תמונות ולשלוח אותם כוידאו
2. אני לא אוהב להשתמש במשהו מוכן, אם יש הזדמנות ללמוד, אז הנה הסבר:- תוריד את רמת הצבע למינימום סיביות, כך תחסוך בגודל הקובץ הנוצר.
- תשתמש בדחיסה הגבוהה ביותר של jpeg (אמנם תשיג איכות יותר נמוכה, אך ממש זניחה)
- תחלק את המסך לא ל-20 חלקים, אלא אפילו ל 20 על 20 (400 חלקים) או יותר (את זה אתה צריך לבדוק כשכל פעם אתה מחלק למספר אחר יותר או פחות עד שתגיע ליחס קצב עיבוד של כל התמונות + שידור ברשת אופטימלי)
- הצורה בה אתה מבצע את הבדיקה של המסך היא לא של פיקסל פיקסל אלא אתה קודם הופך כל חלק של המסך מתוך x החלקים שיש לך ל-jpeg ואז יש לך x תמונות jpeg קטנות שאתה שולח ברשת ושומר אצלך לבדיקה הבאה.
- לאחר שאתה שוב מחלק את המסך לx חלקים ומייצר x יחידות jpeg נוספוץ אתה משווה checksum שלהם מאחר שתמונות jpeg בניגוד ל-bitmap שונות בגודלן אם התוכן שלהן שונה (ב-bitmap לכל פיקסל יש אותה יחידת מידע, לכן גם אם תמונה אחת היא משטח לבן ואחרת צבעונית, המשקל שלהן יהיה זהה בעוד ב-jpeg זו הלבנה תהיה קלה הרבה יותר מהצבעונית).
- כמובן, את אלה עם ה-checksum השונה אתה מעביר ברשת....
אבל רגע....להמיר כל תמונה ל-x (לדוגמה 400) תמונות jpegs???? אז זהו שלא, אתה לא מתעסק עם קבצים אלא מבצע את התהליך ומחזיק את האובייקט המייצג את קובץ ה-jpeg בזיכרון בלבד, כך אתה חוסך זמן כתיבה לכונן וכן הרבה מאוד זמן מיותר.
אם אתה רוצה יותר להשתולל, תחפש אלגוריתמים לדחיסת וידאו (בסגנון mpeg) ברשת....נושא מעניין שלוקח את הרעיון צעד נוסף קדימה בכך שהוא לא מחלק את התמונות לחלקים שווים, אלא מחפש תבניות שחוזרות על עצמן...
|