SlideShare a Scribd company logo
Jpeg encoderJpeg encoder
Hardware implementationHardware implementation
with Verilogwith Verilog
Designed byDesigned by
Alon Cohen (alonc777@gmail.comAlon Cohen (alonc777@gmail.com((
Roi Biton, Yevgeny (Yoni) KhasinRoi Biton, Yevgeny (Yoni) Khasin
Ariela Huber, Shulamyt Ajamy, Moshe SzklarAriela Huber, Shulamyt Ajamy, Moshe Szklar
Directed byDirected by
Mr. Max NigriMr. Max Nigri
The Hebrew UniversityThe Hebrew University
of Jerusalemof Jerusalem
1
The projectThe project
imagerimager
JPEG
JPEGEncoder
Encoder
JPEG
File
RGB
Data
SD CARDSD CARD
))flashflash((Eye-On-Si® Ultra-compact
CMOS Digital Camera
Module
example
Jpeg encoder for digital cameraJpeg encoder for digital camera
example
2
Top diagramTop diagram
JPEGJPEG
EncoderEncoder
DateDate
shootshoot
RGBRGB
3
imagerimager
‫מ‬ ‫מידע‬ ‫הזרמת‬ ‫המדמה‬ ‫מודול‬‫מ‬ ‫מידע‬ ‫הזרמת‬ ‫המדמה‬ ‫מודול‬imagerimager
Data FormatData Format :: 8bit RGB8bit RGB‫מקבילי‬ ‫סינכרוני‬‫מקבילי‬ ‫סינכרוני‬
‫כניסה‬ ‫רגל‬‫כניסה‬ ‫רגל‬shootshoot.‫חדשה‬ ‫תמונה‬ ‫לשליחת‬ ‫טריגר‬ –.‫חדשה‬ ‫תמונה‬ ‫לשליחת‬ ‫טריגר‬ –
‫נשלח‬ ‫תמונה‬ ‫כל‬ ‫העברת‬ ‫לפני‬‫נשלח‬ ‫תמונה‬ ‫כל‬ ‫העברת‬ ‫לפני‬headerheader‫שם‬ ‫את‬ ‫המעביר‬‫שם‬ ‫את‬ ‫המעביר‬
.‫התמונה‬ ‫וממדי‬ ‫הקובץ‬.‫התמונה‬ ‫וממדי‬ ‫הקובץ‬
4
playerplayer
.‫תמונה‬ ‫לצילום‬ ‫כפתור‬ ‫לחיצת‬ ‫מיצר‬.‫תמונה‬ ‫לצילום‬ ‫כפתור‬ ‫לחיצת‬ ‫מיצר‬
‫בקוד‬ ‫תאריך‬ ‫מיצר‬‫בקוד‬ ‫תאריך‬ ‫מיצר‬ASCIIASCII..
: ‫התמונה‬ ‫איכות‬ ‫את‬ ‫קובע‬: ‫התמונה‬ ‫איכות‬ ‫את‬ ‫קובע‬quality factorquality factor
00––lowlow
11--midmid
22--highhigh
5
flashflash
.‫זיכרון‬ ‫כרטיס‬ ‫המדמה‬ ‫מודול‬.‫זיכרון‬ ‫כרטיס‬ ‫המדמה‬ ‫מודול‬
‫סינכרונית‬ ‫מקבילית‬ ‫תקשורת‬‫סינכרונית‬ ‫מקבילית‬ ‫תקשורת‬32bit32bit..
‫של‬ ‫לכתיבה‬ ‫אפשרות‬‫של‬ ‫לכתיבה‬ ‫אפשרות‬8,16,24,328,16,24,32BitBit‫עלית‬ ‫בכל‬‫עלית‬ ‫בכל‬
.‫שעון‬.‫שעון‬
‫העברת‬ ‫לפני‬ ‫מתבצעת‬ ‫הקובץ‬ ‫שם‬ ‫העברת‬‫העברת‬ ‫לפני‬ ‫מתבצעת‬ ‫הקובץ‬ ‫שם‬ ‫העברת‬
.‫המידע‬.‫המידע‬
6
encoderencoder
‫לפורמט‬ ‫תמונה‬ ‫מקודד‬‫לפורמט‬ ‫תמונה‬ ‫מקודד‬jpg filejpg file..
‫בפורמט‬ ‫תמונה‬ :‫כניסה‬‫בפורמט‬ ‫תמונה‬ :‫כניסה‬RGBRGB) ‫טורי‬ ‫באופן‬ ,) ‫טורי‬ ‫באופן‬ ,datadata
8bit8bit.(.(
‫סינכרונית‬ ‫כתיבה‬ :‫מוצא‬‫סינכרונית‬ ‫כתיבה‬ :‫מוצא‬32bit data32bit data‫לזיכרון‬‫לזיכרון‬flashflash..
:‫בקרות‬:‫בקרות‬
Quality factorQuality factor–‫איכות‬ ‫לקביעת‬ ‫ביטים‬ ‫שני‬–‫איכות‬ ‫לקביעת‬ ‫ביטים‬ ‫שני‬
‫.התמונה‬‫.התמונה‬
Date(64bitDate(64bit))–‫בקוד‬ ‫תאריך‬ ‫הכנסת‬–‫בקוד‬ ‫תאריך‬ ‫הכנסת‬ASCIIASCII..
ShootShoot‫תמונה‬ ‫לצילום‬ ‫.טריגר‬‫תמונה‬ ‫לצילום‬ ‫.טריגר‬
JPEG
JPEGEncoder
Encoder
7
EncoderEncoder
Block diagram & conceptBlock diagram & concept
8
Encoder Block diagramEncoder Block diagram
QuantizationQuantization
DCTDCT
&&
ZIGZAGZIGZAG
RLCRLC
&&
DPCMDPCM
DCTDCT
ClientClient
TripleTriple
FIFOFIFO
ControlControl
RGB toRGB to
YCbCrYCbCr
ARBARB
RAMRAM
BlocksBlocks
Wr PixelsWr Pixels
ClientClient
DateDate
StamperStamper
AlinerAlinerInt to floatInt to float
Clk dividerClk divider
Quan ROMQuan ROM
TBTB
FIFOFIFO
writerwriter
HuffmanHuffman
codecode
Serial toSerial to
paralelparalel
FlashFlash
writerwriter
DCTDCT
ROMROM
9
‫מודולים‬ ‫בין‬ ‫תקשורת‬‫מודולים‬ ‫בין‬ ‫תקשורת‬
‫השונים‬ ‫המודולים‬ ‫בין‬ ‫המידע‬ ‫להעברת‬ ‫אחיד‬ ‫תקן‬‫השונים‬ ‫המודולים‬ ‫בין‬ ‫המידע‬ ‫להעברת‬ ‫אחיד‬ ‫תקן‬
spen_in/spen_outspen_in/spen_out–' ‫ב‬ ‫נמצא‬–' ‫ב‬ ‫נמצא‬11‫בלוקתמונה‬ ‫מועבר‬ ‫עוד‬ ‫כל‬ '.‫בלוקתמונה‬ ‫מועבר‬ ‫עוד‬ ‫כל‬ '.
d_in_valid/d_out_validd_in_valid/d_out_valid–'1–'1' ‫הנוכחית‬ ‫השעון‬ ‫עלית‬ ‫עבור‬ ‫תקף‬ ‫מידע‬ ‫.מציין‬' ‫הנוכחית‬ ‫השעון‬ ‫עלית‬ ‫עבור‬ ‫תקף‬ ‫מידע‬ ‫.מציין‬
rstrst–‫המודול‬ ‫.אתחול‬–‫המודול‬ ‫.אתחול‬
mclkmclk–‫המודול‬ ‫של‬ ‫עבודה‬ ‫.שעון‬–‫המודול‬ ‫של‬ ‫עבודה‬ ‫.שעון‬
‫בלוק‬ ‫תחילת‬ ‫בלוק‬ ‫סוף‬‫תקף‬ ‫מידע‬
10
‫ברצף‬ ‫תמונות‬ ‫צילום‬‫ברצף‬ ‫תמונות‬ ‫צילום‬
Shoot‫תמונה‬ ‫לצילום‬
‫חדשה‬
Busy‫ה‬ ‫כי‬ ‫מציין‬
encoder‫באמצע‬
‫עבודה‬
‫ה‬ ‫בכניסת‬ ‫הבלוקים‬
DCT
‫קובץ‬ ‫סיום‬
‫נלחץ‬ ‫לא‬shoot
‫מועברת‬ ‫תמונה‬ ‫אין‬
pxq‫בזמן‬ ‫דלוק‬
‫המידע‬ ‫העברת‬
11
Block diagram – data flowBlock diagram – data flow
‫מה‬ ‫המידע‬ ‫כניסת‬ ,‫שמאל‬ ‫מצד‬‫מה‬ ‫המידע‬ ‫כניסת‬ ,‫שמאל‬ ‫מצד‬imagerimager..
Int to floatInt to float– ‫מ‬ ‫המידע‬ ‫את‬ ‫ממיר‬– ‫מ‬ ‫המידע‬ ‫את‬ ‫ממיר‬8bit data8bit data‫ל‬‫ל‬floating point 24floating point 24
bitbit..
AlinerAliner‫טורי‬ ‫מקבל‬‫טורי‬ ‫מקבל‬R,G,BR,G,B‫שלשה‬ ‫ומוציא‬‫שלשה‬ ‫ומוציא‬}}R,G,BR,G,B{{‫כל‬ ‫מיושרים‬‫כל‬ ‫מיושרים‬33
‫.שעונים‬‫.שעונים‬
12
Block diagram – data flowBlock diagram – data flow
Date stamperDate stamper‫של‬ ‫הדפסה‬ ‫מבצע‬‫של‬ ‫הדפסה‬ ‫מבצע‬
‫כדי‬ ‫תוך‬ ‫התמונה‬ ‫לתוך‬ ‫תאריך‬‫כדי‬ ‫תוך‬ ‫התמונה‬ ‫לתוך‬ ‫תאריך‬
‫המידע‬ ‫.זרימת‬‫המידע‬ ‫.זרימת‬
‫למודול‬ ‫מחוץ‬ ‫מתקבל‬ ‫התאריך‬‫למודול‬ ‫מחוץ‬ ‫מתקבל‬ ‫התאריך‬
‫בפורמט‬‫בפורמט‬ASCIIASCII‫של‬ ‫מקבילי‬ ‫קו‬ ‫ע"י‬‫של‬ ‫מקבילי‬ ‫קו‬ ‫ע"י‬
64bit64bit..
‫מתיחה‬ ‫לבצע‬ ‫פרמטרים‬ ‫ע"י‬ ‫נתן‬‫מתיחה‬ ‫לבצע‬ ‫פרמטרים‬ ‫ע"י‬ ‫נתן‬
.‫לתאריך‬ ‫ורוחבי‬ ‫אופקי‬ ‫וכיווץ‬.‫לתאריך‬ ‫ורוחבי‬ ‫אופקי‬ ‫וכיווץ‬
‫ה‬ ‫כל‬ ‫את‬ ‫להדפיס‬ ‫נתן‬‫ה‬ ‫כל‬ ‫את‬ ‫להדפיס‬ ‫נתן‬A,B,CA,B,C
13
Block diagram – data flowBlock diagram – data flow
RGBtoYCbCrRGBtoYCbCr– ‫לפורמט‬ ‫המרה‬ ‫המבצע‬ ‫מודול‬– ‫לפורמט‬ ‫המרה‬ ‫המבצע‬ ‫מודול‬Y,Cb,CrY,Cb,Cr‫ו‬‫ו‬offsetoffset‫של‬‫של‬--128128‫הכפלה‬ ‫ע"י‬‫הכפלה‬ ‫ע"י‬
‫.במטריצה‬‫.במטריצה‬
Wr Pixel ClientWr Pixel Client‫לזיכרון‬ ‫שורה‬ ‫אחר‬ ‫שורה‬ ‫המידע‬ ‫של‬ ‫כתיבה‬ ‫מבצע‬‫לזיכרון‬ ‫שורה‬ ‫אחר‬ ‫שורה‬ ‫המידע‬ ‫של‬ ‫כתיבה‬ ‫מבצע‬RAMRAM‫ציקלית‬ ‫בצורה‬‫ציקלית‬ ‫בצורה‬
‫פולס‬ ‫ומייצר‬‫פולס‬ ‫ומייצר‬startstart‫של‬ ‫כתיבה‬ ‫סיום‬ ‫כל‬ ‫עם‬‫של‬ ‫כתיבה‬ ‫סיום‬ ‫כל‬ ‫עם‬88‫שורות‬ .‫שורות‬ .
‫כל‬ ‫של‬ ‫ההתחלתית‬ ‫הכתובת‬ ‫את‬ ‫מספק‬ ‫בנוסף‬‫כל‬ ‫של‬ ‫ההתחלתית‬ ‫הכתובת‬ ‫את‬ ‫מספק‬ ‫בנוסף‬88‫כל‬ ‫עם‬ ‫שורות‬‫כל‬ ‫עם‬ ‫שורות‬startstart.‫סנכרון‬ ‫לצורך‬.‫סנכרון‬ ‫לצורך‬
To ARBTo ARB14
Block diagram – data flowBlock diagram – data flow
RAM BlocksRAM Blocks– ‫מ‬ ‫המגיעה‬ ‫התמונה‬ ‫של‬ ‫המידע‬ ‫שורות‬ ‫את‬ ‫מאחסן‬ –– ‫מ‬ ‫המגיעה‬ ‫התמונה‬ ‫של‬ ‫המידע‬ ‫שורות‬ ‫את‬ ‫מאחסן‬ –wr pixels clientwr pixels client..
ARBARB– ‫ל‬ ‫ארביטרציה‬– ‫ל‬ ‫ארביטרציה‬RAMRAM‫עם‬‫עם‬strict prioritystrict priority‫ל‬‫ל‬wr pixels clientwr pixels client..
DCT ClientDCT Client– ‫מה‬ ‫המידע‬ ‫רצועות‬ ‫את‬ ‫מושך‬– ‫מה‬ ‫המידע‬ ‫רצועות‬ ‫את‬ ‫מושך‬RAMRAM‫של‬ ‫בפורמט‬‫של‬ ‫בפורמט‬blocks 8x8blocks 8x8
‫המידע‬ ‫משיכת‬ ‫סדר‬‫המידע‬ ‫משיכת‬ ‫סדר‬top to down and left to righttop to down and left to right..
‫וסגנל‬ ‫התחלתית‬ ‫כתובת‬ ‫מקבל‬‫וסגנל‬ ‫התחלתית‬ ‫כתובת‬ ‫מקבל‬startstart.‫הקריאה‬ ‫וזמן‬ ‫כתובת‬ ‫לסימון‬.‫הקריאה‬ ‫וזמן‬ ‫כתובת‬ ‫לסימון‬
From wrFrom wr
pixels clientpixels client
To DCTTo DCT
15
Block diagram – data flowBlock diagram – data flow
‫ביצוע‬‫ביצוע‬DCTDCT‫על‬ ‫במקביל‬‫על‬ ‫במקביל‬Y,Cb,CrY,Cb,Cr..
‫מימין‬ ‫מקדמים‬ ‫במטריצת‬ ‫הכפלה‬ ‫ע"י‬ ‫ביצוע‬‫מימין‬ ‫מקדמים‬ ‫במטריצת‬ ‫הכפלה‬ ‫ע"י‬ ‫ביצוע‬
‫בזיכרון‬ ‫השמורה‬ ‫ומשמאל‬‫בזיכרון‬ ‫השמורה‬ ‫ומשמאל‬ROMROM‫חיצוני‬‫חיצוני‬
.‫המודולים‬ ‫לשלושת‬.‫המודולים‬ ‫לשלושת‬
BlockBlock
16
Block diagram – data flowBlock diagram – data flow
‫ביצוע‬‫ביצוע‬QuantizationQuantization‫על‬ ‫במקביל‬‫על‬ ‫במקביל‬Y,Cb,CrY,Cb,Cr..
‫איכויות‬ ‫שלושה‬ ‫עבור‬ ‫הקוונטיזציה‬ ‫טבלאות‬‫איכויות‬ ‫שלושה‬ ‫עבור‬ ‫הקוונטיזציה‬ ‫טבלאות‬
‫ב‬ ‫שמורות‬‫ב‬ ‫שמורות‬ROMROM‫ה‬ ‫למודולי‬ ‫חיצוני‬‫ה‬ ‫למודולי‬ ‫חיצוני‬
QuantizationQuantization..
‫מודול‬‫מודול‬quan_table_swquan_table_sw‫מוסיף‬‫מוסיף‬offsetoffset‫מתאים‬‫מתאים‬
‫ב‬ ‫לכתובת‬‫ב‬ ‫לכתובת‬ROMROM‫ל‬ ‫בהתאם‬‫ל‬ ‫בהתאם‬2bit quality factor2bit quality factor
‫למודול‬ ‫מחוץ‬ ‫המגיע‬‫למודול‬ ‫מחוץ‬ ‫המגיע‬encoderencoder..
‫טבלאות‬‫טבלאות‬chrom & lumchrom & lum‫שע"י‬ ‫כך‬ ‫לאורך‬ ‫שמורות‬‫שע"י‬ ‫כך‬ ‫לאורך‬ ‫שמורות‬
‫ה‬ ‫במוצא‬ ‫מתאים‬ ‫חיווט‬‫ה‬ ‫במוצא‬ ‫מתאים‬ ‫חיווט‬ROMROM‫מודול‬ ‫כל‬‫מודול‬ ‫כל‬quanquan
.‫לו‬ ‫המתאים‬ ‫המידע‬ ‫את‬ ‫מקבל‬.‫לו‬ ‫המתאים‬ ‫המידע‬ ‫את‬ ‫מקבל‬
17
Quality factorQuality factor
‫היא‬ ‫הקוונטיזציה‬ ‫פעולת‬‫היא‬ ‫הקוונטיזציה‬ ‫פעולת‬
‫הקוונטיזציה‬ ‫בטבלת‬ ‫הכפלה‬‫הקוונטיזציה‬ ‫בטבלת‬ ‫הכפלה‬
.‫התוצאה‬ ‫ועיגול‬.‫התוצאה‬ ‫ועיגול‬
‫שלושה‬ ‫בין‬ ‫השוואה‬ ‫להלן‬‫שלושה‬ ‫בין‬ ‫השוואה‬ ‫להלן‬
:‫שונות‬ ‫איכויות‬:‫שונות‬ ‫איכויות‬
Medium(8k)
Value/(0.5*table)
Low(5.45k)
value/table
High(11.5k)
Value/(0.25*table)
Bmp(54k)
18
Block diagram – data flowBlock diagram – data flow
RLERLE -- Run Length EncodeRun Length Encode
DPCMDPCM -- Differential Pulse CodeDifferential Pulse Code
ModulationModulation
‫האפליקציות‬ ‫שני‬ ‫את‬ ‫המממש‬ ‫מודול‬‫האפליקציות‬ ‫שני‬ ‫את‬ ‫המממש‬ ‫מודול‬
RLE & DPCMRLE & DPCM..
‫המבצע‬ ‫למודול‬ ‫מתחברים‬ ‫מוצאים‬‫המבצע‬ ‫למודול‬ ‫מתחברים‬ ‫מוצאים‬
‫ל‬ ‫כתיבה‬‫ל‬ ‫כתיבה‬FIFOFIFO
‫במוצא‬ ‫המידע‬ ‫כמות‬ ‫כי‬ ‫לראות‬ ‫ניתן‬‫במוצא‬ ‫המידע‬ ‫כמות‬ ‫כי‬ ‫לראות‬ ‫ניתן‬
‫המידע‬ ‫מכמות‬ ‫בהרבה‬ ‫קטנה‬‫המידע‬ ‫מכמות‬ ‫בהרבה‬ ‫קטנה‬
.‫בכניסה‬.‫בכניסה‬
BlockBlock
19
Block diagram – data flowBlock diagram – data flow
FIFO WriterFIFO Writer
‫ערוצי‬ ‫שלושת‬ ‫את‬ ‫מקבל‬‫ערוצי‬ ‫שלושת‬ ‫את‬ ‫מקבל‬
‫ריבוב‬ ‫ומבצע‬ ‫המידע‬‫ריבוב‬ ‫ומבצע‬ ‫המידע‬
‫ל‬ ‫וכתיבה‬ ‫שלהם‬‫ל‬ ‫וכתיבה‬ ‫שלהם‬tripletriple
fifofifo..
Super FIFOSuper FIFO
‫סקטורים‬ ‫שלושה‬ ‫מכיל‬ –‫סקטורים‬ ‫שלושה‬ ‫מכיל‬ –
‫על‬ ‫הממומשים‬ ‫זיכרון‬ ‫של‬‫על‬ ‫הממומשים‬ ‫זיכרון‬ ‫של‬
‫גבי‬‫גבי‬RAMRAM.‫אחד‬.‫אחד‬
‫שלם‬ ‫בלוק‬ ‫מגיע‬ ‫כאשר‬‫שלם‬ ‫בלוק‬ ‫מגיע‬ ‫כאשר‬
‫במוצא‬ ‫יוצאים‬ ‫הבלוקים‬‫במוצא‬ ‫יוצאים‬ ‫הבלוקים‬
‫בהתאם‬ ‫השני‬ ‫אחרי‬ ‫אחד‬‫בהתאם‬ ‫השני‬ ‫אחרי‬ ‫אחד‬
.‫קריאה‬ ‫לבקשת‬.‫קריאה‬ ‫לבקשת‬
‫בלוק‬ ‫וסוף‬ ‫תחילה‬ ‫סימון‬‫בלוק‬ ‫וסוף‬ ‫תחילה‬ ‫סימון‬
‫ביטים‬ ‫שני‬ ‫ע"י‬ ‫מתבצעים‬‫ביטים‬ ‫שני‬ ‫ע"י‬ ‫מתבצעים‬
‫חלק‬ ‫שהם‬ ‫ראשונים‬‫חלק‬ ‫שהם‬ ‫ראשונים‬
.‫המידע‬ ‫מרגיסטרי‬.‫המידע‬ ‫מרגיסטרי‬
‫שכמות‬ ‫לראות‬ ‫ניתן‬‫שכמות‬ ‫לראות‬ ‫ניתן‬
‫אחד‬ ‫בכל‬ ‫שונה‬ ‫המידע‬‫אחד‬ ‫בכל‬ ‫שונה‬ ‫המידע‬
‫מהמסלולים‬‫מהמסלולים‬
20
Block diagram – data flowBlock diagram – data flow
‫ב‬ ‫השמורות‬ ‫טבלאות‬ ‫ע"י‬ ‫המידע‬ ‫של‬ ‫הופמן‬ ‫קידוד‬‫ב‬ ‫השמורות‬ ‫טבלאות‬ ‫ע"י‬ ‫המידע‬ ‫של‬ ‫הופמן‬ ‫קידוד‬ROMROM‫ביטים‬ ‫עם‬ ‫המקודד‬ ‫המידע‬ ‫של‬ ‫והוצאה‬‫ביטים‬ ‫עם‬ ‫המקודד‬ ‫המידע‬ ‫של‬ ‫והוצאה‬
.‫הרלוונטי‬ ‫המידע‬ ‫אורך‬ ‫לציון‬.‫הרלוונטי‬ ‫המידע‬ ‫אורך‬ ‫לציון‬
Serial to paralelSerial to paralel– ‫אחיד‬ ‫באורך‬ ‫מידע‬ ‫ומוציא‬ ‫השונים‬ ‫באורכים‬ ‫הביטים‬ ‫את‬ ‫טורית‬ ‫בצורה‬ ‫אוסף‬– ‫אחיד‬ ‫באורך‬ ‫מידע‬ ‫ומוציא‬ ‫השונים‬ ‫באורכים‬ ‫הביטים‬ ‫את‬ ‫טורית‬ ‫בצורה‬ ‫אוסף‬
‫של‬‫של‬32bit32bit‫ל‬ ‫לכתיבה‬‫ל‬ ‫לכתיבה‬flashflash
21
Block diagram – data flowBlock diagram – data flow
Flash writerFlash writer– ‫ו‬ ‫הקובץ‬ ‫שם‬ ‫של‬ ‫וכתיבה‬ ‫יצור‬– ‫ו‬ ‫הקובץ‬ ‫שם‬ ‫של‬ ‫וכתיבה‬ ‫יצור‬headerheader‫ל‬‫ל‬jpeg filejpeg file..
‫מה‬ ‫המגיע‬ ‫המידע‬ ‫כתיבת‬‫מה‬ ‫המגיע‬ ‫המידע‬ ‫כתיבת‬serial to paralelserial to paralel.‫בקובץ‬ ‫המתאים‬ ‫למקום‬.‫בקובץ‬ ‫המתאים‬ ‫למקום‬
22
ROM & RAM CalculationROM & RAM Calculation
Date Stamper ROMDate Stamper ROM
255255‫תווי‬‫תווי‬ASCIIASCII‫תו‬ ‫כל‬ ,‫תו‬ ‫כל‬ ,5x5bit5x5bit
255255**55**5/85/8==797byte797byte
:‫מבנה‬:‫מבנה‬5bit x 1275 rows5bit x 1275 rows
11bit address11bit address
RAM BlocksRAM Blocks
‫מה‬ ‫דרישה‬‫מה‬ ‫דרישה‬DCTDCT‫כל‬ ‫בין‬ ‫לרווח‬‫כל‬ ‫בין‬ ‫לרווח‬data_validdata_valid:‫במוצא‬:‫במוצא‬88cyclescycles
‫מה‬ ‫דרישה‬‫מה‬ ‫דרישה‬DCTDCT‫הבלוקים‬ ‫בין‬ ‫מחזורים‬ '‫למס‬‫הבלוקים‬ ‫בין‬ ‫מחזורים‬ '‫למס‬627627
‫בלוק‬ ‫במעבר‬ ‫מחזורים‬ '‫מס‬‫בלוק‬ ‫במעבר‬ ‫מחזורים‬ '‫מס‬6666**88==528528
:‫בלוקים‬ ‫בין‬ ‫השהייה‬ ‫כלל‬ ‫לבלוק‬ ‫דרושים‬ ‫מחזורים‬ ‫סה"כ‬:‫בלוקים‬ ‫בין‬ ‫השהייה‬ ‫כלל‬ ‫לבלוק‬ ‫דרושים‬ ‫מחזורים‬ ‫סה"כ‬11551155
‫באורך‬ ‫רצועה‬ ‫לפינויי‬ ‫שעון‬ ‫מחזורי‬ ‫סה"כ‬‫באורך‬ ‫רצועה‬ ‫לפינויי‬ ‫שעון‬ ‫מחזורי‬ ‫סה"כ‬10241024::11551155)*)*1024/81024/8=(=(147840147840
:‫זה‬ ‫בזמן‬ ‫שיכתבו‬ ‫זיכרון‬ ‫שורות‬ ‫סה"כ‬:‫זה‬ ‫בזמן‬ ‫שיכתבו‬ ‫זיכרון‬ ‫שורות‬ ‫סה"כ‬147840/8/3147840/8/3==61606160
: ‫שדרושות‬ ‫זיכרון‬ ‫שורות‬ '‫מס‬ ‫סה"כ‬: ‫שדרושות‬ ‫זיכרון‬ ‫שורות‬ '‫מס‬ ‫סה"כ‬1024pix*8+6160=143521024pix*8+6160=14352
‫הוא‬ ‫הדרוש‬ ‫הזיכרון‬ ‫גודל‬ ‫לכן‬‫הוא‬ ‫הדרוש‬ ‫הזיכרון‬ ‫גודל‬ ‫לכן‬14352rows*72bit =14352rows*72bit = 126kb126kb
14bit address14bit address 23
ROM & RAM CalculationROM & RAM Calculation
DCT ROM – commonDCT ROM – common
.‫ההמרה‬ ‫לביצוע‬ ‫המטריצה‬ ‫להחזקת‬ ‫משמש‬.‫ההמרה‬ ‫לביצוע‬ ‫המטריצה‬ ‫להחזקת‬ ‫משמש‬
6464value of 24bit floating pointvalue of 24bit floating point
Size = 64*24/8 =Size = 64*24/8 = 192byte192byte
66bit addressbit address
DCT RAMDCT RAM
.‫ראשונה‬ ‫הכפלה‬ ‫לאחר‬ ‫המתקבלת‬ ‫המטריצה‬ ‫לשמירת‬ ‫משמש‬.‫ראשונה‬ ‫הכפלה‬ ‫לאחר‬ ‫המתקבלת‬ ‫המטריצה‬ ‫לשמירת‬ ‫משמש‬
6464value of 24bit floating pointvalue of 24bit floating point
Size = 64*24/8 =Size = 64*24/8 = 192byte192byte
66bit addressbit address
24
ROM & RAM CalculationROM & RAM Calculation
Quantization ROM – commonQuantization ROM – common
) ‫זוגות‬ ‫שלושה‬ ‫להחזקת‬ ‫משמש‬) ‫זוגות‬ ‫שלושה‬ ‫להחזקת‬ ‫משמש‬luma & chromeluma & chrome‫איכות‬ ‫דרגות‬ ‫שלושה‬ ‫עבור‬ ‫קבועים‬ ‫מטריצות‬ (‫איכות‬ ‫דרגות‬ ‫שלושה‬ ‫עבור‬ ‫קבועים‬ ‫מטריצות‬ (
.‫לתמונה‬.‫לתמונה‬
6464**33==192192rows of 2*24bit floating pointrows of 2*24bit floating point
Size = 64*3*2*24/8 =Size = 64*3*2*24/8 = 1152byte1152byte
88bit addressbit address
Super FIFO Dual port RAMSuper FIFO Dual port RAM
‫המסלולים‬ ‫שלושת‬ ‫של‬ ‫המידע‬ ‫לשמירת‬ ‫משמש‬‫המסלולים‬ ‫שלושת‬ ‫של‬ ‫המידע‬ ‫לשמירת‬ ‫משמש‬Y,Cb,CrY,Cb,Cr‫גם‬ ‫מאפשר‬ .‫מחדש‬ ‫שלהם‬ ‫איחוד‬ ‫לצורך‬‫גם‬ ‫מאפשר‬ .‫מחדש‬ ‫שלהם‬ ‫איחוד‬ ‫לצורך‬
‫ל‬ ‫הכתיבה‬ ‫פעולת‬ ‫של‬ ‫השהייה‬‫ל‬ ‫הכתיבה‬ ‫פעולת‬ ‫של‬ ‫השהייה‬FlashFlash..
‫מה‬ ‫מקסימאלית‬ ‫השהייה‬‫מה‬ ‫מקסימאלית‬ ‫השהייה‬flashflash‫ל‬ ‫מותאמת‬‫ל‬ ‫מותאמת‬80cycles80cycles‫של‬ ‫תוספת‬ ‫דרושה‬ ‫לכן‬‫של‬ ‫תוספת‬ ‫דרושה‬ ‫לכן‬
80/880/8==1010rows per sectorrows per sector
‫ל‬ ‫בנוסף‬‫ל‬ ‫בנוסף‬Cb, CrCb, Cr‫עוד‬ ‫דרושים‬‫עוד‬ ‫דרושים‬6464**22==128128rowsrows‫ועוד‬‫ועוד‬22rowsrows‫ל‬‫ל‬YY
:‫סה"כ‬:‫סה"כ‬1010**3+643+64**2+22+2==160160
159159rows * 21bit =rows * 21bit = 420byte420byte
8bit address8bit address
25
ROM & RAM CalculationROM & RAM Calculation
Huffman table ROMHuffman table ROM
‫הופמן‬ ‫קידוד‬ ‫לביצוע‬ ‫הערכים‬ ‫טבלת‬ ‫את‬ ‫מחזיק‬‫הופמן‬ ‫קידוד‬ ‫לביצוע‬ ‫הערכים‬ ‫טבלת‬ ‫את‬ ‫מחזיק‬
Chrominance DC – 12 rowsChrominance DC – 12 rows
Luminance DC – 12 rowsLuminance DC – 12 rows
Chrominance AC – 163 rowsChrominance AC – 163 rows
Luminance AC – 163 rowsLuminance AC – 163 rows
Sum: 350 rows * 20bit =Sum: 350 rows * 20bit = 875byte875byte
9bit address9bit address
Flash writer ROMFlash writer ROM
‫ה‬ ‫את‬ ‫מחזיק‬‫ה‬ ‫את‬ ‫מחזיק‬HeaderHeader‫ה‬ ‫קובץ‬ ‫בתחילת‬ ‫שנכתב‬‫ה‬ ‫קובץ‬ ‫בתחילת‬ ‫שנכתב‬jpegjpeg‫עבור‬ ‫הדחוסות‬ ‫הקוונטיזציה‬ ‫טבלאות‬ ‫ואת‬‫עבור‬ ‫הדחוסות‬ ‫הקוונטיזציה‬ ‫טבלאות‬ ‫ואת‬
.‫במערכת‬ ‫הנתמכות‬ ‫האיכויות‬ ‫שלושת‬.‫במערכת‬ ‫הנתמכות‬ ‫האיכויות‬ ‫שלושת‬
881881rows * 8bit =rows * 8bit = 881bytes881bytes
10bit address10bit address
26
ROM & RAM summaryROM & RAM summary
RAM Blocks = 126KbyteRAM Blocks = 126Kbyte!! All otherAll other
ROM = 3.8kbROM = 3.8kb
RAM = 0.6kbRAM = 0.6kb
27
ModulesModules
implementationimplementation
28
Advanced FeatureAdvanced Feature
Date StamperDate Stamper
‫כל‬ ‫להדביק‬ ‫אפשרות‬ :‫המידע‬ ‫מעבר‬ ‫בזמן‬ ‫לתמונה‬ ‫תאריך‬ ‫הדבקת‬font
‫ב‬ ‫השמור‬ROM‫את‬ ‫ולקבוע‬ ‫ורוחבית‬ ‫אורכית‬ ‫מתיחה‬ ‫לבצע‬ ‫ניתן‬ .‫מיועד‬
.‫מובנים‬ ‫פרמטרים‬ ‫שינויי‬ ‫ע"י‬ ‫התאריך‬ ‫הדבקת‬ ‫מיקום‬
BONUS
BONUS
29
BONUS:BONUS: date_stamperdate_stamper
 Inputs:Inputs: R_aline, G_aline, B_alineR_aline, G_aline, B_aline –– original alined RGB.original alined RGB.
datedate –– the date to be stamped.the date to be stamped.
date_en - enable/disable stamping feature.date_en - enable/disable stamping feature.
 Outputs:Outputs: R_out, G_out, B_outR_out, G_out, B_out –– ““stampedstamped”” RGB.RGB. 30
BONUS:BONUS: date_stamper contdate_stamper cont..
muxdate_reg
8
MUL
DIG_HEIGHT
LOGIC
LOGIC
LOGIC
LOGIC
start
spen_in
hd
clk
LOGIC
LOGIC
X_cnt
Y_cnt
X_START_FROM
Y_START_FROM
row_num
col_num
work_flag
DIG_WIDTH
LOGIC
LOGIC
CUBE_HEIGHT
LOGIC
LOGICCUBE_WIDTH dig_col
dig_row
dig_start_add
+
fonts ROM
“ascii” ordered
add
mux
5
1
mux
}R,G,B}outoriginal {R,G,B{
stamp_pixel
{255,0,0}
3
3
work_flag
work_flag
work_flag
31
BONUS:BONUS: date_stamper contdate_stamper cont..
.‫בקלות‬ ‫לשינוי‬ ‫וניתנים‬ ‫כפרמטרים‬ ‫מוגדרים‬ ‫והמיקומים‬ ‫המימדים‬
1234
1
2
3
4
X_cnt = X_START_FROM
Y_cnt = Y_START_FROM
col_num = 0
row_num = 0
image: digit dimensions:
CUBE_HEIGHT
pixel
CUBE_WIDTH
DIG_WIDTH
DIG_HEIGHT
cube dimensions:
32
BONUS:BONUS: date_stamper contdate_stamper cont..
:‫נוספים‬ ‫מימדים‬ ‫כמה‬:‫נוספים‬ ‫מימדים‬ ‫כמה‬
CUBE_HEIGHT
CUBE_WIDTH
CUBE_HEIGHT
CUBE_WIDTH
CUBE_HEIGHT
CUBE_WIDTH
33
BONUS:BONUS: date_stamper contdate_stamper cont..
– ‫בו‬ ‫באזור‬ ‫רק‬ ‫פעיל‬ ‫המודול‬work_flag = 1.
.‫ישירות‬ ‫מועברים‬ ‫הפיקסלים‬ ,‫זה‬ ‫לאזור‬ ‫מחוץ‬
– ‫התמונה‬ ‫שאר‬work_flag = 0
– ‫התאריך‬ ‫הדבקת‬ ‫אזור‬work_flag = 1
34
BONUS:BONUS: date_stamper contdate_stamper cont..
-‫ב‬ ‫שמורים‬ ‫התוים‬ROM‫ומסודרים‬
‫סדר‬ ‫ע"פ‬ ‫בכתובות‬ASCII‫בכפולות‬
-‫ב‬ ‫התו‬ ‫גודל‬ ‫של‬)cubes(‫הגדרנו‬ ‫כאשר‬
‫הינו‬ ‫אצלנו‬ ‫התו‬ ‫שגודל‬5.
ASCII table font ROM
0 0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
00
0 0
0 0
0 0
11 1
1
1
1
1
1 1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1 1
1 1
1 1
1 1
1 1 1
1
1
1
address
48x 5
49x 5
50x 5
51x 5
0
1
2
3
‫נעשתה‬ ‫הפונטים‬ ‫של‬ ‫וההזנה‬ ‫ההגדרה‬
...‫יצירתיות‬ ‫מעט‬ ‫ודרשה‬ ‫ידני‬ ‫באופן‬
35
BONUS:BONUS: date_stamper contdate_stamper cont..
-‫ב‬ ‫הפונטים‬ ‫סידור‬ROM‫אחר‬ ‫כיתוב‬ ‫כל‬ ‫הדבקת‬ ,‫התאריך‬ ‫להדבקת‬ ‫פרט‬ ,‫מאפשר‬ ‫לעיל‬ ‫שהוסבר‬ ‫כפי‬
:‫מחרוזת‬ ‫של‬ ‫פשוטה‬ ‫בצורה‬ ‫הכיתוב‬ ‫הזנת‬ ‫ע"י‬ ,‫וגינרי‬ ‫נוח‬ ‫באופן‬ ‫בו‬ ‫שחפצים‬
‫חיצוני‬ ‫דמה‬ ‫מודול‬ ‫ע"י‬ ‫מועבר‬ ‫התאריך‬)behavioral Verilog(.‫מערך‬ ‫בתוך‬ ‫ונשמר‬
.‫ההדבקה‬ ‫אפשורביטול‬ ‫גם‬ ‫מדמה‬ ‫זה‬ ‫מודול‬
player
wire [NUM_OF_DIG*8-1:0] DATE;
reg date_en;
date_stamper
reg [7:0] date_reg[7:0[;
wire en
36
BONUS:BONUS: date_stamper contdate_stamper cont..
DebuggingDebugging
– ‫לשם‬ ‫ולכן‬ ,‫עצמאי‬ ‫באופן‬ ‫פותח‬ ‫המודל‬– ‫לשם‬ ‫ולכן‬ ,‫עצמאי‬ ‫באופן‬ ‫פותח‬ ‫המודל‬debuggingdebugging.‫תמונה‬ ‫המדמה‬ ‫מימדי‬ ‫דו‬ ‫מערך‬ ‫הגדרנו‬.‫תמונה‬ ‫המדמה‬ ‫מימדי‬ ‫דו‬ ‫מערך‬ ‫הגדרנו‬
''00.‫הנוכחי‬ ‫בפיקסל‬ ‫הדבקה‬ ‫התבצעה‬ ‫שלא‬ ‫מסמל‬ '.‫הנוכחי‬ ‫בפיקסל‬ ‫הדבקה‬ ‫התבצעה‬ ‫שלא‬ ‫מסמל‬ '
''11.‫הדבקה‬ ‫שבוצעה‬ ‫מסמל‬ '.‫הדבקה‬ ‫שבוצעה‬ ‫מסמל‬ '
:‫לעיל‬ ‫הדוגמא‬ ‫עבור‬:‫לעיל‬ ‫הדוגמא‬ ‫עבור‬
:‫נוספות‬ ‫דוגמאות‬:‫נוספות‬ ‫דוגמאות‬37
BONUS:BONUS: date_stamper contdate_stamper cont..
38
BONUS:BONUS: date_stamper contdate_stamper cont..
:‫האמיתית‬ ‫ובתמונה‬:‫האמיתית‬ ‫ובתמונה‬
39
Accessories modulesAccessories modules
Int to floatInt to float
JustifyJustify
multipliermultiplier
40
Int_to_fpInt_to_fp
:‫תיאור‬
‫מייצוג‬ ‫מספר‬ ‫ממיר‬ ‫המודל‬int‫לייצוג‬fp:‫ההגדרה‬ ‫לפי‬fp={ma_ea}: ma
[15:0], ea [7:0[‫המודל‬ ‫של‬ ‫ובשימוש‬justify.‫בכיתה‬ ‫שניתן‬
Input:
‫בייצוג‬ ‫המספר‬int
Output:
‫בייצוג‬ ‫המספר‬fp [23:0[‫של‬ ‫מצב‬ ‫על‬ ‫המצביע‬ ‫ביט‬ ,over_flow‫נוסף‬ ‫וביט‬ ,
‫של‬ ‫מצב‬ ‫על‬ ‫שמצביע‬under_flow
:‫הערות‬
‫במודל‬ ‫שימוש‬ ‫עושה‬ ‫המודל‬justify.
.‫בכלל‬ ‫שעון‬ ‫ללא‬ ‫עובד‬ ‫המודל‬
‫שהוא‬ ‫כמו‬ ‫ההתחלתי‬ ‫בשלב‬ ‫מוצב‬ ‫המספר‬
‫קבוע‬ ‫ערך‬ ‫מקבל‬ '‫והאקס‬ ,‫במטיסה‬00001111
41
JustifyJustify
:‫תיאור‬
‫הלוגיקה‬ ‫לפי‬ ‫אותם‬ ‫ומיישר‬ '‫ואקס‬ ‫מנטיסה‬ ‫מקבל‬ ‫המודל‬
.‫המצורף‬ ‫בתרשים‬
Input: ea [7:0]
,ma [15:0] , last_is_1
Output:
‫בייצוג‬ ‫המספר‬fp
:‫הערות‬
.‫בכלל‬ ‫שעון‬ ‫ללא‬ ‫עובד‬ ‫המודל‬
‫הסיבית‬ ‫את‬ ‫לו‬ ‫והוספנו‬ ‫המקורי‬ ‫המודל‬ ‫את‬ ‫שינינו‬last_is_1
-‫ל‬ ‫שווה‬ ‫המקורית‬ '‫המנ‬ ‫של‬ ‫האחרונה‬ ‫הסיבית‬ ‫אם‬ ‫שמתריעה‬1
(‫תרשים‬ ‫)ראה‬ ‫אותה‬ ‫נחתוך‬ ‫שלא‬ ‫מנת‬ ‫על‬
(ma[i]^ma[i-1])
‫זה‬ ‫אז‬
0‫או‬1 -
‫?אין‬
i=16
‫?יש‬
ma[0] = 1
ma[16:1] + 16'h1ma[16:1]
{ea[7],ea} + 9'd1
last_is_1
{ma,1'b1} << (15-found-1)ma << (15-found)
{ea[7],ea} - 9'd15 + found
‫?לא‬ ‫?כן‬
‫?כן‬
‫?כן‬
‫?לא‬
‫?לא‬
ma [16:0]
ea_justified [7:0]
over_flow
under_flow
ea [7:0]
ma_justified [16:0]
last_is_1
'‫במנט‬ ‫הראשון‬ ‫המקום‬ ‫את‬ ‫נחפש‬
‫בריצה‬ ‫שונות‬ ‫סיביות‬ ‫שתי‬ ‫יש‬ ‫שבו‬
‫ה‬ ‫מהסיבית‬16‫ומטה‬
‫המקורית‬ '‫במנט‬,
‫ה‬bit‫האחרון‬
=1?
42
MultiplyMultiply
:‫תיאור‬
‫של‬ ‫הכפלה‬ ‫מבצע‬ ‫המודל‬2‫בייצוג‬ ‫מספרים‬fp'‫אקס‬ ‫סכימת‬ ,‫מנטיסות‬ ‫)הכפלת‬
‫ה‬ ‫בעזרת‬ ‫ותיקון‬justify.(
Input:
‫בייצוג‬ ‫מספרים‬ ‫שני‬fp[23:0[
Output:
‫בייצוג‬ ‫המכפלה‬fp [23:0[‫של‬ ‫מצב‬ ‫על‬ ‫המצביע‬ ‫ביט‬ ,over_flow‫נוסף‬ ‫וביט‬ ,
‫של‬ ‫מצב‬ ‫על‬ ‫שמצביע‬under_flow
:‫הערות‬
.‫בכלל‬ ‫שעון‬ ‫ללא‬ ‫עובד‬ ‫המודל‬
a_fp [23:0] o_fp [23:0]
over_flow
under_flow
b_fp [23:0]
‫נכנסים‬2‫מספרים‬fp
'‫ואקס‬ ‫למנטיסה‬ ‫המספרים‬ ‫את‬ ‫נפצל‬
:‫ריפוד‬ ‫נבצע‬
- ‫האחרון‬ ‫האיבר‬ ‫בעזרת‬ ‫נרפד‬ ‫המטיסה‬ ‫את‬16‫פעמים‬
‫אחת‬ ‫פעם‬ – ‫האחרון‬ ‫האיבר‬ ‫בעזרת‬ ‫נרפד‬ '‫האקס‬ ‫את‬
‫המנטיסות‬ ‫את‬ ‫נכפיל‬
'‫האקס‬ ‫את‬ ‫נסכום‬
‫ב‬ ‫התוצאה‬ ‫את‬ ‫נעביר‬justify‫תוצאה‬ ‫אתה‬ ‫ונקבל‬
:‫דוגמא‬:‫דוגמא‬
43
‫בלוקים‬ ‫ויצירת‬ ‫המידע‬ ‫–קליטת‬ ‫ראשון‬ ‫חלק‬
44
RGBtoYCbCrRGBtoYCbCr--‫מ‬ ‫-ממיר‬‫מ‬ ‫-ממיר‬RGBRGB‫-ל‬‫-ל‬YCbCrYCbCr‫הכפלת‬ ‫ע"י‬‫הכפלת‬ ‫ע"י‬
‫.מטריצות‬‫.מטריצות‬
WrPixelsClientWrPixelsClient--‫ה‬ ‫אל‬ ‫בלוקים‬ ‫של‬ "‫"רצועות‬ ‫-כותב‬‫ה‬ ‫אל‬ ‫בלוקים‬ ‫של‬ "‫"רצועות‬ ‫-כותב‬RAMRAM
‫שורה‬ ‫אחר‬ ‫.שורה‬‫שורה‬ ‫אחר‬ ‫.שורה‬
arb_strictarb_strict--‫למודול‬ ‫מלאה‬ ‫עדיפות‬ ‫נותן‬‫למודול‬ ‫מלאה‬ ‫עדיפות‬ ‫נותן‬
WrPixelsClientWrPixelsClient..
ram_blocksram_blocks--‫הפיקסלים‬ ‫של‬ ‫הבלוקים‬ ‫את‬ ‫מאחסן‬‫הפיקסלים‬ ‫של‬ ‫הבלוקים‬ ‫את‬ ‫מאחסן‬
‫ע"י‬ ‫הנכתבים‬‫ע"י‬ ‫הנכתבים‬WrPixelsClientWrPixelsClient..
DCTclientDCTclient--‫מה‬ ‫הפיקסלים‬ ‫את‬ ‫-קורא‬‫מה‬ ‫הפיקסלים‬ ‫את‬ ‫-קורא‬RAMRAM‫בסדר‬‫בסדר‬
‫הרצוי‬‫הרצוי‬‫ושולח‬‫ושולח‬Y,Cb,CrY,Cb,Cr‫בלוק‬ ‫אחר‬ ‫בלוק‬‫בלוק‬ ‫אחר‬ ‫בלוק‬
‫ה‬ ‫אל‬ ‫-הלאה‬‫ה‬ ‫אל‬ ‫-הלאה‬DCTDCT..
date_stamperdate_stamper--‫בונוס‬‫בונוס‬‫לתמונה‬ ‫תאריך‬ ‫מדביק‬ ..‫לתמונה‬ ‫תאריך‬ ‫מדביק‬ ..
45
46
RGBtoYCbCrRGBtoYCbCr
 Inputs:Inputs: Red, Green, BlueRed, Green, Blue –– 24 bit fp.24 bit fp.
startstart –– start convert.start convert.
 Outputs:Outputs: Y, Cb, CrY, Cb, Cr –– 24 bit fp.24 bit fp.
47
RGBtoYCbCr contRGBtoYCbCr cont..
YY 0.299 0.587 0.1140.299 0.587 0.114 RR 128128
Cb =Cb = - 0.1687 - 0.3313 0.5 *- 0.1687 - 0.3313 0.5 * G -G - 00
CrCr 0.5 - 0.4187 - 0.08130.5 - 0.4187 - 0.0813 BB 00
logiclogic
mux
0.2990.299 0.5870.587 0.1140.114
--
0.16870.1687
--
0.33130.3313
0.50.5
0.50.5
--
0.41870.4187
--
0.08130.0813
mul add reg mux
R
G
B
j
j
i
i
Y
Cb
Cr
-128
48
RGBtoYCbCr contRGBtoYCbCr cont..
start
calculations
dout_valid, when Y,Cb and Cr
calculated and ready.
49
RGBtoYCbCr contRGBtoYCbCr cont..
‫פעולה‬ ‫ועקרון‬ ‫תכנון‬ ‫שיקולי‬‫פעולה‬ ‫ועקרון‬ ‫תכנון‬ ‫שיקולי‬
‫ב‬ ‫שימוש‬‫ב‬ ‫שימוש‬multipliermultiplier.‫יחיד‬.‫יחיד‬
‫של‬ ‫מימדי‬ ‫דו‬ ‫כמערך‬ ‫מוחזקת‬ ‫הקבועים‬ ‫מטריצת‬‫של‬ ‫מימדי‬ ‫דו‬ ‫כמערך‬ ‫מוחזקת‬ ‫הקבועים‬ ‫מטריצת‬wireswires-‫ל‬ ‫)מקוצרים‬ .-‫ל‬ ‫)מקוצרים‬ .00-‫ו‬-‫ו‬11.(‫בהתאמה‬.(‫בהתאמה‬
‫רגיסטרים‬ ‫שני‬‫רגיסטרים‬ ‫שני‬i,ji,j.‫המטריצה‬ ‫הכפלת‬ ‫על‬ ‫רצים‬.‫המטריצה‬ ‫הכפלת‬ ‫על‬ ‫רצים‬
‫ל‬ ‫בהתאם‬ ‫המידע‬ ‫את‬ ‫מנתבים‬ ‫ובמוצא‬ ‫בכניסה‬ ‫המוקסים‬‫ל‬ ‫בהתאם‬ ‫המידע‬ ‫את‬ ‫מנתבים‬ ‫ובמוצא‬ ‫בכניסה‬ ‫המוקסים‬i,ji,j..
‫השורה‬ ‫ובסוף‬ ‫העמודה‬ ‫בוקטור‬ ‫השורה‬ ‫כפל‬ ‫של‬ ‫הנצבר‬ ‫הערך‬ ‫את‬ ‫שומר‬ ‫זמני‬ ‫רגיסטר‬‫השורה‬ ‫ובסוף‬ ‫העמודה‬ ‫בוקטור‬ ‫השורה‬ ‫כפל‬ ‫של‬ ‫הנצבר‬ ‫הערך‬ ‫את‬ ‫שומר‬ ‫זמני‬ ‫רגיסטר‬
.‫המתאים‬ ‫למוצא‬ ‫מועבר‬.‫המתאים‬ ‫למוצא‬ ‫מועבר‬
‫שנבחנו‬ ‫אלטרנטיבות‬‫שנבחנו‬ ‫אלטרנטיבות‬
-‫ב‬ ‫המטריצה‬ ‫ערכי‬ ‫שמירת‬-‫ב‬ ‫המטריצה‬ ‫ערכי‬ ‫שמירת‬ROMROM.‫למודול‬ ‫מחוץ‬.‫למודול‬ ‫מחוץ‬
‫הוספת‬ ‫מצדיקה‬ ‫שלא‬ ‫קטנה‬ ‫מספרים‬ ‫כמות‬ :‫חסרונות‬‫הוספת‬ ‫מצדיקה‬ ‫שלא‬ ‫קטנה‬ ‫מספרים‬ ‫כמות‬ :‫חסרונות‬ROMROM..
‫הקל‬ ‫וזה‬ ,‫במטריצה‬ ‫מדובר‬ ‫כי‬ ‫יותר‬ ‫טבעית‬ ‫הייתה‬ ‫פנימי‬ ‫מימדי‬ ‫דו‬ ‫מערך‬ ‫בתוך‬ ‫הערכים‬ ‫שמירת‬‫הקל‬ ‫וזה‬ ,‫במטריצה‬ ‫מדובר‬ ‫כי‬ ‫יותר‬ ‫טבעית‬ ‫הייתה‬ ‫פנימי‬ ‫מימדי‬ ‫דו‬ ‫מערך‬ ‫בתוך‬ ‫הערכים‬ ‫שמירת‬
.‫הכפל‬ ‫פעולת‬ ‫ביצוע‬ ‫על‬.‫הכפל‬ ‫פעולת‬ ‫ביצוע‬ ‫על‬
50
WrPixelsClientWrPixelsClient
 Inputs:Inputs: Y, Cb, CrY, Cb, Cr –– 24 bit fp.24 bit fp.
ackack –– acknowledge from arb_strict.acknowledge from arb_strict.
 Outputs:Outputs: datadata –– 72 bit of {Y,Cb,Cr} together.72 bit of {Y,Cb,Cr} together.
strip_readystrip_ready –– finished writing a full strip into RAM.finished writing a full strip into RAM.
start_addstart_add –– starting address of the strip in RAM.starting address of the strip in RAM.
reqreq –– request from arb_strict.request from arb_strict. 51
WrPixelsClient contWrPixelsClient cont..
Y
Cb
Cr
ack
to arb/ram_blocks
{Y,Cb,Cr} 72 bit
spen_in
din_valid
req
add cnt cmp
mux
to DCTclient
blocks_num
1
strip_ready (1 bit pulse),
start_add (14 bit)
Strip ready
0
52
WrPixelsClient cont.WrPixelsClient cont.
valid from RGBtoYCbCr
pixels
strip ready to DCTclient,
when a full strip written
to ram_blocks
start_add to DCTclient,
when a full strip written
to ram_blocks{Y,Cb,Cr} data to ram_Blocks
always receives ack for req
53
WrPixelsClient contWrPixelsClient cont
‫פעולה‬ ‫ועקרון‬ ‫תכנון‬ ‫שיקולי‬‫פעולה‬ ‫ועקרון‬ ‫תכנון‬ ‫שיקולי‬
-‫ה‬ ‫אל‬ ‫הכתיבה‬-‫ה‬ ‫אל‬ ‫הכתיבה‬ram_blocksram_blocks‫שיש‬ ‫פעם‬ ‫בכל‬ ‫מתבצעת‬‫שיש‬ ‫פעם‬ ‫בכל‬ ‫מתבצעת‬validvalid-‫מ‬-‫מ‬RGBtoYCbCrRGBtoYCbCr..
– ‫ב‬ ‫עולה‬ ‫לכתיבה‬ ‫הכתובת‬– ‫ב‬ ‫עולה‬ ‫לכתיבה‬ ‫הכתובת‬11."‫שורה‬ ‫אחר‬ ‫"שורה‬ ‫מתבצעת‬ ‫הכתיבה‬ ‫וכך‬ ,."‫שורה‬ ‫אחר‬ ‫"שורה‬ ‫מתבצעת‬ ‫הכתיבה‬ ‫וכך‬ ,
."‫שלמה‬ ‫"רצועה‬ ‫התמלאה‬ ‫מתי‬ ‫לדעת‬ ‫ניתן‬ ‫וכך‬ ‫התמונה‬ ‫אורך‬ ‫את‬ ‫בכניסה‬ ‫מקבל‬ ‫המודול‬."‫שלמה‬ ‫"רצועה‬ ‫התמלאה‬ ‫מתי‬ ‫לדעת‬ ‫ניתן‬ ‫וכך‬ ‫התמונה‬ ‫אורך‬ ‫את‬ ‫בכניסה‬ ‫מקבל‬ ‫המודול‬
‫הפולס‬ ‫נשלח‬ ‫שהתמלאה‬ "‫"רצועה‬ ‫כל‬ ‫עבור‬‫הפולס‬ ‫נשלח‬ ‫שהתמלאה‬ "‫"רצועה‬ ‫כל‬ ‫עבור‬""strip readystrip ready””‫התחילה‬ ‫ממנה‬ ‫והכתובת‬‫התחילה‬ ‫ממנה‬ ‫והכתובת‬
-‫ה‬ ‫אל‬ ,‫להתמלא‬ "‫ה"רצועה‬-‫ה‬ ‫אל‬ ,‫להתמלא‬ "‫ה"רצועה‬DCTclientDCTclient.‫לקרוא‬ ‫להתחיל‬ ‫ומהיכן‬ ‫מתי‬ ‫שידע‬ ‫מנת‬ ‫על‬.‫לקרוא‬ ‫להתחיל‬ ‫ומהיכן‬ ‫מתי‬ ‫שידע‬ ‫מנת‬ ‫על‬
-‫מה‬ ‫עדיפות‬ ‫יקבל‬ ‫תמיד‬ ‫המודול‬-‫מה‬ ‫עדיפות‬ ‫יקבל‬ ‫תמיד‬ ‫המודול‬arb_strictarb_strict.‫תקינה‬ ‫מידע‬ ‫זרימת‬ ‫על‬ ‫לשמור‬ ‫מנת‬ ‫על‬.‫תקינה‬ ‫מידע‬ ‫זרימת‬ ‫על‬ ‫לשמור‬ ‫מנת‬ ‫על‬
‫שנבחנו‬ ‫אלטרנטיבות‬‫שנבחנו‬ ‫אלטרנטיבות‬
‫ספירת‬‫ספירת‬88hdhd."‫"רצועה‬ ‫מילוי‬ ‫לזהות‬ ‫מנת‬ ‫על‬ ,‫התמונה‬ ‫רוחב‬ ‫את‬ ‫לקבל‬ ‫,במקום‬."‫"רצועה‬ ‫מילוי‬ ‫לזהות‬ ‫מנת‬ ‫על‬ ,‫התמונה‬ ‫רוחב‬ ‫את‬ ‫לקבל‬ ‫,במקום‬
:‫החיסרונות‬:‫החיסרונות‬
-‫ה‬ ‫עקב‬ ‫סינכרון‬ ‫חוסר‬-‫ה‬ ‫עקב‬ ‫סינכרון‬ ‫חוסר‬pipelinepipeline-‫ה‬ ‫בין‬ ‫שנוצר‬-‫ה‬ ‫בין‬ ‫שנוצר‬imagerimager.‫המודול‬ ‫לבין‬.‫המודול‬ ‫לבין‬
-‫ה‬-‫ה‬hdhd.‫הלוגיקה‬ ‫את‬ ‫מסרבל‬ ‫וזה‬ ‫שורה‬ ‫בסוף‬ ‫ולא‬ ‫שורה‬ ‫בתחילת‬ ‫עולה‬.‫הלוגיקה‬ ‫את‬ ‫מסרבל‬ ‫וזה‬ ‫שורה‬ ‫בסוף‬ ‫ולא‬ ‫שורה‬ ‫בתחילת‬ ‫עולה‬
-‫ה‬ ‫בתוך‬ "‫בלוק‬ ‫אחר‬ ‫"בלוק‬ ‫של‬ ‫בסדר‬ ‫הפיקסלים‬ ‫שמירת‬-‫ה‬ ‫בתוך‬ "‫בלוק‬ ‫אחר‬ ‫"בלוק‬ ‫של‬ ‫בסדר‬ ‫הפיקסלים‬ ‫שמירת‬RAMRAM."‫שורה‬ ‫אחר‬ ‫"שורה‬ ‫ולא‬."‫שורה‬ ‫אחר‬ ‫"שורה‬ ‫ולא‬
‫שהמודול‬ ‫החלטנו‬ ‫דבר‬ ‫של‬ ‫ובסופו‬ ,‫עקרוני‬ ‫עניין‬ ‫אינו‬ ‫זהו‬ ‫למעשה‬‫שהמודול‬ ‫החלטנו‬ ‫דבר‬ ‫של‬ ‫ובסופו‬ ,‫עקרוני‬ ‫עניין‬ ‫אינו‬ ‫זהו‬ ‫למעשה‬DCTclientDCTclient‫שיקרא‬ ‫זה‬ ‫יהיה‬‫שיקרא‬ ‫זה‬ ‫יהיה‬
."‫בלוק‬ ‫אחר‬ ‫"בלוק‬."‫בלוק‬ ‫אחר‬ ‫"בלוק‬
54
arb_strictarb_strict
 Inputs:Inputs: wr_data_1, wr_data_2wr_data_1, wr_data_2 –– 72 bit of {Y,Cb,Cr}.72 bit of {Y,Cb,Cr}.
add_1, add_2add_1, add_2 –– wanted address of RAM.wanted address of RAM.
req_1, req_2req_1, req_2 –– clients requests.clients requests.
rnw_1, rnw_2rnw_1, rnw_2 –– ““read not writeread not write”” requests of the clients.requests of the clients.
 Outputs:Outputs: ack_1, ack_2ack_1, ack_2 –– acknowledges to clients. 1 has higher priority.acknowledges to clients. 1 has higher priority.
add, wr_data, rnwadd, wr_data, rnw –– preferred clientpreferred client’’s signals directed to RAM.s signals directed to RAM.55
arb_strict contarb_strict cont..
logiclogic
mux
req1 (gets full priority)
req2
ack1
ack2
Address, Data
to ram_blocks
Address1, Data1
Address2
Client1 = WrPixelsClient
Client2 = DCTclient
56
arb_strict contarb_strict cont..
client_2 requests constantly,
But he gets ack only if client_1
doesn’t send a request.
whenever client_1 sends a request,
he’s acknowledged immediately.
the acknowledged
client’s wires connected
to ram_blocks.
client1 = WrPixelsClient
client2 = DCTclient 57
arb_strict contarb_strict cont..
‫פעולה‬ ‫ועקרון‬ ‫תכנון‬ ‫שיקולי‬‫פעולה‬ ‫ועקרון‬ ‫תכנון‬ ‫שיקולי‬
-‫ה‬ ‫אל‬ ‫דרכו‬ ‫המחוברים‬ ‫המודולים‬ ‫בין‬ ‫עדיפות‬ ‫יחס‬ ‫מגדיר‬-‫ה‬ ‫אל‬ ‫דרכו‬ ‫המחוברים‬ ‫המודולים‬ ‫בין‬ ‫עדיפות‬ ‫יחס‬ ‫מגדיר‬ram_blocksram_blocks..
-‫ל‬ ‫פניה‬ ‫מבקש‬ ‫ביותר‬ ‫המועדף‬ ‫שהמודול‬ ‫פעם‬ ‫בכל‬-‫ל‬ ‫פניה‬ ‫מבקש‬ ‫ביותר‬ ‫המועדף‬ ‫שהמודול‬ ‫פעם‬ ‫בכל‬ram_blocksram_blocks ((reqreq‫אישור‬ ‫מקבל‬ ‫הוא‬ (‫אישור‬ ‫מקבל‬ ‫הוא‬ (
‫מיידי‬‫מיידי‬))ackack((-‫ה‬ ‫אל‬ ‫פונה‬ ‫אחר‬ ‫מודול‬ ‫זמן‬ ‫באותו‬ ‫אם‬ ‫תלות‬ ‫ללא‬ ,-‫ה‬ ‫אל‬ ‫פונה‬ ‫אחר‬ ‫מודול‬ ‫זמן‬ ‫באותו‬ ‫אם‬ ‫תלות‬ ‫ללא‬ ,ram_blocksram_blocks..
-‫ה‬ ‫עם‬ ‫מתקשר‬ ‫המועדף‬ ‫המודול‬ ‫אם‬ ,‫כן‬ ‫כמו‬-‫ה‬ ‫עם‬ ‫מתקשר‬ ‫המועדף‬ ‫המודול‬ ‫אם‬ ,‫כן‬ ‫כמו‬ram_blocksram_blocks‫אישור‬ ‫יקבל‬ ‫לא‬ ‫אחר‬ ‫מודול‬ ‫שום‬‫אישור‬ ‫יקבל‬ ‫לא‬ ‫אחר‬ ‫מודול‬ ‫שום‬
.‫ההתקשרות‬ ‫את‬ ‫יסיים‬ ‫המועדף‬ ‫שהמודול‬ ‫עד‬ ‫פנייה‬ ‫יבקש‬ ‫אם‬.‫ההתקשרות‬ ‫את‬ ‫יסיים‬ ‫המועדף‬ ‫שהמודול‬ ‫עד‬ ‫פנייה‬ ‫יבקש‬ ‫אם‬))strict lockstrict lock((..
‫בין‬ ‫נקבע‬ ‫העדיפות‬ ‫יחס‬ ‫אצלנו‬‫בין‬ ‫נקבע‬ ‫העדיפות‬ ‫יחס‬ ‫אצלנו‬22– ‫בלבד‬ ‫מודולים‬– ‫בלבד‬ ‫מודולים‬11--WrPixelsClient, 2-DCTclientWrPixelsClient, 2-DCTclient..
‫שנבחנו‬ ‫אלטרנטיבות‬‫שנבחנו‬ ‫אלטרנטיבות‬
‫למימוש‬ ‫קונפיגורציות‬ ‫כמה‬ ‫יש‬ ‫למעשה‬‫למימוש‬ ‫קונפיגורציות‬ ‫כמה‬ ‫יש‬ ‫למעשה‬arbarb‫שקונפיגורציית‬ ‫כמובן‬ ‫אך‬ ,‫בקורס‬ ‫שנלמדו‬ ‫כפי‬‫שקונפיגורציית‬ ‫כמובן‬ ‫אך‬ ,‫בקורס‬ ‫שנלמדו‬ ‫כפי‬
-‫ה‬-‫ה‬strict lockstrict lock-‫מ‬ ‫למנוע‬ ‫שאין‬ ‫כיוון‬ ‫עבורינו‬ ‫ביותר‬ ‫המתאימה‬ ‫היא‬-‫מ‬ ‫למנוע‬ ‫שאין‬ ‫כיוון‬ ‫עבורינו‬ ‫ביותר‬ ‫המתאימה‬ ‫היא‬WrPixelsClientWrPixelsClient‫את‬‫את‬
-‫ה‬ ‫עם‬ ‫ההתקשרות‬-‫ה‬ ‫עם‬ ‫ההתקשרות‬ram_blocksram_blocks.(‫לעיל‬ ‫)ראה‬ ‫מקרה‬ ‫בשום‬.(‫לעיל‬ ‫)ראה‬ ‫מקרה‬ ‫בשום‬
58
ram_blocksram_blocks
 Inputs:Inputs: addadd –– 14 bit address.14 bit address.
wr_datawr_data –– 72 bit of {Y,Cb,Cr}to store.72 bit of {Y,Cb,Cr}to store.
 Outputs:Outputs: rd_datard_data –– 72 bit of {Y,Cb,Cr}to read.72 bit of {Y,Cb,Cr}to read.
59
ram_blocks contram_blocks cont..
“block1” “block2”
ram_blocks
R 24bit G 24bit B 24bit
R 24bit B 24bit
R 24bit B 24bit
R 24bit B 24bit
R 24bit B 24bit
R 24bit B 24bit
R 24bit B 24bit
R 24bit B 24bit
R 24bit B 24bit
R 24bit B 24bit
R 24bit B 24bit
R 24bit B 24bit
R 24bit B 24bit
R 24bit B 24bit
R 24bit B 24bit
R 24bit B 24bit
R 24bit B 24bit
R 24bit B 24bit
R 24bit B 24bit
R 24bit B 24bit
R 24bit B 24bit
R 24bit B 24bit
R 24bit B 24bit
R 24bit B 24bit
line1 of block1
line1 of block2
line2 of block1
G 24bit
G 24bit
G 24bit
G 24bit
G 24bit
G 24bit
G 24bit
G 24bit
G 24bit
G 24bit
G 24bit
G 24bit
G 24bit
G 24bit
G 24bit
G 24bit
G 24bit
G 24bit
G 24bit
G 24bit
G 24bit
G 24bit
G 24bit
IMAGE
"‫"רגיל‬ ‫בסדר‬ ‫מילוי‬
"‫שורה‬ ‫אחר‬ ‫"שורה‬
60
ram_blocks contram_blocks cont..
the pixels being filled:
srrip_ready, DCTclient
can start reading the data.
rnw swiches to read because
DCTclient began reading.
DCTclient begin
reading the data.
WrPixelsClient continues
write occasionaly, and the
data not being read during
this cycle.
61
ram_blocks contram_blocks cont..
‫פעולה‬ ‫ועקרון‬ ‫תכנון‬ ‫שיקולי‬‫פעולה‬ ‫ועקרון‬ ‫תכנון‬ ‫שיקולי‬
‫לצורך‬ "‫בלוק‬ ‫אחר‬ ‫"בלוק‬ ‫של‬ ‫בסדר‬ ‫ממנו‬ ‫שישלפו‬ ‫מנת‬ ‫על‬ ‫הפיקסלים‬ ‫את‬ ‫זמנית‬ ‫מאחסן‬‫לצורך‬ "‫בלוק‬ ‫אחר‬ ‫"בלוק‬ ‫של‬ ‫בסדר‬ ‫ממנו‬ ‫שישלפו‬ ‫מנת‬ ‫על‬ ‫הפיקסלים‬ ‫את‬ ‫זמנית‬ ‫מאחסן‬
-‫ה‬ ‫ביצוע‬-‫ה‬ ‫ביצוע‬DCTDCT..
‫הינו‬ ‫תא‬ ‫כל‬ ‫רוחב‬‫הינו‬ ‫תא‬ ‫כל‬ ‫רוחב‬2424‫כפול‬ ‫ביט‬‫כפול‬ ‫ביט‬33‫ובסה"כ‬ ,‫פיקסלים‬‫ובסה"כ‬ ,‫פיקסלים‬7272.‫ביט‬.‫ביט‬
‫עד‬ ‫זמנית‬ ‫בו‬ ‫לאחסן‬ ‫יוכל‬ ‫שהזיכרון‬ ‫כך‬ ‫תוכנן‬ ‫הכתובות‬ ‫מרחב‬‫עד‬ ‫זמנית‬ ‫בו‬ ‫לאחסן‬ ‫יוכל‬ ‫שהזיכרון‬ ‫כך‬ ‫תוכנן‬ ‫הכתובות‬ ‫מרחב‬22.‫מלאות‬ "‫"רצועות‬.‫מלאות‬ "‫"רצועות‬
‫הינו‬ ‫המירבי‬ ‫התמונה‬ ‫שרוחב‬ ‫ובהנחה‬‫הינו‬ ‫המירבי‬ ‫התמונה‬ ‫שרוחב‬ ‫ובהנחה‬10241024:‫הינו‬ ‫החישוב‬ ,‫פיקסלים‬:‫הינו‬ ‫החישוב‬ ,‫פיקסלים‬
1024 * 8 * 2 = 16K1024 * 8 * 2 = 16K =>=> 14 bit14 bit
‫שנבחנו‬ ‫אלטרנטיבות‬‫שנבחנו‬ ‫אלטרנטיבות‬
.‫יותר‬ ‫בזבזני‬ ‫אך‬ ‫פשוט‬ ‫יותר‬ ‫זה‬ ,‫רצועה‬ ‫לכל‬ ‫אחד‬ ,‫זיכרון‬ ‫אזורי‬ ‫שני‬ ‫בין‬ ‫מיתוג‬.‫יותר‬ ‫בזבזני‬ ‫אך‬ ‫פשוט‬ ‫יותר‬ ‫זה‬ ,‫רצועה‬ ‫לכל‬ ‫אחד‬ ,‫זיכרון‬ ‫אזורי‬ ‫שני‬ ‫בין‬ ‫מיתוג‬
‫פיקסלים‬
‫בשורה‬
‫שורות‬
‫ברצועה‬
‫רצועות‬
62
DCTclientDCTclient
 Inputs:Inputs: startstart –– strip ready in RAM.strip ready in RAM.
start_addstart_add –– starting address of the strip in RAM.starting address of the strip in RAM.
rd_datard_data –– 72 bit of {Y,Cb,Cr} from RAM.72 bit of {Y,Cb,Cr} from RAM.
ackack –– acknowledge from arb_strict.acknowledge from arb_strict.
 Outputs:Outputs: Ydata, Cbdata, CrdataYdata, Cbdata, Crdata –– 24 bit fp.24 bit fp.
reqreq –– request from arb_strict.request from arb_strict. 63
DCTclient contDCTclient cont..
ram_blocks
line1 of block1
line1 of block2
line2 of block1
Y
Cb
Cr
mux
{Y,Cb,Cr} 72 bit
ack
computed
address
computed
address
to ram_blocks
(through arb_strict)
R 24bit G 24bit B 24bit
R 24bit G 24bit B 24bit
R 24bit G 24bit B 24bit
R 24bit G 24bit B 24bit
R 24bit G 24bit B 24bit
R 24bit G 24bit B 24bit
R 24bit G 24bit B 24bit
R 24bit G 24bit B 24bit
R 24bit G 24bit B 24bit
R 24bit G 24bit B 24bit
R 24bit G 24bit B 24bit
R 24bit G 24bit B 24bit
R 24bit G 24bit B 24bit
R 24bit G 24bit B 24bit
R 24bit G 24bit B 24bit
R 24bit G 24bit B 24bit
R 24bit G 24bit B 24bit
R 24bit G 24bit B 24bit
R 24bit G 24bit B 24bit
R 24bit G 24bit B 24bit
R 24bit G 24bit B 24bit
R 24bit G 24bit B 24bit
R 24bit G 24bit B 24bit
R 24bit G 24bit B 24bit
R 24bit G 24bit B 24bit
R 24bit G 24bit B 24bit
R 24bit G 24bit B 24bit
R 24bit G 24bit B 24bit
R 24bit G 24bit B 24bit
R 24bit G 24bit B 24bit
R 24bit G 24bit B 24bit
R 24bit G 24bit B 24bit
R 24bit G 24bit B 24bit
R 24bit G 24bit B 24bit
R 24bit G 24bit B 24bit
R 24bit G 24bit B 24bit
R 24bit G 24bit B 24bit
R 24bit G 24bit B 24bit
R 24bit G 24bit B 24bit
R 24bit G 24bit B 24bit
R 24bit G 24bit B 24bit
R 24bit G 24bit B 24bit
R 24bit G 24bit B 24bit
R 24bit G 24bit B 24bit
R 24bit G 24bit B 24bit
R 24bit G 24bit B 24bit
R 24bit G 24bit B 24bit
R 24bit G 24bit B 24bit
G 24bit
“block1”
Y
Cb
Cr
“block2” “block3”
"‫בלוק‬ ‫אחר‬ ‫"בלוק‬ ‫של‬ ‫בסדר‬ ‫ושליחה‬ ‫שליפה‬
64
DCTclient contDCTclient cont..
start received from
WrPixelsClient when
a strip is ready.
the read address is set
to the start_add received
from WrPixelsClient, and
advanced on.
req being set,
and ack received.
d_out_valid, with 8
clock spaces required
by the DCT modules.
65
DCTclient contDCTclient cont..
‫פעולה‬ ‫ועקרון‬ ‫תכנון‬ ‫שיקולי‬‫פעולה‬ ‫ועקרון‬ ‫תכנון‬ ‫שיקולי‬
-‫ה‬-‫ה‬DCTclientDCTclient-‫מה‬ ‫הפיקסלים‬ ‫את‬ ‫שולף‬-‫מה‬ ‫הפיקסלים‬ ‫את‬ ‫שולף‬ram_blocksram_blocks‫מעביר‬ ‫שהוא‬ ‫כך‬ ‫מוגדר‬ ‫סדר‬ ‫ע"פ‬‫מעביר‬ ‫שהוא‬ ‫כך‬ ‫מוגדר‬ ‫סדר‬ ‫ע"פ‬
-‫ה‬ ‫אל‬ ‫הלאה‬ ‫אותם‬-‫ה‬ ‫אל‬ ‫הלאה‬ ‫אותם‬DCTDCT."‫בלוק‬ ‫אחר‬ ‫"בלוק‬ ‫של‬ ‫בסדר‬."‫בלוק‬ ‫אחר‬ ‫"בלוק‬ ‫של‬ ‫בסדר‬
‫הפולס‬ ‫את‬ ‫מקבל‬‫הפולס‬ ‫את‬ ‫מקבל‬""strip readystrip ready””"‫ה"רצועה‬ ‫מאוחסנת‬ ‫שבה‬ ‫ההתחלתית‬ ‫הכתובת‬ ‫ואת‬"‫ה"רצועה‬ ‫מאוחסנת‬ ‫שבה‬ ‫ההתחלתית‬ ‫הכתובת‬ ‫ואת‬
‫הנוכחית‬‫הנוכחית‬))start_addstart_add((-‫מה‬ ‫הפיקסלים‬ ‫את‬ ‫לקרוא‬ ‫ומהיכן‬ ‫מתי‬ ‫יודע‬ ‫וכך‬ ,-‫מה‬ ‫הפיקסלים‬ ‫את‬ ‫לקרוא‬ ‫ומהיכן‬ ‫מתי‬ ‫יודע‬ ‫וכך‬ ,ram_blocksram_blocks..
‫פנימיים‬ ‫מונים‬ ‫שני‬ ‫מכיל‬ ‫המודול‬ :‫הכתובת‬ ‫חישוב‬‫פנימיים‬ ‫מונים‬ ‫שני‬ ‫מכיל‬ ‫המודול‬ :‫הכתובת‬ ‫חישוב‬i,ji,j‫והעמודה‬ ‫השורה‬ ‫מספר‬ ‫את‬ ‫המציינים‬‫והעמודה‬ ‫השורה‬ ‫מספר‬ ‫את‬ ‫המציינים‬
‫ומונה‬ ,‫הנוכחי‬ ‫הבלוק‬ ‫בתוך‬ ‫הנוכחי‬ ‫הפיקסל‬ ‫של‬‫ומונה‬ ,‫הנוכחי‬ ‫הבלוק‬ ‫בתוך‬ ‫הנוכחי‬ ‫הפיקסל‬ ‫של‬block_cntblock_cnt‫בתוך‬ ‫הנוכחי‬ ‫הבלוק‬ ‫את‬ ‫המציין‬‫בתוך‬ ‫הנוכחי‬ ‫הבלוק‬ ‫את‬ ‫המציין‬
‫הבלוקים‬ ‫מספר‬ ‫את‬ ‫בכניסה‬ ‫מקבל‬ ‫כן‬ ‫כמו‬ ."‫ה"רצועה‬‫הבלוקים‬ ‫מספר‬ ‫את‬ ‫בכניסה‬ ‫מקבל‬ ‫כן‬ ‫כמו‬ ."‫ה"רצועה‬))blocks_numblocks_num((..
:‫הינו‬ ‫כך‬ ‫אם‬ ‫הפיקסל‬ ‫לשליפת‬ ‫הכתובת‬ ‫חישוב‬:‫הינו‬ ‫כך‬ ‫אם‬ ‫הפיקסל‬ ‫לשליפת‬ ‫הכתובת‬ ‫חישוב‬
add = start_add + (i*blocks_num*8 + block_cnt*8 + jadd = start_add + (i*blocks_num*8 + block_cnt*8 + j))
‫ממתין‬‫ממתין‬88-‫ו‬ ‫לפיקסל‬ ‫פיקסל‬ ‫בין‬ ‫מלאים‬ ‫שעונים‬-‫ו‬ ‫לפיקסל‬ ‫פיקסל‬ ‫בין‬ ‫מלאים‬ ‫שעונים‬450450-‫ה‬ ‫אל‬ ‫בשליחה‬ ‫לבלוק‬ ‫בלוק‬ ‫בין‬ ‫שעונים‬-‫ה‬ ‫אל‬ ‫בשליחה‬ ‫לבלוק‬ ‫בלוק‬ ‫בין‬ ‫שעונים‬
DCTDCT.‫פעולתו‬ ‫לביצוע‬ ‫הנדרש‬ ‫הזמן‬ ‫את‬ ‫לו‬ ‫לתת‬ ‫מנת‬ ‫על‬.‫פעולתו‬ ‫לביצוע‬ ‫הנדרש‬ ‫הזמן‬ ‫את‬ ‫לו‬ ‫לתת‬ ‫מנת‬ ‫על‬
-‫ה‬ "‫"ריקון‬ ‫שקצב‬ ‫לדאוג‬ ‫יש‬ ,‫זאת‬ ‫עם‬ ‫יחד‬-‫ה‬ "‫"ריקון‬ ‫שקצב‬ ‫לדאוג‬ ‫יש‬ ,‫זאת‬ ‫עם‬ ‫יחד‬ram_blocksram_blocks,‫שלו‬ ‫המילוי‬ ‫מקצב‬ ‫יותר‬ ‫מהיר‬ ‫יהיה‬,‫שלו‬ ‫המילוי‬ ‫מקצב‬ ‫יותר‬ ‫מהיר‬ ‫יהיה‬
.‫הפיקסלים‬ ‫של‬ "‫"דריסה‬ ‫למנוע‬ ‫מנת‬ ‫על‬.‫הפיקסלים‬ ‫של‬ "‫"דריסה‬ ‫למנוע‬ ‫מנת‬ ‫על‬
‫שנבחנו‬ ‫אלטרנטיבות‬‫שנבחנו‬ ‫אלטרנטיבות‬
-‫ב‬ ‫שהוסבר‬ ‫כפי‬-‫ב‬ ‫שהוסבר‬ ‫כפי‬WrPixelsClientWrPixelsClient-‫מה‬ ‫רגיל‬ ‫בסדר‬ ‫נעשית‬ ‫היתה‬ ‫השליפה‬ ,-‫מה‬ ‫רגיל‬ ‫בסדר‬ ‫נעשית‬ ‫היתה‬ ‫השליפה‬ ,ram_blocksram_blocks‫אילו‬‫אילו‬
."‫בלוק‬ ‫אחר‬ ‫"בלוק‬ ‫של‬ ‫בסדר‬ ‫מראש‬ ‫הפיקסלים‬ ‫את‬ ‫בו‬ ‫לאחסן‬ ‫מחליטים‬ ‫היינו‬."‫בלוק‬ ‫אחר‬ ‫"בלוק‬ ‫של‬ ‫בסדר‬ ‫מראש‬ ‫הפיקסלים‬ ‫את‬ ‫בו‬ ‫לאחסן‬ ‫מחליטים‬ ‫היינו‬
66
‫המידע‬ ‫–עיבוד‬ ‫שני‬ ‫חלק‬‫המידע‬ ‫–עיבוד‬ ‫שני‬ ‫חלק‬
67
DCT AlgorithmDCT Algorithm
68
DCT AlgorithmDCT Algorithm
CC==
DCT(Block) = C * Block * CDCT(Block) = C * Block * C’’
69
DCTDCT
:‫תיאור‬
:‫הבאה‬ ‫בצורה‬ ‫מקדמים‬ ‫במטריצת‬ ‫המטריצה‬ ‫של‬ ‫הכפלה‬ ‫מבצע‬ ‫המודל‬
."‫"זיגזג‬ ‫בסדר‬ ‫התוצאה‬ ‫את‬ ‫ופולט‬
Input:
data_in:‫בייצוג‬ ‫מספר‬fp, ‫של‬ ‫מבלוק‬ ‫כחלק‬64‫המיצגים‬ ‫מספרים‬
‫מטריצה‬8X8‫לימין‬ ‫שמאל‬ ‫שורה‬ ‫אחרי‬ ‫.שורה‬
spen_in:) ‫הבלוק‬ ‫כניסת‬ ‫זמן‬ ‫כל‬ ‫דלוק‬64*8+1‫מחזורים‬ ).
d_in_valid:‫בכניסת‬ ‫דלוק‬fp‫אחד‬ ‫)מחזור‬ ‫.)אחד‬
rst, mclk
Output:
data_out:‫בייצוג‬ ‫מספר‬fp, ‫כחלק‬ ,‫המטריצות‬ ‫מכפלת‬ ‫תוצאת‬ ‫שהוא‬
‫של‬ ‫מבלוק‬64‫מטריצה‬ ‫המיצגים‬ ‫מספרים‬8X8‫"זיגזג‬ ‫."בסידור‬
spen_out:) ‫הבלוק‬ ‫יציאת‬ ‫זמן‬ ‫כל‬ ‫דלוק‬64*8+1‫מחזורים‬ ).
d_out_valid:‫ביציאת‬ ‫דלוק‬fp‫אחד‬ ‫)מחזור‬ ‫.)אחד‬
:‫הערות‬
‫תשמש‬ ‫קבועים‬ ‫מטריצת‬ ‫אותה‬ ‫ולכן‬ ‫אורטוגונלית‬ ‫היא‬ ‫המטריצה‬
.‫ומימין‬ ‫משמאל‬ ‫להכפלה‬
‫נמתין‬ ‫האחרון‬ ‫האיבר‬ ‫כניסת‬ ‫מרגע‬17.‫הראשון‬ ‫האיבר‬ ‫ליציאת‬ ‫מחזורים‬
1
C In C−
× ×
1 T
C C−
=
T
input
70
+ 1 1 0 1 0 1 1 0…
valid
x
ROM
DCT – block diagramDCT – block diagram
data_in[23:0]
data_out[23:0]
24
24
1
‫שנרשום‬ ‫ראשונה‬ ‫פעם‬ ‫וזו‬ ‫במידה‬
-‫ה‬ ‫במקום‬i‫הנוכחי‬ ‫בבלוק‬ ‫בטיפול‬
‫ה‬ ‫את‬ ‫נרשום‬data_in‫נסכום‬ ‫אחרת‬
‫משמאל‬ ‫הכפלה‬ ‫של‬ ‫מצב‬ ‫בין‬ ‫יברור‬
‫)שאז‬ ‫מימין‬ ‫להכפלה‬ (‫נכנסת‬ ‫)מטריצה‬
‫הקודמת‬ ‫ההכפלה‬ ‫תוצאת‬ ‫היא‬ ‫המטריצה‬
‫ב‬ ‫ששמורה‬ram(
‫וולידציה‬ ‫מערך‬
ram
64 fp
71
:‫הנכנס‬ ‫הבלוק‬ ‫תחילת‬:‫הנכנס‬ ‫הבלוק‬ ‫תחילת‬
‫ה‬spen_in‫עולה‬
spen_out‫וה‬d_out_valid‫החוצה‬ ‫דבר‬ ‫שום‬ ‫מוציאים‬ ‫לא‬ ‫אנחנו‬ ‫כולו‬ ‫הבלוק‬ ‫של‬ ‫האינפוטים‬ ‫כל‬ ‫את‬ ‫נקבל‬ ‫שלא‬ ‫)עד‬ ‫.)למטה‬
‫איתחול‬ ‫לצורך‬ ‫נוסף‬ ‫מחזור‬ ‫מקבל‬ ‫הראשון‬ ‫שהאיבר‬ ‫לב‬ ‫נשים‬
SignalsSignals
‫החוצה‬ ‫איברים‬ ‫הוצאת‬‫החוצה‬ ‫איברים‬ ‫הוצאת‬::
‫שה‬ ‫שמהרגע‬spen_out.(‫עמודה‬ ‫כפול‬ ‫שורה‬ ‫של‬ ‫מכפלה‬ ‫בעצם‬ ‫)אחרי‬ ‫החוצה‬ ‫אחד‬ ‫איבר‬ ‫יוצא‬ ‫מחזורים‬ ‫שמונה‬ ‫כל‬ ‫עולה‬ ,
72
:‫מקבילית‬ ‫עבודה‬:‫מקבילית‬ ‫עבודה‬
‫שלושה‬DCT: ‫במקביל‬ ‫עובדים‬b2v_DCT_Y , b2v_DCT_Cb , b2v_DCT_Cr‫סיגנלי‬ ‫לכולם‬ .
) ‫זהים‬ ‫מערכת‬clk,rst,spen_in,d_in_valid.‫מקדמים‬ ‫מטריצת‬ ‫ואותה‬ (
73
:‫תכנון‬ ‫שיקולי‬:‫תכנון‬ ‫שיקולי‬
‫כל‬ ‫של‬ ‫קריאה‬‫כל‬ ‫של‬ ‫קריאה‬inputinput‫בלבד‬ ‫אחת‬ ‫פעם‬‫בלבד‬ ‫אחת‬ ‫פעם‬
‫וולידציה‬ ‫מטריצת‬ ‫בעזרת‬ – ‫איתחול‬‫וולידציה‬ ‫מטריצת‬ ‫בעזרת‬ – ‫איתחול‬
‫לוגי‬ ‫ענן‬ ,‫ליצוג‬ ‫אחת‬ ‫מטריצה‬ ‫מספיקה‬ ‫ולכן‬ ,‫אורטוגונליות‬ ‫שהמטריצות‬ ‫לב‬ ‫נשים‬ – ‫קבועים‬ ‫מטריצת‬‫לוגי‬ ‫ענן‬ ,‫ליצוג‬ ‫אחת‬ ‫מטריצה‬ ‫מספיקה‬ ‫ולכן‬ ,‫אורטוגונליות‬ ‫שהמטריצות‬ ‫לב‬ ‫נשים‬ – ‫קבועים‬ ‫מטריצת‬
.‫קריאה‬ ‫סדר‬ ‫את‬ ‫יקבע‬.‫קריאה‬ ‫סדר‬ ‫את‬ ‫יקבע‬
"‫"זיגזג‬ ‫בסדר‬ ‫התוצאות‬ ‫את‬ ‫להוציא‬ ‫מנת‬ ‫על‬ ‫מימין‬ ‫להכפיל‬ ‫סדר‬ ‫באיזה‬ ‫שקובע‬ ‫מודל‬ – ‫זיגזג‬"‫"זיגזג‬ ‫בסדר‬ ‫התוצאות‬ ‫את‬ ‫להוציא‬ ‫מנת‬ ‫על‬ ‫מימין‬ ‫להכפיל‬ ‫סדר‬ ‫באיזה‬ ‫שקובע‬ ‫מודל‬ – ‫זיגזג‬
‫אחד‬ ‫וסכימה‬ ‫מכפלה‬ ‫במודל‬ ‫שימוש‬‫אחד‬ ‫וסכימה‬ ‫מכפלה‬ ‫במודל‬ ‫שימוש‬
‫קבוע‬ ‫וטרופוט‬ ‫קליטה‬ ‫קצב‬ ‫על‬ ‫שמירה‬‫קבוע‬ ‫וטרופוט‬ ‫קליטה‬ ‫קצב‬ ‫על‬ ‫שמירה‬
‫שנבחנו‬ ‫:אלטרנטיבות‬
•‫ב‬ ‫המודל‬ ‫את‬ ‫להחליף‬ ‫האופציה‬ ‫נבחנה‬ – ‫זיגזג‬ROM‫שלטעמם‬ ‫למרות‬ ,‫במקום‬ ‫חיסכון‬ ‫משיקולי‬ ‫נפסל‬ .
.‫אלגנטי‬ ‫יותר‬ ‫זה‬ ‫אחרים‬ ‫של‬
•‫המטריצה‬ ‫את‬ ‫לאתחל‬ ‫האופציה‬ ‫נבחנה‬ – ‫ערכים‬ ‫איתחול‬64‫למערך‬ ‫האופציה‬ ‫נבחרה‬ .‫אינפוטים‬
.‫שעון‬ ‫משיקולי‬ ,‫ולידציה‬
74
QuantizationQuantization
75
QuantizationQuantization
‫קלט‬‫קלט‬
6464‫של‬ ‫ערכים‬‫של‬ ‫ערכים‬YY‫או‬‫או‬CbCb‫או‬‫או‬CrCr‫בצורה‬ ‫הזורמים‬ (‫)בלוק‬‫בצורה‬ ‫הזורמים‬ (‫)בלוק‬
‫פעולת‬ ‫לאחר‬ ‫טורית‬‫פעולת‬ ‫לאחר‬ ‫טורית‬DCTDCT‫בצורת‬ ‫מיוצגים‬ ‫)הערכים‬‫בצורת‬ ‫מיוצגים‬ ‫)הערכים‬floating pointfloating point((
‫נתונים‬ ‫עיבוד‬‫נתונים‬ ‫עיבוד‬
1)1).‫מתאים‬ ‫קוונטיזציה‬ ‫בערך‬ ‫מחולק‬ ‫ערך‬ ‫כל‬.‫מתאים‬ ‫קוונטיזציה‬ ‫בערך‬ ‫מחולק‬ ‫ערך‬ ‫כל‬
2)2)‫מסעיף‬ ‫התוצאה‬ ‫המרת‬‫מסעיף‬ ‫התוצאה‬ ‫המרת‬11‫בטווח‬ ‫שלמים‬ ‫למספרים‬‫בטווח‬ ‫שלמים‬ ‫למספרים‬
num< 1024num< 1024> 1024> 1024. -. -
‫פלט‬‫פלט‬
6464‫ערכי‬‫ערכי‬DCTDCT‫של‬ ‫ושלמים‬ ‫מקוונטטים‬‫של‬ ‫ושלמים‬ ‫מקוונטטים‬YY‫או‬‫או‬CbCb‫או‬‫או‬CrCr
.‫טורית‬ ‫בצורה‬ ‫הזורמים‬ (‫)בלוק‬.‫טורית‬ ‫בצורה‬ ‫הזורמים‬ (‫)בלוק‬‫המשלים‬ ‫בצורת‬ ‫מיוצגים‬ ‫)הערכים‬‫המשלים‬ ‫בצורת‬ ‫מיוצגים‬ ‫)הערכים‬
-‫ל‬-‫ל‬22((
76
Data_in
[23:0[ Data_out
[10:0[
ROM Adress [5:0[ROM
Quantization
Table
multiply
ing
Quantization
Float
To
int
1/Quantization
value [23:0[
77
ROM
Quantization
Table
multiply
ing
Quantization
Float
To
int
24’hfc00_08 =
252
24’h4000_fd =
1/16
6’h03 = 3
11’h010 = 16
78
Example of signalsExample of signals
Output with zeros because the quantization
Delaying of one cycle
79
QuantizationQuantization
‫פעולה‬ ‫ועקרון‬ ‫תכנון‬ ‫שיקולי‬‫פעולה‬ ‫ועקרון‬ ‫תכנון‬ ‫שיקולי‬
‫של‬ ‫נפרד‬ ‫מודול‬ ‫יצירת‬‫של‬ ‫נפרד‬ ‫מודול‬ ‫יצירת‬float_to_intfloat_to_int‫פעולה‬ ‫של‬ ‫הקצה‬ ‫מקרי‬ ‫בכל‬ ‫להתמקד‬ ‫מנת‬ ‫על‬‫פעולה‬ ‫של‬ ‫הקצה‬ ‫מקרי‬ ‫בכל‬ ‫להתמקד‬ ‫מנת‬ ‫על‬
.‫זו‬.‫זו‬
‫יצירת‬‫יצירת‬cyclecycle‫גבוה‬ ‫אינו‬ ‫המחיר‬ ‫כאשר‬ ‫התוצאה‬ ‫את‬ ‫לוודא‬ ‫מנת‬ ‫על‬ ‫לפלט‬ ‫קלט‬ ‫בין‬‫גבוה‬ ‫אינו‬ ‫המחיר‬ ‫כאשר‬ ‫התוצאה‬ ‫את‬ ‫לוודא‬ ‫מנת‬ ‫על‬ ‫לפלט‬ ‫קלט‬ ‫בין‬
))pipelinepipeline((
‫שנבחנו‬ ‫אלטרנטיבות‬‫שנבחנו‬ ‫אלטרנטיבות‬
-‫ל‬ ‫המרה‬ ‫במקום‬-‫ל‬ ‫המרה‬ ‫במקום‬intint-‫ל‬ ‫ישירה‬ ‫המרה‬-‫ל‬ ‫ישירה‬ ‫המרה‬categorycategory-‫ו‬-‫ו‬offsetoffset.‫החשוב‬ ‫הפלט‬ ‫זהו‬ ‫כי‬.‫החשוב‬ ‫הפלט‬ ‫זהו‬ ‫כי‬
-‫ה‬ ‫של‬ ‫האקספוננט‬ :‫יתרונות‬-‫ה‬ ‫של‬ ‫האקספוננט‬ :‫יתרונות‬floatfloat-‫ל‬ ‫זהה‬-‫ל‬ ‫זהה‬categorycategory-‫ה‬ ‫ומקום‬ ,-‫ה‬ ‫ומקום‬ ,offsetoffset‫)צמוד‬ ‫ידוע‬‫)צמוד‬ ‫ידוע‬
. (‫לנקודה‬. (‫לנקודה‬
‫מקדם‬ ‫גם‬ ‫קיים‬ ‫הבא‬ ‫במודול‬ :‫חסרונות‬‫מקדם‬ ‫גם‬ ‫קיים‬ ‫הבא‬ ‫במודול‬ :‫חסרונות‬DCDC‫לאחר‬ ‫לקיימו‬ ‫אפשר‬ ‫שאי‬ ‫חיסור‬ ‫הדורש‬‫לאחר‬ ‫לקיימו‬ ‫אפשר‬ ‫שאי‬ ‫חיסור‬ ‫הדורש‬
-‫ל‬ ‫מתחלק‬ ‫שהמספר‬-‫ל‬ ‫מתחלק‬ ‫שהמספר‬categorycategory-‫ו‬-‫ו‬offsetoffset..
.‫עבודה‬ ‫יותר‬ ‫דורש‬ ‫היה‬ ‫והשינוי‬ ,‫הבא‬ ‫המודול‬ ‫את‬ ‫קודם‬ ‫בניתי‬ :‫חסרונות‬.‫עבודה‬ ‫יותר‬ ‫דורש‬ ‫היה‬ ‫והשינוי‬ ,‫הבא‬ ‫המודול‬ ‫את‬ ‫קודם‬ ‫בניתי‬ :‫חסרונות‬
80
RLC_DPCMRLC_DPCM
‫מטרה‬‫מטרה‬
.‫הקיים‬ ‫המידע‬ ‫את‬ ‫לכווץ‬.‫הקיים‬ ‫המידע‬ ‫את‬ ‫לכווץ‬
‫הדרך‬‫הדרך‬
I.I.‫אלא‬ ‫כפלט‬ ‫יוצאים‬ ‫אינם‬ ‫אפס‬ ‫ערכי‬‫אלא‬ ‫כפלט‬ ‫יוצאים‬ ‫אינם‬ ‫אפס‬ ‫ערכי‬
.‫אפס‬ ‫שאינם‬ ‫לערכים‬ ‫מתווספים‬.‫אפס‬ ‫שאינם‬ ‫לערכים‬ ‫מתווספים‬
II.II.‫מחדש‬ ‫נערכים‬ ‫אפס‬ ‫שאינם‬ ‫ערכים‬‫מחדש‬ ‫נערכים‬ ‫אפס‬ ‫שאינם‬ ‫ערכים‬
."‫האפמן‬ ‫"קוד‬ ‫בעזרת‬ ‫קידוד‬ ‫לקראת‬."‫האפמן‬ ‫"קוד‬ ‫בעזרת‬ ‫קידוד‬ ‫לקראת‬
81
RLC_DPCMRLC_DPCM
‫קלט‬‫קלט‬
6464‫ערכי‬‫ערכי‬DCTDCT‫ו‬ ‫מקוונטטים‬‫ו‬ ‫מקוונטטים‬‫שלמים‬‫שלמים‬‫של‬‫של‬YY‫או‬‫או‬CbCb‫או‬‫או‬CrCr,‫ערך‬ ‫כל‬ .‫טורית‬ ‫בצורה‬ ‫הזורמים‬,‫ערך‬ ‫כל‬ .‫טורית‬ ‫בצורה‬ ‫הזורמים‬
,‫לדוגמה‬,‫לדוגמה‬aa‫מקיים‬ ,‫מקיים‬ ,10241024<<aa>1024>1024--
:‫הערות‬:‫הערות‬
‫של‬ ‫ביחידות‬ ‫מאוגדים‬ ‫הערכים‬‫של‬ ‫ביחידות‬ ‫מאוגדים‬ ‫הערכים‬6464."‫"בלוק‬ ,‫להלן‬ ,."‫"בלוק‬ ,‫להלן‬ ,
-‫ל‬ ‫המשלים‬ ‫בצורת‬ ‫מיוצגים‬ ‫הערכים‬-‫ל‬ ‫המשלים‬ ‫בצורת‬ ‫מיוצגים‬ ‫הערכים‬22..
‫מקדם‬ ‫הוא‬ "‫ב"בלוק‬ ‫הראשון‬ ‫הערך‬ ‫כי‬ ‫לב‬ ‫נשים‬‫מקדם‬ ‫הוא‬ "‫ב"בלוק‬ ‫הראשון‬ ‫הערך‬ ‫כי‬ ‫לב‬ ‫נשים‬DCDC‫מקדמי‬ ‫והשאר‬‫מקדמי‬ ‫והשאר‬ACAC..
‫נתונים‬ ‫עיבוד‬‫נתונים‬ ‫עיבוד‬
n‫בבלוק‬ ‫אחריו‬ ‫אם‬ ‫ורק‬ ,‫נתונים‬ ‫בעיבוד‬ ‫נרשם‬ ‫אלא‬ ‫כפלט‬ ‫יוצא‬ ‫אינו‬ ‫אפס‬ ‫שהינו‬ ‫ערך‬ ‫כל‬‫בבלוק‬ ‫אחריו‬ ‫אם‬ ‫ורק‬ ,‫נתונים‬ ‫בעיבוד‬ ‫נרשם‬ ‫אלא‬ ‫כפלט‬ ‫יוצא‬ ‫אינו‬ ‫אפס‬ ‫שהינו‬ ‫ערך‬ ‫כל‬
‫)אם‬ .‫לפניו‬ ‫שהופיעו‬ ‫האפסים‬ ‫מספר‬ ‫ואיתו‬ ‫כפלט‬ ‫הזה‬ ‫הערך‬ ‫ייצא‬ ,‫אפס‬ ‫שאינו‬ ‫ערך‬ ‫יופיע‬‫)אם‬ .‫לפניו‬ ‫שהופיעו‬ ‫האפסים‬ ‫מספר‬ ‫ואיתו‬ ‫כפלט‬ ‫הזה‬ ‫הערך‬ ‫ייצא‬ ,‫אפס‬ ‫שאינו‬ ‫ערך‬ ‫יופיע‬
-‫מ‬ ‫יותר‬ ‫נרשמו‬-‫מ‬ ‫יותר‬ ‫נרשמו‬1515) ‫הערכים‬ ‫זוג‬ ‫ייצאו‬ ‫אפסים‬) ‫הערכים‬ ‫זוג‬ ‫ייצאו‬ ‫אפסים‬0,150,15‫שאינו‬ ‫הערך‬ ‫ואח"כ‬ ,‫שצריך‬ ‫כמה‬ (‫שאינו‬ ‫הערך‬ ‫ואח"כ‬ ,‫שצריך‬ ‫כמה‬ (
( .‫שנותר‬ ‫האפסים‬ ‫מספר‬ ‫עם‬ ‫יחד‬ ‫אפס‬( .‫שנותר‬ ‫האפסים‬ ‫מספר‬ ‫עם‬ ‫יחד‬ ‫אפס‬
n‫קטגוריה‬ ‫נמצא‬ ,‫כלומר‬ .‫הקטגוריה‬ ,‫להלן‬ ,‫משתייך‬ ‫הערך‬ ‫אליה‬ ‫הקבוצה‬ ‫מציאת‬‫קטגוריה‬ ‫נמצא‬ ,‫כלומר‬ .‫הקטגוריה‬ ,‫להלן‬ ,‫משתייך‬ ‫הערך‬ ‫אליה‬ ‫הקבוצה‬ ‫מציאת‬nn‫לערך‬‫לערך‬
aa-‫ש‬ ‫כך‬-‫ש‬ ‫כך‬22)^)^n-1) =<|a|< 2^nn-1) =<|a|< 2^n..
n-‫ה‬ ‫מציאת‬-‫ה‬ ‫מציאת‬offsetoffset.‫עולה‬ ‫בסדר‬ ‫הקטגוריה‬ ‫בתוך‬ ‫הערך‬ ‫של‬ ‫המיקום‬ ,.‫עולה‬ ‫בסדר‬ ‫הקטגוריה‬ ‫בתוך‬ ‫הערך‬ ‫של‬ ‫המיקום‬ ,
‫פלט‬‫פלט‬
-‫ה‬ ,‫הערך‬ ‫של‬ ‫הקטגוריה‬ ‫את‬ ‫הכוללים‬ ‫ערכים‬-‫ה‬ ,‫הערך‬ ‫של‬ ‫הקטגוריה‬ ‫את‬ ‫הכוללים‬ ‫ערכים‬offsetoffset. ‫ברצף‬ ‫לפניו‬ ‫שהופיעו‬ ‫האפסים‬ ‫ומספר‬ ‫שלו‬. ‫ברצף‬ ‫לפניו‬ ‫שהופיעו‬ ‫האפסים‬ ‫ומספר‬ ‫שלו‬
‫הכמות‬ ‫כי‬ ‫יודעים‬ ‫אנו‬ ‫רק‬ ‫שיצאו‬ ‫הפלט‬ ‫ערכי‬ ‫כמות‬ ‫מהי‬ ‫יודעים‬ ‫איננו‬ ‫כעת‬ ‫כי‬ ‫לב‬ ‫נשים‬‫הכמות‬ ‫כי‬ ‫יודעים‬ ‫אנו‬ ‫רק‬ ‫שיצאו‬ ‫הפלט‬ ‫ערכי‬ ‫כמות‬ ‫מהי‬ ‫יודעים‬ ‫איננו‬ ‫כעת‬ ‫כי‬ ‫לב‬ ‫נשים‬
-‫מ‬ ‫גדולה‬ ‫אינה‬-‫מ‬ ‫גדולה‬ ‫אינה‬6464..
) ‫ערכים‬ ‫זוג‬ ‫יישלח‬ ‫אפס‬ ‫הינו‬ ‫בבלוק‬ ‫האחרון‬ ‫הערך‬ ‫אם‬ ‫כן‬ ‫כמו‬) ‫ערכים‬ ‫זוג‬ ‫יישלח‬ ‫אפס‬ ‫הינו‬ ‫בבלוק‬ ‫האחרון‬ ‫הערך‬ ‫אם‬ ‫כן‬ ‫כמו‬0,00,0.‫בלוק‬ ‫סוף‬ ‫לסמן‬ (.‫בלוק‬ ‫סוף‬ ‫לסמן‬ (
82
‫מחדש‬ ‫הערכים‬ ‫הצגת‬‫מחדש‬ ‫הערכים‬ ‫הצגת‬
‫קטגוריה‬‫קטגוריה‬
83
‫מחדש‬ ‫הערכים‬ ‫הצגת‬‫מחדש‬ ‫הערכים‬ ‫הצגת‬
-‫ה‬-‫ה‬OffsetOffset‫את‬ ‫מציג‬‫את‬ ‫מציג‬‫מיקום‬‫מיקום‬
‫הקטגוריה‬ ‫בתוך‬ ‫המספר‬‫הקטגוריה‬ ‫בתוך‬ ‫המספר‬‫בסדר‬‫בסדר‬
‫עולה‬‫עולה‬..
‫קטגוריה‬ ‫לדוגמה‬‫קטגוריה‬ ‫לדוגמה‬33‫בה‬‫בה‬
:‫המספרים‬ ‫נמצאים‬:‫המספרים‬ ‫נמצאים‬
--77,,……-,-,4,44,4,,……77
-‫ה‬ ‫כי‬ ‫לראות‬ ‫ניתן‬-‫ה‬ ‫כי‬ ‫לראות‬ ‫ניתן‬offsetoffset‫תמיד‬‫תמיד‬
-‫ה‬ ‫כן‬ ‫כמו‬ .‫חיובי‬-‫ה‬ ‫כן‬ ‫כמו‬ .‫חיובי‬offsetoffset‫של‬‫של‬
‫המספר‬ ‫הוא‬ ‫חיובי‬ ‫מספר‬‫המספר‬ ‫הוא‬ ‫חיובי‬ ‫מספר‬
.‫סימן‬ ‫בביט‬ ‫צורך‬ ‫ללא‬ ,‫עצמו‬.‫סימן‬ ‫בביט‬ ‫צורך‬ ‫ללא‬ ,‫עצמו‬
-‫ה‬ ‫של‬ ‫הביטים‬ ‫מספר‬-‫ה‬ ‫של‬ ‫הביטים‬ ‫מספר‬offsetoffset
‫המספר‬ ‫מערך‬ ‫אחד‬ ‫בביט‬ ‫קטן‬‫המספר‬ ‫מערך‬ ‫אחד‬ ‫בביט‬ ‫קטן‬
.‫בכניסה‬.‫בכניסה‬
OffsetOffset ‫מציאת‬‫מציאת‬‫המספר‬‫המספר‬ offsetoffset
77 77
66 66
55 55
44 44
-4-4 33
-5-5 22
-6-6 11
-7-7 00
84
‫בבינארי‬ ‫מחדש‬ ‫הערכים‬ ‫הצגת‬‫בבינארי‬ ‫מחדש‬ ‫הערכים‬ ‫הצגת‬
‫המספר‬‫המספר‬ ‫בבינארי‬‫בבינארי‬
77 0000000011100000000111
66 0000000011000000000110
55 0000000010100000000101
44 0000000010000000000100
-4-4 111111111100111111111100
-5-5 111111111011111111111011
-6-6 111111111010111111111010
-7-7 111111111001111111111001
‫קטגוריה‬ ‫מציאת‬‫קטגוריה‬ ‫מציאת‬33
]]1111[‫ביטים‬[‫ביטים‬
OffsetOffset
]]1010[‫ביטים‬[‫ביטים‬
0000000000000000111111 00000000000000111111
0000000000000000111010 00000000000000111010
0000000000000000110101 00000000000000110101
0000000000000000110000 00000000000000110000
1111111111111111001111 00000000000000001111
1111111111111111001010 00000000000000001010
1111111111111111000101 000000000000000000
11
a=a-
1
If (a<0(
‫הפחתה‬
‫לערכים‬
‫השליליים‬
85
Data_in
[10:0[
Category[3:0[
RLC_DPCM
Ofset[9:0
[
Num of zeros
[3:0[
d_out_validd_in_valid
1) if the
input is zero
just count it.
2) If not,
find the large
bit of the
number
(category)
3) The
location of
the input in
the category
Inputs & Outputs
86
11’h000
Not relevant
RLC_DPCM
Not relevant
Not relevant
d_out_valid ==0d_in_valid==1
Num==0
Valid data became to not valid
Data_in is zero
a=0
87
‫המידע‬ ‫דילול‬ ‫של‬ ‫דוגמאות‬‫המידע‬ ‫דילול‬ ‫של‬ ‫דוגמאות‬
A lot of Valid data became to not valid data thanks to the
quantization that zero the data.
‫אפסים‬
‫האפסים‬ ‫מספר‬
88
‫אפסים‬ ‫לדילול‬ ‫דוגמה‬‫אפסים‬ ‫לדילול‬ ‫דוגמה‬
63‫כערך‬ ‫יוצאים‬ ‫בכניסה‬ ‫אפס‬ ‫ערכי‬DC) ‫וערך‬0,0.‫ביציאה‬ ‫בלבד‬ (
63‫רק‬ ‫מתוכם‬ ‫ערכים‬5‫רק‬ ‫ובהמשך‬ ‫אפסים‬ ‫עם‬ ‫המעורבים‬ ‫אפס‬ ‫שאינם‬ ‫ערכים‬
-‫כ‬ ‫יוצאים‬ .‫אפסים‬5) ‫וערך‬ ‫ערכים‬0,0‫בלבד‬ (
89
‫בלוקים‬ ‫של‬ ‫באוסף‬ ‫אפסים‬ ‫לדילול‬ ‫דוגמה‬‫בלוקים‬ ‫של‬ ‫באוסף‬ ‫אפסים‬ ‫לדילול‬ ‫דוגמה‬
‫כניסה‬
‫יציאה‬
90
11’h050
= 80
4’b0111 = 7
RLC_DPCM
10’b00010100
00 = 80
4’b0001 = 1
d_out_valid ==1d_in_valid==1
Num!=0 Num =
00001010000
Category = 7
Offset = 80
0001010000
Next Data_in is positive
a>0
91
11’h7b0
= -80
4’b0111 = 7
RLC_DPCM
10’b
00000101111 =
474’b0001 = 1
d_out_valid ==1d_in_valid==1
Num!=0 Num =
11110110000
Category = 7
Offset =
00000101111
Next Data_in is negative
a<0
92
‫במקביל‬ ‫המעובדים‬ ‫בלוקים‬ ‫לשלושה‬ ‫דוגמה‬‫במקביל‬ ‫המעובדים‬ ‫בלוקים‬ ‫לשלושה‬ ‫דוגמה‬
in
out
C
b
Cr
Y
93
,‫זה‬ ‫מודול‬,‫זה‬ ‫מודול‬RLC_DPCMRLC_DPCM‫פעם‬ ‫המידע‬ ‫את‬ ‫מקבל‬ ,‫פעם‬ ‫המידע‬ ‫את‬ ‫מקבל‬ ,
-‫ב‬-‫ב‬88,‫בכניסה‬ ‫מידע‬ ‫נאגר‬ ‫לא‬ ‫לכן‬ ,‫שעון‬ ‫מחזורי‬,‫בכניסה‬ ‫מידע‬ ‫נאגר‬ ‫לא‬ ‫לכן‬ ,‫שעון‬ ‫מחזורי‬
.‫פשוטה‬ ‫המידע‬ ‫וקבלת‬.‫פשוטה‬ ‫המידע‬ ‫וקבלת‬
‫לאורך‬ ‫יציב‬ ‫להיות‬ ‫צריך‬ ‫המידע‬ ‫ביציאה‬‫לאורך‬ ‫יציב‬ ‫להיות‬ ‫צריך‬ ‫המידע‬ ‫ביציאה‬33‫מחזורי‬‫מחזורי‬
‫קיימים‬ ‫כי‬ ‫בדיוק‬ ‫שעון‬‫קיימים‬ ‫כי‬ ‫בדיוק‬ ‫שעון‬33‫של‬ ‫מודולים‬‫של‬ ‫מודולים‬RLC_DPCMRLC_DPCM
‫פעם‬ ‫כל‬ ‫קורא‬ ‫אחריהם‬ ‫הבא‬ ‫המודול‬ ‫אך‬ ‫במקביל‬‫פעם‬ ‫כל‬ ‫קורא‬ ‫אחריהם‬ ‫הבא‬ ‫המודול‬ ‫אך‬ ‫במקביל‬
.‫מהשלושה‬ ‫מאחד‬ ‫רק‬.‫מהשלושה‬ ‫מאחד‬ ‫רק‬
‫תזמון‬‫תזמון‬‫והיציאה‬ ‫הכניסה‬‫והיציאה‬ ‫הכניסה‬
94
‫בלוק‬ ‫בסוף‬ ‫האותות‬ ‫לתזמון‬ ‫דוגמה‬‫בלוק‬ ‫בסוף‬ ‫האותות‬ ‫לתזמון‬ ‫דוגמה‬
‫המידע‬ ‫בכניסה‬
-‫ל‬ ‫בתוקף‬cycle,‫אחד‬
-‫ל‬ ‫ביציאה‬ ‫אך‬3
cycles
Spen_in‫ולאחר‬ ‫יורד‬
3‫יורד‬ ‫מחזורים‬
spen_out
end of block
‫מחזורי‬ ‫לשלושה‬ ‫מופיע‬
‫שעון‬
95
‫ופתרונה‬ ‫המוצא‬ ‫בתזמון‬ ‫בעיה‬‫ופתרונה‬ ‫המוצא‬ ‫בתזמון‬ ‫בעיה‬
,‫במוצא‬ ‫כלל‬ ‫ערכים‬ ‫אין‬ ,‫אפס‬ ‫הם‬ ‫בכניסה‬ ‫הערכים‬ ‫עוד‬ ‫כל‬,‫במוצא‬ ‫כלל‬ ‫ערכים‬ ‫אין‬ ,‫אפס‬ ‫הם‬ ‫בכניסה‬ ‫הערכים‬ ‫עוד‬ ‫כל‬
‫לאחר‬ ‫אם‬ ,‫,לדוגמה‬ ‫אבל‬‫לאחר‬ ‫אם‬ ,‫,לדוגמה‬ ‫אבל‬6060‫שונה‬ ‫ערך‬ ‫מופיע‬ ‫אפסים‬‫שונה‬ ‫ערך‬ ‫מופיע‬ ‫אפסים‬
‫לצאת‬ ‫אמורים‬ ,‫מאפס‬‫לצאת‬ ‫אמורים‬ ,‫מאפס‬44.‫ברצף‬ ‫מספרים‬ ‫זוגות‬.‫ברצף‬ ‫מספרים‬ ‫זוגות‬
((0,150,15) , () , (0,150,15) , () , (0,150,15) , () , (a,12a,12))
‫הבעיה‬‫הבעיה‬‫להישאר‬ ‫צריך‬ ‫ערך‬ ‫כל‬ :‫להישאר‬ ‫צריך‬ ‫ערך‬ ‫כל‬ :33‫המוצא‬ ,‫כן‬ ‫אם‬ ,‫מחזורים‬‫המוצא‬ ,‫כן‬ ‫אם‬ ,‫מחזורים‬
-‫ל‬ ‫תפוס‬-‫ל‬ ‫תפוס‬1212‫לאחר‬ ‫אבל‬ ,‫מחזורים‬‫לאחר‬ ‫אבל‬ ,‫מחזורים‬88‫ערך‬ ‫נכנס‬ ‫מחזורים‬‫ערך‬ ‫נכנס‬ ‫מחזורים‬
.‫חדש‬.‫חדש‬
‫הפתרון‬‫הפתרון‬‫להפעיל‬ ‫ניתן‬ :‫להפעיל‬ ‫ניתן‬ :FIFOFIFO‫מיותר‬ ‫זה‬ ‫פתרון‬ ,‫לדעתי‬ ,‫אך‬ ,‫מיותר‬ ‫זה‬ ‫פתרון‬ ,‫לדעתי‬ ,‫אך‬ ,
‫לשמור‬ ‫וצריך‬ ‫ידועים‬ ‫שאינם‬ ‫ערכים‬ ‫הרבה‬ ‫כאן‬ ‫אין‬ ‫כי‬‫לשמור‬ ‫וצריך‬ ‫ידועים‬ ‫שאינם‬ ‫ערכים‬ ‫הרבה‬ ‫כאן‬ ‫אין‬ ‫כי‬
‫האחרון‬ ‫הערך‬ ‫של‬ ‫שמירה‬ ‫רק‬ ‫ונדרשת‬ ,‫אותם‬‫האחרון‬ ‫הערך‬ ‫של‬ ‫שמירה‬ ‫רק‬ ‫ונדרשת‬ ,‫אותם‬))a,12a,12((..
16+16+16+12=60
96
‫הערך‬‫הערך‬DCDC
-‫ה‬ ‫ערך‬ ‫הוא‬ ‫הבלוק‬ ‫של‬ ‫הראשון‬ ‫הערך‬-‫ה‬ ‫ערך‬ ‫הוא‬ ‫הבלוק‬ ‫של‬ ‫הראשון‬ ‫הערך‬DCDC..
-‫ה‬ ‫ערך‬-‫ה‬ ‫ערך‬DCDC‫הערכים‬ ‫נעים‬ ‫שסביבו‬ ‫הממוצע‬ ‫הוא‬‫הערכים‬ ‫נעים‬ ‫שסביבו‬ ‫הממוצע‬ ‫הוא‬
.‫הבלוק‬ ‫של‬ ‫הבאים‬.‫הבלוק‬ ‫של‬ ‫הבאים‬
-‫ה‬ ‫קידוד‬-‫ה‬ ‫קידוד‬DCDC‫גדול‬ ‫הפרש‬ ‫שאין‬ ‫ההנחה‬ ‫על-פי‬ ‫נבנה‬‫גדול‬ ‫הפרש‬ ‫שאין‬ ‫ההנחה‬ ‫על-פי‬ ‫נבנה‬
-‫ה‬ ‫ערך‬ ‫בין‬-‫ה‬ ‫ערך‬ ‫בין‬DCDC‫בבלוק‬ ‫לערכו‬ ‫הנוכחי‬ ‫בבלוק‬‫בבלוק‬ ‫לערכו‬ ‫הנוכחי‬ ‫בבלוק‬
-‫ה‬ ‫של‬ ‫המוצא‬ ‫ערך‬ ‫לכן‬ ,‫הקודם‬-‫ה‬ ‫של‬ ‫המוצא‬ ‫ערך‬ ‫לכן‬ ,‫הקודם‬DCDC‫ההפרש‬ ‫הוא‬‫ההפרש‬ ‫הוא‬
.‫הנ"ל‬ ‫הערכים‬ ‫בין‬.‫הנ"ל‬ ‫הערכים‬ ‫בין‬Out = DIFF = DCOut = DIFF = DCii –– DCDCi-1i-1
-‫ה‬ ‫ערך‬-‫ה‬ ‫ערך‬DCDC.‫אפס‬ ‫הוא‬ ‫אם‬ ‫גם‬ ‫מקרה‬ ‫בכל‬ ‫נרשם‬.‫אפס‬ ‫הוא‬ ‫אם‬ ‫גם‬ ‫מקרה‬ ‫בכל‬ ‫נרשם‬
97
-‫ה‬ ‫ערך‬ ‫הצגת‬-‫ה‬ ‫ערך‬ ‫הצגת‬DCDC‫מחדש‬‫מחדש‬
‫למקרה‬ ‫לב‬ ‫לשים‬ ‫יש‬‫למקרה‬ ‫לב‬ ‫לשים‬ ‫יש‬
‫בין‬ ‫ההפרש‬ ‫בו‬ ‫קצה‬‫בין‬ ‫ההפרש‬ ‫בו‬ ‫קצה‬
|-‫מ‬ ‫גדול‬ ‫הערכים‬|-‫מ‬ ‫גדול‬ ‫הערכים‬
10241024‫לערכי‬ ‫לכן‬ ,|‫לערכי‬ ‫לכן‬ ,|
-‫ה‬-‫ה‬DCDC‫קטגוריה‬ ‫יש‬‫קטגוריה‬ ‫יש‬
,‫נוספת‬,‫נוספת‬1111..
-‫ה‬ ‫ערך‬-‫ה‬ ‫ערך‬offsetoffset‫נבנה‬‫נבנה‬
‫לשאר‬ ‫זהה‬ ‫בצורה‬‫לשאר‬ ‫זהה‬ ‫בצורה‬
.‫הערכים‬.‫הערכים‬
98
-‫ה‬ ‫לקידוד‬ ‫דוגמא‬-‫ה‬ ‫לקידוד‬ ‫דוגמא‬DCDC
‫הבלוק‬
‫הבא‬
Category 4 + offset 3 =
-12
DCi – DCi-1 = -25 –(-13( =
-12
DCi – DCi-1 = 8 –(-3( = 11
DCi – DCi-1 = -4 –8 = -12
Category 4 + offset 11 =
11
Category 4 + offset 003 =
-12
99
‫הבלוק‬ ‫לסיום‬ ‫אפשרויות‬ ‫שתי‬ ‫ישנן‬‫הבלוק‬ ‫לסיום‬ ‫אפשרויות‬ ‫שתי‬ ‫ישנן‬
.‫מאפס‬ ‫שונה‬ ‫הנכנס‬ ‫האחרון‬ ‫הערך‬.‫מאפס‬ ‫שונה‬ ‫הנכנס‬ ‫האחרון‬ ‫הערך‬
‫יעלו‬ ‫איתו‬ ‫ויחד‬ ‫כרגיל‬ ‫מקודד‬ ‫יהיה‬ ‫במוצא‬ ‫הערך‬‫יעלו‬ ‫איתו‬ ‫ויחד‬ ‫כרגיל‬ ‫מקודד‬ ‫יהיה‬ ‫במוצא‬ ‫הערך‬
‫הדגלים‬ ‫שעון‬ ‫מחזורי‬ ‫לשלושה‬‫הדגלים‬ ‫שעון‬ ‫מחזורי‬ ‫לשלושה‬““d_out_validd_out_valid”” ““eobeob””..
‫הדגל‬‫הדגל‬““spen_outspen_out””.‫אחריהם‬ ‫אחד‬ ‫שעון‬ ‫מחזור‬ ‫יירד‬.‫אחריהם‬ ‫אחד‬ ‫שעון‬ ‫מחזור‬ ‫יירד‬
.‫אפס‬ ‫הוא‬ ‫הנכנס‬ ‫האחרון‬ ‫הערך‬.‫אפס‬ ‫הוא‬ ‫הנכנס‬ ‫האחרון‬ ‫הערך‬
) ‫יהיה‬ ‫במוצא‬ ‫הערך‬) ‫יהיה‬ ‫במוצא‬ ‫הערך‬0,00,0,(,(
‫כלומר‬‫כלומר‬category = 0 & num_of_zeros =0category = 0 & num_of_zeros =0
.‫הבלוק‬ ‫סיום‬ ‫על‬ ‫להודיע‬ ‫כדי‬.‫הבלוק‬ ‫סיום‬ ‫על‬ ‫להודיע‬ ‫כדי‬
‫הבלוק‬ ‫סוף‬‫הבלוק‬ ‫סוף‬
100
‫דוגמא‬ - ‫הבלוק‬ ‫סוף‬‫דוגמא‬ - ‫הבלוק‬ ‫סוף‬
‫מאפס‬ ‫שונה‬ ‫האחרון‬ ‫המידע‬ '‫א‬ ‫אפשרות‬
‫אפס‬ ‫הוא‬ ‫האחרון‬ ‫המידע‬ '‫ב‬ ‫אפשרות‬
) ‫במוצא‬ ‫המידע‬0,0(
101
RLC_DPCMRLC_DPCM
‫פעולה‬ ‫ועקרון‬ ‫תכנון‬ ‫שיקולי‬‫פעולה‬ ‫ועקרון‬ ‫תכנון‬ ‫שיקולי‬
‫חיובי‬ ‫)במספר‬ .‫לפיו‬ ‫הקטגוריה‬ ‫והגדרת‬ ‫השלם‬ ‫במספר‬ ‫הראשון‬ ‫המשמעותי‬ ‫הביט‬ ‫מציאת‬‫חיובי‬ ‫)במספר‬ .‫לפיו‬ ‫הקטגוריה‬ ‫והגדרת‬ ‫השלם‬ ‫במספר‬ ‫הראשון‬ ‫המשמעותי‬ ‫הביט‬ ‫מציאת‬
(‫אחד‬ ‫שאינו‬ ‫הראשון‬ ‫הביט‬ ‫השלילי‬ ‫ובביט‬ ‫אפס‬ ‫שאינו‬ ‫הראשון‬ ‫הביט‬(‫אחד‬ ‫שאינו‬ ‫הראשון‬ ‫הביט‬ ‫השלילי‬ ‫ובביט‬ ‫אפס‬ ‫שאינו‬ ‫הראשון‬ ‫הביט‬
-‫ה‬ ‫מציאת‬-‫ה‬ ‫מציאת‬offsetoffset.‫לעיל‬ ‫הוסברה‬.‫לעיל‬ ‫הוסברה‬
‫הוא‬ ‫המידע‬ ‫אם‬ ‫)אלא‬ ‫אפס‬ ‫ערך‬ ‫קליטת‬ ‫בכל‬ ‫האפסים‬ ‫מספר‬ ‫שמירת‬‫הוא‬ ‫המידע‬ ‫אם‬ ‫)אלא‬ ‫אפס‬ ‫ערך‬ ‫קליטת‬ ‫בכל‬ ‫האפסים‬ ‫מספר‬ ‫שמירת‬DCDC((
‫בשלושה‬ ‫פעם‬ ‫נעשית‬ ‫המוצא‬ ‫אות‬ ‫קריאת‬‫בשלושה‬ ‫פעם‬ ‫נעשית‬ ‫המוצא‬ ‫אות‬ ‫קריאת‬cyclescycles‫להישאר‬ ‫חייב‬ ‫במוצא‬ ‫המידע‬ ‫לכן‬ ,‫בלבד‬‫להישאר‬ ‫חייב‬ ‫במוצא‬ ‫המידע‬ ‫לכן‬ ,‫בלבד‬
‫לשלושה‬‫לשלושה‬cyclescycles.‫ייקרא‬ ‫לא‬ ‫כלל‬ ‫במוצא‬ ‫שהמידע‬ ‫ייתכן‬ ‫או‬ ‫כפולה‬ ‫קריאה‬ ‫תיתכן‬ ‫אחרת‬ ‫בדיוק‬.‫ייקרא‬ ‫לא‬ ‫כלל‬ ‫במוצא‬ ‫שהמידע‬ ‫ייתכן‬ ‫או‬ ‫כפולה‬ ‫קריאה‬ ‫תיתכן‬ ‫אחרת‬ ‫בדיוק‬
‫תוך‬ ‫למבוא‬ ‫מידע‬ ‫עוד‬ ‫יגיע‬ ‫שלא‬ ‫יודעים‬ ‫שאנו‬ ‫ומפני‬ ‫כך‬ ‫בעקבות‬‫תוך‬ ‫למבוא‬ ‫מידע‬ ‫עוד‬ ‫יגיע‬ ‫שלא‬ ‫יודעים‬ ‫שאנו‬ ‫ומפני‬ ‫כך‬ ‫בעקבות‬33,,cyclescycles-‫ה‬-‫ה‬flagsflags
)‫השונים‬)‫השונים‬))d_out_valid, spen_out, eobd_out_valid, spen_out, eob‫לשלושה‬ ‫נשמרים‬ ‫עצמו‬ ‫והמידע‬‫לשלושה‬ ‫נשמרים‬ ‫עצמו‬ ‫והמידע‬cyclescycles.‫בדיוק‬.‫בדיוק‬
‫שנבחנו‬ ‫אלטרנטיבות‬‫שנבחנו‬ ‫אלטרנטיבות‬
‫כמה‬ ‫כלל‬ ‫בדרך‬ ‫עוברים‬ ‫מקרה‬ ‫שבכל‬ ‫מכיוון‬ ‫אבל‬ ,‫שעון‬ ‫ללא‬ ‫המודול‬ ‫את‬ ‫ליצור‬ ‫היה‬ ‫אולי‬ ‫ניתן‬‫כמה‬ ‫כלל‬ ‫בדרך‬ ‫עוברים‬ ‫מקרה‬ ‫שבכל‬ ‫מכיוון‬ ‫אבל‬ ,‫שעון‬ ‫ללא‬ ‫המודול‬ ‫את‬ ‫ליצור‬ ‫היה‬ ‫אולי‬ ‫ניתן‬
‫לאחר‬ ‫יציב‬ ‫מידע‬ ‫להציג‬ ‫הצורך‬ ‫בגלל‬ ‫וגם‬ ‫המוצא‬ ‫באותות‬ ‫שמשתמשים‬ ‫עד‬ ‫שעון‬ ‫סיבובי‬‫לאחר‬ ‫יציב‬ ‫מידע‬ ‫להציג‬ ‫הצורך‬ ‫בגלל‬ ‫וגם‬ ‫המוצא‬ ‫באותות‬ ‫שמשתמשים‬ ‫עד‬ ‫שעון‬ ‫סיבובי‬
.‫בלבד‬ ‫אחד‬ ‫שעון‬ ‫סיבוב‬ ‫להוסיף‬ ‫העדפתי‬ ‫קצרה‬ ‫לא‬ ‫לוגיקה‬.‫בלבד‬ ‫אחד‬ ‫שעון‬ ‫סיבוב‬ ‫להוסיף‬ ‫העדפתי‬ ‫קצרה‬ ‫לא‬ ‫לוגיקה‬
‫לערך‬ ‫אחד‬ ‫מקבילים‬ ‫מעגלים‬ ‫שני‬ ‫תוכננו‬ ‫בתחילה‬‫לערך‬ ‫אחד‬ ‫מקבילים‬ ‫מעגלים‬ ‫שני‬ ‫תוכננו‬ ‫בתחילה‬DCDC‫לערכי‬ ‫ואחד‬‫לערכי‬ ‫ואחד‬ACAC‫הקידוד‬ ‫מנגנון‬ ‫אבל‬‫הקידוד‬ ‫מנגנון‬ ‫אבל‬
.‫המתבקשים‬ ‫השינויים‬ ‫עם‬ ‫יחיד‬ ‫במודול‬ ‫שניהם‬ ‫את‬ ‫לעבד‬ ‫העדפתי‬ ‫לכן‬ ,‫דומה‬.‫המתבקשים‬ ‫השינויים‬ ‫עם‬ ‫יחיד‬ ‫במודול‬ ‫שניהם‬ ‫את‬ ‫לעבד‬ ‫העדפתי‬ ‫לכן‬ ,‫דומה‬
FIFOFIFO‫שעון‬ ‫מחזורי‬ ‫כמה‬ ‫לאורך‬ ‫יחיד‬ ‫ערך‬ ‫שמירת‬ ‫אך‬ ,‫לעיל‬ ‫שהוזכר‬ ‫קצה‬ ‫במקרה‬ , ‫במוצא‬‫שעון‬ ‫מחזורי‬ ‫כמה‬ ‫לאורך‬ ‫יחיד‬ ‫ערך‬ ‫שמירת‬ ‫אך‬ ,‫לעיל‬ ‫שהוזכר‬ ‫קצה‬ ‫במקרה‬ , ‫במוצא‬
‫פשוטה‬ ‫יותר‬ ‫בצורה‬ ‫הבעיה‬ ‫את‬ ‫.פותרת‬‫פשוטה‬ ‫יותר‬ ‫בצורה‬ ‫הבעיה‬ ‫את‬ ‫.פותרת‬
102
RLE_DPCMRLE_DPCM
‫פעולה‬ ‫ועקרון‬ ‫תכנון‬ ‫שיקולי‬‫פעולה‬ ‫ועקרון‬ ‫תכנון‬ ‫שיקולי‬
.‫לפיו‬ ‫הקטגוריה‬ ‫והגדרת‬ ‫השלם‬ ‫במספר‬ ‫הראשון‬ ‫המשמעותי‬ ‫הביט‬ ‫מציאת‬.‫לפיו‬ ‫הקטגוריה‬ ‫והגדרת‬ ‫השלם‬ ‫במספר‬ ‫הראשון‬ ‫המשמעותי‬ ‫הביט‬ ‫מציאת‬
‫שאינו‬ ‫הראשון‬ ‫הביט‬ ‫השלילי‬ ‫ובביט‬ ‫אפס‬ ‫שאינו‬ ‫הראשון‬ ‫הביט‬ ‫חיובי‬ ‫)במספר‬‫שאינו‬ ‫הראשון‬ ‫הביט‬ ‫השלילי‬ ‫ובביט‬ ‫אפס‬ ‫שאינו‬ ‫הראשון‬ ‫הביט‬ ‫חיובי‬ ‫)במספר‬
(‫אחד‬(‫אחד‬
-‫ה‬ ‫מציאת‬-‫ה‬ ‫מציאת‬offsetoffset.‫הנ"ל‬ ‫הביט‬ ‫הורדת‬ ‫ע"י‬.‫הנ"ל‬ ‫הביט‬ ‫הורדת‬ ‫ע"י‬
‫הוא‬ ‫המידע‬ ‫אם‬ ‫)אלא‬ ‫אפס‬ ‫ערך‬ ‫קליטת‬ ‫בכל‬ ‫האפסים‬ ‫מספר‬ ‫שמירת‬‫הוא‬ ‫המידע‬ ‫אם‬ ‫)אלא‬ ‫אפס‬ ‫ערך‬ ‫קליטת‬ ‫בכל‬ ‫האפסים‬ ‫מספר‬ ‫שמירת‬DCDC((
‫בשלושה‬ ‫פעם‬ ‫נעשית‬ ‫המוצא‬ ‫אות‬ ‫קריאת‬‫בשלושה‬ ‫פעם‬ ‫נעשית‬ ‫המוצא‬ ‫אות‬ ‫קריאת‬cyclescycles‫חייב‬ ‫במוצא‬ ‫המידע‬ ‫לכן‬ ,‫בלבד‬‫חייב‬ ‫במוצא‬ ‫המידע‬ ‫לכן‬ ,‫בלבד‬
‫לשלושה‬ ‫להישאר‬‫לשלושה‬ ‫להישאר‬cyclescycles‫שהמידע‬ ‫ייתכן‬ ‫או‬ ‫כפולה‬ ‫קריאה‬ ‫תיתכן‬ ‫אחרת‬ ‫בדיוק‬‫שהמידע‬ ‫ייתכן‬ ‫או‬ ‫כפולה‬ ‫קריאה‬ ‫תיתכן‬ ‫אחרת‬ ‫בדיוק‬
‫למבוא‬ ‫מידע‬ ‫עוד‬ ‫יגיע‬ ‫שלא‬ ‫יודעים‬ ‫שאנו‬ ‫ומפני‬ ‫כך‬ ‫בעקבות‬ .‫ייקרא‬ ‫לא‬ ‫כלל‬ ‫במוצא‬‫למבוא‬ ‫מידע‬ ‫עוד‬ ‫יגיע‬ ‫שלא‬ ‫יודעים‬ ‫שאנו‬ ‫ומפני‬ ‫כך‬ ‫בעקבות‬ .‫ייקרא‬ ‫לא‬ ‫כלל‬ ‫במוצא‬
‫תוך‬‫תוך‬33,,cyclescycles-‫ה‬-‫ה‬flagsflags)‫השונים‬)‫השונים‬))d_out_valid, spen_out, eobd_out_valid, spen_out, eob‫עצמו‬ ‫והמידע‬‫עצמו‬ ‫והמידע‬
‫לשלושה‬ ‫נשמרים‬‫לשלושה‬ ‫נשמרים‬cyclescycles.‫בדיוק‬.‫בדיוק‬
‫שנבחנו‬ ‫אלטרנטיבות‬‫שנבחנו‬ ‫אלטרנטיבות‬
‫בדרך‬ ‫עוברים‬ ‫מקרה‬ ‫שבכל‬ ‫מכיוון‬ ‫אבל‬ ,‫שעון‬ ‫ללא‬ ‫המודול‬ ‫את‬ ‫ליצור‬ ‫היה‬ ‫אולי‬ ‫ניתן‬‫בדרך‬ ‫עוברים‬ ‫מקרה‬ ‫שבכל‬ ‫מכיוון‬ ‫אבל‬ ,‫שעון‬ ‫ללא‬ ‫המודול‬ ‫את‬ ‫ליצור‬ ‫היה‬ ‫אולי‬ ‫ניתן‬
‫להציג‬ ‫הצורך‬ ‫בגלל‬ ‫וגם‬ ‫המוצא‬ ‫באותות‬ ‫שמשתמשים‬ ‫עד‬ ‫שעון‬ ‫סיבובי‬ ‫כמה‬ ‫כלל‬‫להציג‬ ‫הצורך‬ ‫בגלל‬ ‫וגם‬ ‫המוצא‬ ‫באותות‬ ‫שמשתמשים‬ ‫עד‬ ‫שעון‬ ‫סיבובי‬ ‫כמה‬ ‫כלל‬
.‫בלבד‬ ‫אחד‬ ‫שעון‬ ‫סיבוב‬ ‫להוסיף‬ ‫העדפתי‬ ‫קצרה‬ ‫לא‬ ‫לוגיקה‬ ‫לאחר‬ ‫יציב‬ ‫מידע‬.‫בלבד‬ ‫אחד‬ ‫שעון‬ ‫סיבוב‬ ‫להוסיף‬ ‫העדפתי‬ ‫קצרה‬ ‫לא‬ ‫לוגיקה‬ ‫לאחר‬ ‫יציב‬ ‫מידע‬
103
‫חלק‬‫חלק‬33––Huffman codeHuffman code
TripleTriple
FIFOFIFO
FIFO writerFIFO writer
HuffmanHuffman
codecode
Serial toSerial to
paralelparalel
FlashFlash
writerwriter
104
Triple FIFOTriple FIFO
•‫מ‬ ‫במקביל‬ ‫המגיע‬ ‫המידע‬‫מ‬ ‫במקביל‬ ‫המגיע‬ ‫המידע‬Y, Cr, CbY, Cr, Cb‫לזיכרון‬ ‫נכתב‬‫לזיכרון‬ ‫נכתב‬FIFOFIFO‫לצורך‬‫לצורך‬
.‫טורי‬ ‫למידע‬ ‫בחזרה‬ ‫העברתו‬.‫טורי‬ ‫למידע‬ ‫בחזרה‬ ‫העברתו‬
•‫ה‬ ‫זיכרון‬‫ה‬ ‫זיכרון‬FIFOFIFO‫הבלוקים‬ ‫שלושת‬ ‫את‬ ‫זמנית‬ ‫לאחסן‬ ‫מאפשר‬‫הבלוקים‬ ‫שלושת‬ ‫את‬ ‫זמנית‬ ‫לאחסן‬ ‫מאפשר‬
.‫הופמן‬ ‫לקידוד‬ ‫להוצאתם‬ ‫עד‬ ‫המגיעים‬.‫הופמן‬ ‫לקידוד‬ ‫להוצאתם‬ ‫עד‬ ‫המגיעים‬
•‫ה‬ ‫של‬ ‫נוסף‬ ‫תפקיד‬‫ה‬ ‫של‬ ‫נוסף‬ ‫תפקיד‬FIFOFIFO‫המידע‬ ‫של‬ ‫זמני‬ ‫אחסון‬ ‫לאפשר‬ ‫הוא‬‫המידע‬ ‫של‬ ‫זמני‬ ‫אחסון‬ ‫לאפשר‬ ‫הוא‬
‫ה‬ ‫ע"י‬ ‫עצירה‬ ‫ונדרשת‬ ‫במידה‬‫ה‬ ‫ע"י‬ ‫עצירה‬ ‫ונדרשת‬ ‫במידה‬flashflash..
105
FIFO_WRITERFIFO_WRITER
-‫מה‬ ‫היוצא‬ ‫המידע‬ ‫את‬ ‫יקרא‬ ‫זה‬ ‫מודול‬ -‫מטרה‬-‫מה‬ ‫היוצא‬ ‫המידע‬ ‫את‬ ‫יקרא‬ ‫זה‬ ‫מודול‬ -‫מטרה‬RLCRLC
-‫ב‬ ‫זמני‬ ‫לאחסון‬ ‫ויעבירו‬ ‫המקבילי‬-‫ב‬ ‫זמני‬ ‫לאחסון‬ ‫ויעבירו‬ ‫המקבילי‬SUPER_FIFOSUPER_FIFO..
106
‫המודול‬ ‫עבודת‬ ‫תיאור‬‫המודול‬ ‫עבודת‬ ‫תיאור‬
-‫ה‬ ‫של‬ ‫המודולים‬ ‫שלושת‬-‫ה‬ ‫של‬ ‫המודולים‬ ‫שלושת‬RLCRLC-‫כ‬ ‫מתחברים‬-‫כ‬ ‫מתחברים‬inputsinputs‫מודול‬ .‫זה‬ ‫למודול‬‫מודול‬ .‫זה‬ ‫למודול‬
-‫ה‬ ‫את‬ ‫סורק‬ ‫זה‬-‫ה‬ ‫את‬ ‫סורק‬ ‫זה‬data_vlaiddata_vlaid‫אחד‬ ‫כל‬ ‫בודק‬ ‫שהוא‬ ‫כך‬ ,‫שלושתם‬ ‫של‬‫אחד‬ ‫כל‬ ‫בודק‬ ‫שהוא‬ ‫כך‬ ,‫שלושתם‬ ‫של‬
-‫ל‬ ‫החוצה‬ ‫מוזרם‬ ‫הנכנס‬ ‫המידע‬ .‫מחזורים‬ ‫שלוש‬ ‫כל‬-‫ל‬ ‫החוצה‬ ‫מוזרם‬ ‫הנכנס‬ ‫המידע‬ .‫מחזורים‬ ‫שלוש‬ ‫כל‬SUPER FIFOSUPER FIFO
-‫ל‬ ‫שייך‬ ‫היוצא‬ ‫המידע‬ ‫האם‬ ‫שמציין‬ ‫רגיסטר‬ ‫עם‬-‫ל‬ ‫שייך‬ ‫היוצא‬ ‫המידע‬ ‫האם‬ ‫שמציין‬ ‫רגיסטר‬ ‫עם‬Y/Cb/CrY/Cb/Cr..
:‫במימוש‬ ‫חשובים‬ ‫עקרונות‬:‫במימוש‬ ‫חשובים‬ ‫עקרונות‬
‫לשלוש‬ ‫מוחזק‬ ‫שנכנס‬ ‫המידע‬‫לשלוש‬ ‫מוחזק‬ ‫שנכנס‬ ‫המידע‬CYCLESCYCLES..
‫ביטים‬ ‫שני‬ ‫מתווספים‬ ‫נכנס‬ ‫מידע‬ ‫לכל‬‫ביטים‬ ‫שני‬ ‫מתווספים‬ ‫נכנס‬ ‫מידע‬ ‫לכל‬MSBMSB‫בלוק‬ ‫תחילת‬ ‫מייצג‬ ‫שהראשון‬ ‫כך‬‫בלוק‬ ‫תחילת‬ ‫מייצג‬ ‫שהראשון‬ ‫כך‬
.‫בלוק‬ ‫סוף‬ ‫מייצג‬ ‫והשני‬.‫בלוק‬ ‫סוף‬ ‫מייצג‬ ‫והשני‬
107
‫תחילת-בלוק‬‫תחילת-בלוק‬
INPUT-‫הקידוד‬DC‫ה‬ ‫-של‬RLC‫ה‬ ‫ושלושת‬ ,‫יחד‬ ‫-מגיע‬VALID_BIT‫ה‬ ‫בנוסף‬ .‫נדלקים‬
START_BLOCK‫ל‬ ‫להכניס‬ ‫מנת‬ ‫על‬ ‫דלוק‬ ‫-מוחזק‬DATA‫בלוק‬ ‫תחילת‬ ‫.ביט‬
‫שלוש‬ ‫למשך‬ ‫דלוק‬ ‫שיוחזק‬ ‫מובטח‬ ‫כאשר‬ ,‫לבד‬ ‫להידלק‬ ‫רשאי‬ ‫ביט‬ ‫כל‬ ‫זו‬ ‫מנקודה‬ ‫החל‬CYC.
‫בלוק‬ ‫תחילת‬ ‫ביט‬
OUTPUT – wr_sector‫החוצה‬ ‫הנכתב‬ ‫המידע‬ ‫שייכות‬ ‫את‬ ‫.מציין‬
wr‫מהקו‬ ‫מידע‬ ‫לקרוא‬ ‫ניתן‬ ‫.מציין‬
WR_DATA–‫שלו‬ ‫המבנה‬ ‫כאשר‬ ‫החוצה‬ ‫שנכתב‬ ‫המידע‬ ‫זה‬
st_blk[1],end_blk[1],zeros[4],category[4],offset[10]‫הכול‬ ‫בסך‬20‫לציין‬ ‫חשוב‬ .‫ביטים‬
‫קידוד‬ ‫מגיע‬ ‫שכאשר‬DC‫ה‬zeros-‫ב‬ ‫נמצא‬0.
108
‫אמצע-בלוק‬‫אמצע-בלוק‬
‫של‬ ‫הדלקה‬ ‫פה‬ ‫לראות‬ ‫ניתן‬‫של‬ ‫הדלקה‬ ‫פה‬ ‫לראות‬ ‫ניתן‬valid_bitsvalid_bits-‫ב‬ ‫תקין‬ ‫מידע‬ ‫המייצגים‬-‫ב‬ ‫תקין‬ ‫מידע‬ ‫המייצגים‬
Cb,CrCb,Cr..
‫כעבור‬‫כעבור‬CYCCYC‫ה‬ ‫כאשר‬‫ה‬ ‫כאשר‬wr_sectorwr_sector‫על‬ ‫מצביע‬‫על‬ ‫מצביע‬CbCb‫נדלק‬‫נדלק‬wrwr‫כאשר‬‫כאשר‬
-‫ה‬ ‫שגם‬ ‫כיוון‬ ‫הבא‬ ‫למחזור‬ ‫גם‬ ‫מוחזק‬ ‫הוא‬-‫ה‬ ‫שגם‬ ‫כיוון‬ ‫הבא‬ ‫למחזור‬ ‫גם‬ ‫מוחזק‬ ‫הוא‬CrCr.‫תקין‬.‫תקין‬
‫בנוסף‬‫בנוסף‬start blockstart block.‫בלוק‬ ‫באמצע‬ ‫שאנו‬ ‫כיוון‬ ‫כבוי‬.‫בלוק‬ ‫באמצע‬ ‫שאנו‬ ‫כיוון‬ ‫כבוי‬
109
‫סוף-בלוק‬‫סוף-בלוק‬
‫של‬ ‫הדלקה‬ ‫לראות‬ ‫ניתן‬ ‫הבלוק‬ ‫בסוף‬‫של‬ ‫הדלקה‬ ‫לראות‬ ‫ניתן‬ ‫הבלוק‬ ‫בסוף‬eobeob-‫ה‬ ‫של‬ ‫והדלקה‬-‫ה‬ ‫של‬ ‫והדלקה‬bitbit‫שזהו‬ ‫המסמן‬‫שזהו‬ ‫המסמן‬
.‫בבלוק‬ ‫האחרון‬ ‫במידע‬.‫בבלוק‬ ‫האחרון‬ ‫במידע‬
-‫ה‬ ‫של‬ ‫הביטים‬ ‫ששלושת‬ ‫מובטח‬ ‫בלוק‬ ‫כל‬ ‫בסוף‬-‫ה‬ ‫של‬ ‫הביטים‬ ‫ששלושת‬ ‫מובטח‬ ‫בלוק‬ ‫כל‬ ‫בסוף‬validvalid‫שהעבודה‬ ‫כיוון‬ ‫דלוקים‬ ‫יהיו‬‫שהעבודה‬ ‫כיוון‬ ‫דלוקים‬ ‫יהיו‬
.‫הזמן‬ ‫באותו‬ ‫מסתיימת‬ ‫זה‬ ‫מודול‬ ‫לפני‬ ‫שמתבצעת‬.‫הזמן‬ ‫באותו‬ ‫מסתיימת‬ ‫זה‬ ‫מודול‬ ‫לפני‬ ‫שמתבצעת‬
110
SUPER FIFOSUPER FIFO
-‫מה‬ ‫המידע‬ ‫את‬ ‫ייקרא‬ ‫זה‬ ‫מודול‬-‫מה‬ ‫המידע‬ ‫את‬ ‫ייקרא‬ ‫זה‬ ‫מודול‬FIFO_WRITERFIFO_WRITER
-‫ב‬ ‫סקטורים‬ ‫שלושה‬ ‫בין‬ ‫אותו‬ ‫וייפזר‬-‫ב‬ ‫סקטורים‬ ‫שלושה‬ ‫בין‬ ‫אותו‬ ‫וייפזר‬RAMRAM.‫יחיד‬.‫יחיד‬
‫בצורה‬ ‫זאת‬ ‫לעומת‬ ‫ייקרא‬ ‫שיאוכסן‬ ‫המידע‬‫בצורה‬ ‫זאת‬ ‫לעומת‬ ‫ייקרא‬ ‫שיאוכסן‬ ‫המידע‬
‫סקטוריאלית‬‫סקטוריאלית‬
‫מעין‬ ‫מתפקד‬ ‫סקטור‬ ‫כל‬FIFO‫עצמאי‬
‫התחלה‬ ‫כתובת‬ ‫מוגדר‬ ‫אחד‬ ‫לכל‬ ‫כאשר‬
.‫סיום‬ ‫וכתובת‬
-‫כ‬ ‫יש‬ ‫סקטור‬ ‫לכל‬10‫למינימום‬ ‫מעבר‬ ‫תאים‬
-‫ל‬ ‫להיערך‬ ‫המאפשר‬ ‫דבר‬ ,‫ההכרחי‬HALT
‫של‬ ‫באורך‬80- ‫מה‬ ‫המגיע‬ ‫סייקלים‬flash.
111
-‫ה‬ ‫גודל‬-‫ה‬ ‫גודל‬FIFOFIFO
-‫ה‬ ‫של‬ ‫מהסקטור‬ ‫והקריאה‬ ‫הכתיבה‬-‫ה‬ ‫של‬ ‫מהסקטור‬ ‫והקריאה‬ ‫הכתיבה‬YY‫לכן‬ ‫מתמלא‬ ‫לא‬ ‫הוא‬ ‫לכן‬ ‫במקביל‬ ‫מתבצעת‬‫לכן‬ ‫מתמלא‬ ‫לא‬ ‫הוא‬ ‫לכן‬ ‫במקביל‬ ‫מתבצעת‬
.‫כתובות‬ ‫בשני‬ ‫נסתפק‬.‫כתובות‬ ‫בשני‬ ‫נסתפק‬
‫של‬ ‫מהסקטור‬ ‫הקריאה‬‫של‬ ‫מהסקטור‬ ‫הקריאה‬CBCB,,CRCR‫ב‬ ‫כבר‬ ‫נמצא‬ ‫הבלוק‬ ‫כל‬ ‫כאשר‬ ‫מתחיל‬‫ב‬ ‫כבר‬ ‫נמצא‬ ‫הבלוק‬ ‫כל‬ ‫כאשר‬ ‫מתחיל‬FIFOFIFO..
‫יהיו‬ ‫ביותר‬ ‫הקיצוני‬ ‫במקרה‬‫יהיו‬ ‫ביותר‬ ‫הקיצוני‬ ‫במקרה‬6464‫עוד‬ ‫של‬ ‫תוספת‬ ‫קיבלנו‬ .‫אחד‬ ‫לכל‬ ‫קידודים‬‫עוד‬ ‫של‬ ‫תוספת‬ ‫קיבלנו‬ .‫אחד‬ ‫לכל‬ ‫קידודים‬128128
.‫כתובות‬.‫כתובות‬
‫סה"כ‬‫סה"כ‬130130-‫כ‬ ‫הוספנו‬ ,‫דרושות‬ ‫כתובות‬-‫כ‬ ‫הוספנו‬ ,‫דרושות‬ ‫כתובות‬3030,‫נוספות‬ ‫כתובות‬,‫נוספות‬ ‫כתובות‬1010‫לכל‬‫לכל‬SECSEC‫מנת‬ ‫על‬ .‫מנת‬ ‫על‬ .
‫ה‬ ‫שבו‬ ‫מצב‬ ‫עם‬ ‫להתמודד‬‫ה‬ ‫שבו‬ ‫מצב‬ ‫עם‬ ‫להתמודד‬FLASHFLASH‫נותן‬‫נותן‬HALTHALT‫מרווח‬ ‫נותנת‬ ‫אקסטרה‬ ‫כתובת‬ ‫כל‬ .‫מרווח‬ ‫נותנת‬ ‫אקסטרה‬ ‫כתובת‬ ‫כל‬ .
‫של‬ ‫אגירה‬‫של‬ ‫אגירה‬88‫סייקלים-סה"כ‬‫סייקלים-סה"כ‬8080..
112
-‫ל‬ ‫כתיבה‬-‫ל‬ ‫כתיבה‬FIFOFIFO‫פעולה‬ ‫–עקרון‬‫פעולה‬ ‫–עקרון‬
‫שרגל‬ ‫בתנאי‬ ‫מהקווים‬ ‫נקרא‬ ‫שנכתב‬ ‫המידע‬‫שרגל‬ ‫בתנאי‬ ‫מהקווים‬ ‫נקרא‬ ‫שנכתב‬ ‫המידע‬WRWR.‫באחד‬ ‫נמצאת‬.‫באחד‬ ‫נמצאת‬
wr_sectorwr_sector- ‫ביטים‬ ‫שני‬- ‫ביטים‬ ‫שני‬INPUTINPUT‫תתבצע‬ ‫כתיבה‬ .‫לכתוב‬ ‫סקטור‬ ‫לאיזה‬ ‫המציינים‬‫תתבצע‬ ‫כתיבה‬ .‫לכתוב‬ ‫סקטור‬ ‫לאיזה‬ ‫המציינים‬
‫ש‬ ‫-כאמור‬‫ש‬ ‫-כאמור‬WRWR‫.באחד‬‫.באחד‬
,‫סקטור‬ ‫לאותו‬ ‫המוקצות‬ ‫הכתובת‬ ‫של‬ ‫העליון‬ ‫לגבול‬ ‫מגיעים‬ ‫מסוים‬ ‫בסקטור‬ ‫כאשר‬,‫סקטור‬ ‫לאותו‬ ‫המוקצות‬ ‫הכתובת‬ ‫של‬ ‫העליון‬ ‫לגבול‬ ‫מגיעים‬ ‫מסוים‬ ‫בסקטור‬ ‫כאשר‬
.‫סקטור‬ ‫באותו‬ ‫הראשונה‬ ‫לכתובת‬ ‫מתבצעת‬ ‫הבאה‬ ‫הכתיבה‬.‫סקטור‬ ‫באותו‬ ‫הראשונה‬ ‫לכתובת‬ ‫מתבצעת‬ ‫הבאה‬ ‫הכתיבה‬
113
FIFO signals WRFIFO signals WR
‫בכניסה‬ ‫המידע‬
‫של‬ ‫בעליה‬ ‫נכתב‬
WR
‫צריך‬ ‫המידע‬
‫להיכתב‬
‫לסקטור‬1
‫נכתב‬ ‫המידע‬
‫לכתובת‬8
‫לראות‬ ‫ניתן‬
‫אחריי‬ ‫מחזור‬
‫הקידום‬ ‫את‬
-‫ל‬ ‫בכתובת‬9
114
-‫מ‬ ‫קריאה‬-‫מ‬ ‫קריאה‬FIFOFIFO‫פעולה‬ ‫–עקרון‬‫פעולה‬ ‫–עקרון‬
‫מה‬ ‫נקרא‬ ‫המידע‬‫מה‬ ‫נקרא‬ ‫המידע‬FIFOFIFO:‫סקטוריאלית‬ ‫בצורה‬:‫סקטוריאלית‬ ‫בצורה‬
Y,CB,CRY,CB,CR.‫חלילה‬ ‫וחוזר‬.‫חלילה‬ ‫וחוזר‬
-‫ה‬-‫ה‬FIFOFIFO‫במעבר‬ ‫השליטה‬ ‫כלומר‬ ,‫אדיש‬ ‫מודול‬ ‫הוא‬‫במעבר‬ ‫השליטה‬ ‫כלומר‬ ,‫אדיש‬ ‫מודול‬ ‫הוא‬
.‫מבחוץ‬ ‫מתבצעת‬ ‫הסקטורים‬ ‫בין‬.‫מבחוץ‬ ‫מתבצעת‬ ‫הסקטורים‬ ‫בין‬
‫רגל‬ ,‫לקרוא‬ ‫רוצים‬ ‫ממנו‬ ‫בסקטור‬ ‫מידע‬ ‫יש‬ ‫כאשר‬‫רגל‬ ,‫לקרוא‬ ‫רוצים‬ ‫ממנו‬ ‫בסקטור‬ ‫מידע‬ ‫יש‬ ‫כאשר‬
EMPTYEMPTY-‫ל‬ ‫יורדת‬-‫ל‬ ‫יורדת‬00‫למידע‬ ‫שמתחבר‬ ‫והמודול‬‫למידע‬ ‫שמתחבר‬ ‫והמודול‬
.‫מידע‬ ‫לקבל‬ ‫יכול‬ ‫היוצא‬.‫מידע‬ ‫לקבל‬ ‫יכול‬ ‫היוצא‬
‫מתבצע‬ ‫החוצה‬ ‫מידע‬ ‫של‬ ‫נאות:הקריאה‬ ‫גילוי‬‫מתבצע‬ ‫החוצה‬ ‫מידע‬ ‫של‬ ‫נאות:הקריאה‬ ‫גילוי‬
.‫שעון‬ ‫בירידת‬.‫שעון‬ ‫בירידת‬
115
FIFO signals RDFIFO signals RD
‫רגל‬
EMPTY
-‫למעלה‬
‫מידע‬ ‫אין‬
‫הנוכחי‬ ‫הסקטור‬
‫מבצעת‬ ‫ממנו‬
‫שליטה‬ -‫קריאה‬
‫מבחוץ‬
‫אחריי‬ ‫לראות‬ ‫ניתן‬
‫את‬ ‫מחזורים‬ ‫שני‬
‫המידע‬-‫מה‬ ‫יוצא‬
RAM‫ורגל‬
EMPTY‫למטה‬
‫מתבצעת‬
‫לסקטור‬ ‫כתיבה‬
‫קוראים‬ ‫ממנו‬
116
FIFO signals RD-swap sectorsFIFO signals RD-swap sectors
‫בסקטור‬ ‫המידע‬
1‫ויש‬ ‫מסתיים‬
‫לסקטור‬ ‫מעבר‬
2.‫בתור‬ ‫הבא‬
‫סקטור‬ ‫בין‬ ‫המעבר‬2-‫ל‬3
‫מהמעבר‬ ‫מהיר‬ ‫יותר‬ ‫הרבה‬
‫כבר‬ ‫שהבלוק‬ ‫כיוון‬ ‫הקודם‬
‫בסקטור‬ ‫כולו‬ ‫מוכן‬2‫אין‬ ‫ולכן‬
.‫לקריאה‬ ‫קריאה‬ ‫בין‬ ‫השהיות‬
.‫ברצף‬ ‫זורם‬ ‫המידע‬
‫סקטור‬ ‫בין‬ ‫המעבר‬3-‫ל‬
1‫מאותה‬ ‫מהיר‬ ‫כן‬ ‫גם‬
‫ההחלפה‬ ‫לאחר‬ .‫סיבה‬
‫לסקטור‬1‫לראות‬ ‫ניתן‬
‫ש‬EMPTY‫למעלה‬
-‫ב‬ ‫שהטיפול‬ ‫כיוון‬
‫סקטורים‬2,3‫היה‬
‫הגעה‬ ‫מקצב‬ ‫יותר‬ ‫מהיר‬
.‫חדש‬ ‫בלוק‬ ‫של‬117
‫שנבחנו‬ ‫אלטרנטיבות‬‫שנבחנו‬ ‫אלטרנטיבות‬
-‫ב‬ ‫שימוש‬-‫ב‬ ‫שימוש‬33FIFOFIFO.‫סקטורים‬ ‫לכל‬ ‫אחד‬ .‫נפרדים‬.‫סקטורים‬ ‫לכל‬ ‫אחד‬ .‫נפרדים‬
‫למימוש‬ ‫יותר‬ ‫קל‬ :‫יתרונות‬‫למימוש‬ ‫יותר‬ ‫קל‬ :‫יתרונות‬
.‫מקום‬ ‫בזבוז‬ :‫חסרונות‬.‫מקום‬ ‫בזבוז‬ :‫חסרונות‬
‫ה‬ ‫ידי‬ ‫על‬ ‫יתנהל‬ ‫לקריאה‬ ‫הסקטורים‬ ‫ניהול‬‫ה‬ ‫ידי‬ ‫על‬ ‫יתנהל‬ ‫לקריאה‬ ‫הסקטורים‬ ‫ניהול‬FIFOFIFO::
‫למימוש‬ ‫יותר‬ ‫יתרונות:קל‬‫למימוש‬ ‫יותר‬ ‫יתרונות:קל‬
:‫חסרונות‬:‫חסרונות‬FIFOFIFO‫עם‬ ‫אדיש‬ ‫מודול‬ ‫הוא‬ ‫במהותו‬‫עם‬ ‫אדיש‬ ‫מודול‬ ‫הוא‬ ‫במהותו‬
‫ברורה‬ ‫מאוד‬ ‫מסגרת‬‫ברורה‬ ‫מאוד‬ ‫מסגרת‬
118
Huffman codingHuffman coding
119
HUFFMAN_CODEHUFFMAN_CODE
‫בשלושת‬ ‫השמור‬ ‫המידע‬ ‫את‬ ‫ייקח‬ ‫זה‬ ‫מודול‬ -‫מטרה‬‫בשלושת‬ ‫השמור‬ ‫המידע‬ ‫את‬ ‫ייקח‬ ‫זה‬ ‫מודול‬ -‫מטרה‬
-‫ה‬-‫ה‬SECTORSSECTORS-‫ה‬ ‫של‬-‫ה‬ ‫של‬SUPER_FIFOSUPER_FIFO‫אותם‬ ‫וימיר‬‫אותם‬ ‫וימיר‬
‫באמצעות‬‫באמצעות‬44‫היוצא‬ ‫המידע‬ .‫שונות‬ ‫קידוד‬ ‫טבלאות‬‫היוצא‬ ‫המידע‬ .‫שונות‬ ‫קידוד‬ ‫טבלאות‬
‫בשרשרת‬ ‫הבא‬ ‫למודול‬ ‫מועבר‬ ‫זה‬ ‫ממודול‬‫בשרשרת‬ ‫הבא‬ ‫למודול‬ ‫מועבר‬ ‫זה‬ ‫ממודול‬
SERIAL_TO_PARALLELSERIAL_TO_PARALLEL..
120
‫המודול‬ ‫עבודת‬ ‫תיאור‬‫המודול‬ ‫עבודת‬ ‫תיאור‬
‫מסקטור‬ ‫תחילה‬ ‫לקרוא‬ ‫מאותחל‬ ‫המודול‬‫מסקטור‬ ‫תחילה‬ ‫לקרוא‬ ‫מאותחל‬ ‫המודול‬YY‫המציין‬ ‫סיגנל‬ ‫נכנס‬ ‫כאשר‬ ‫פעולתו‬ ‫את‬ ‫מתחיל‬ ‫המודול‬ .‫המציין‬ ‫סיגנל‬ ‫נכנס‬ ‫כאשר‬ ‫פעולתו‬ ‫את‬ ‫מתחיל‬ ‫המודול‬ .
‫שסקטור‬‫שסקטור‬YY‫של‬ ‫הכתובת‬ ‫של‬ ‫חישוב‬ ‫מתבצע‬ ‫ובאמצעותם‬ ‫מגיע‬ ‫והאפסים‬ ‫הקטגוריה‬ ‫של‬ ‫המידע‬ .‫ריק‬ ‫איננו‬‫של‬ ‫הכתובת‬ ‫של‬ ‫חישוב‬ ‫מתבצע‬ ‫ובאמצעותם‬ ‫מגיע‬ ‫והאפסים‬ ‫הקטגוריה‬ ‫של‬ ‫המידע‬ .‫ריק‬ ‫איננו‬
‫ל‬ ‫)בהתאם‬ ‫המתאים‬ ‫הקידוד‬‫ל‬ ‫)בהתאם‬ ‫המתאים‬ ‫הקידוד‬Y,CB,CR,AC,DCY,CB,CR,AC,DC‫הקידוד‬ .‫הקידוד‬ ‫אורך‬ ‫את‬ ‫בתוכו‬ ‫מכיל‬ ‫היוצא‬ ‫הקידוד‬ .(‫הקידוד‬ .‫הקידוד‬ ‫אורך‬ ‫את‬ ‫בתוכו‬ ‫מכיל‬ ‫היוצא‬ ‫הקידוד‬ .(
‫ה‬ ‫עם‬ ‫יחד‬ ‫החוצה‬ ‫יוצא‬‫ה‬ ‫עם‬ ‫יחד‬ ‫החוצה‬ ‫יוצא‬OFFSETOFFSET‫ידי‬ ‫על‬ ‫הושהה‬ ‫אך‬ , ‫קידוד‬ ‫עבר‬ ‫שלא‬‫ידי‬ ‫על‬ ‫הושהה‬ ‫אך‬ , ‫קידוד‬ ‫עבר‬ ‫שלא‬PIPE-LINEPIPE-LINE..
‫למודול‬ ‫מועבר‬ ‫היוצא‬ ‫המידע‬‫למודול‬ ‫מועבר‬ ‫היוצא‬ ‫המידע‬SERIAL TO PARALLELSERIAL TO PARALLEL‫בביט‬ ‫מלווה‬‫בביט‬ ‫מלווה‬VALIDVALID..
:‫במימוש‬ ‫חשובים‬ ‫עקרונות‬:‫במימוש‬ ‫חשובים‬ ‫עקרונות‬
-‫ב‬ ‫שימוש‬-‫ב‬ ‫שימוש‬ROMROM-‫ה‬ ‫בתוך‬ ‫והתנועה‬ .‫זו‬ ‫אחר‬ ‫זה‬ ‫שמורות‬ ‫הטבלאות‬ ‫שארבעת‬ ‫כך‬ ‫יחיד‬-‫ה‬ ‫בתוך‬ ‫והתנועה‬ .‫זו‬ ‫אחר‬ ‫זה‬ ‫שמורות‬ ‫הטבלאות‬ ‫שארבעת‬ ‫כך‬ ‫יחיד‬ROMROM‫ביחס‬ ‫היא‬‫ביחס‬ ‫היא‬
‫לארבע‬‫לארבע‬OffsetsOffsets..
-‫ב‬ ‫שורה‬ ‫כל‬ ‫בתחילת‬-‫ב‬ ‫שורה‬ ‫כל‬ ‫בתחילת‬ROMROM-‫ה‬ ‫אורך‬ ‫שמור‬-‫ה‬ ‫אורך‬ ‫שמור‬DATADATA.‫שורה‬ ‫אותה‬ ‫של‬.‫שורה‬ ‫אותה‬ ‫של‬
-‫מה‬ ‫שנקרא‬ ‫המידע‬-‫מה‬ ‫שנקרא‬ ‫המידע‬SUPER_FIFOSUPER_FIFO‫של‬ ‫בלוק‬ ‫קודם‬ ‫כלומר‬ ,‫סקטוריאלית‬ ‫בצורה‬ ‫נקרא‬‫של‬ ‫בלוק‬ ‫קודם‬ ‫כלומר‬ ,‫סקטוריאלית‬ ‫בצורה‬ ‫נקרא‬YY,‫של‬ ‫בלוק‬ ,,‫של‬ ‫בלוק‬ ,
CbCb‫של‬ ‫בלוק‬‫של‬ ‫בלוק‬CrCr.‫חלילה‬ ‫וחוזר‬.‫חלילה‬ ‫וחוזר‬
121
HUFFMAN_CODE diagramHUFFMAN_CODE diagram
PIPE
LINE
X2
OFFSET [11]
CATEGORY[4]
OFFSET [11]
OFFSET_LENGTH[4]
Logic implementation:
10*zeros+category+offs
et
ZEROS[4]
ROM
CONTAIN
4
HUFFMAN
TABLES
The encode
result [16]
Length of
encode
data[4]
ST_B,EN_B[2]
Calc Which
table to
use offset
RD_SECTOR[2]
122
‫הסיגנלים‬ ‫תאור‬‫הסיגנלים‬ ‫תאור‬ ‫ברום‬ ‫המידע‬ ‫נגמר‬
-‫ה‬ ‫המידע‬ ‫מגיע‬1‫מידע‬ ,DC.
‫באמצעות‬ ‫מקודד‬ ‫המידע‬
-‫ב‬ ‫שלוש‬ ‫טבלה‬ROM
‫הבא‬ ‫המידע‬
‫מטבלה‬ ‫מקודד‬2
-‫ב‬ROM
-‫ה‬ ‫קידוד‬ ‫תוצאות‬DC
-‫ה‬ ‫קידוד‬ ‫תוצאות‬AC.
‫ניתן‬ ‫מתחת‬ ‫השורות‬ ‫בשני‬
‫ההפרדה‬ ‫את‬ ‫לראות‬
.‫ואורכו‬ ‫לקידוד‬
VALID_OUT
‫הסיגנלים‬ ‫בשני‬
-‫ה‬ ‫את‬ ‫יש‬ ‫הללו‬
OFFSET
-‫אורכו‬ ‫ואת‬
‫כפונקציה‬ ‫נלקח‬
‫הקטגוריה‬ ‫של‬
123
‫שנבחנו‬ ‫אלטרנטיבות‬‫שנבחנו‬ ‫אלטרנטיבות‬
-‫ב‬ ‫שימוש‬-‫ב‬ ‫שימוש‬44.‫טבלה‬ ‫לכל‬ ‫אחד‬ .‫נפרדים‬ ‫רומים‬.‫טבלה‬ ‫לכל‬ ‫אחד‬ .‫נפרדים‬ ‫רומים‬
.‫אין‬ :‫יתרונות‬.‫אין‬ :‫יתרונות‬
.‫מקום‬ ‫בזבוז‬ :‫חסרונות‬.‫מקום‬ ‫בזבוז‬ :‫חסרונות‬
‫ה‬ ‫ידי‬ ‫על‬ ‫יתנהל‬ ‫לקריאה‬ ‫הסקטורים‬ ‫ניהול‬‫ה‬ ‫ידי‬ ‫על‬ ‫יתנהל‬ ‫לקריאה‬ ‫הסקטורים‬ ‫ניהול‬FIFOFIFO::
‫למימוש‬ ‫יותר‬ ‫יתרונות:קל‬‫למימוש‬ ‫יותר‬ ‫יתרונות:קל‬
‫ה‬ ‫של‬ ‫כקליינט‬ ‫מתפקד‬ ‫זה‬ ‫מודול‬ :‫חסרונות‬‫ה‬ ‫של‬ ‫כקליינט‬ ‫מתפקד‬ ‫זה‬ ‫מודול‬ :‫חסרונות‬FIFOFIFO
.‫הגיוני‬ ‫יותר‬ ‫זו‬ ‫בתצורה‬ ‫ומימושו‬.‫הגיוני‬ ‫יותר‬ ‫זו‬ ‫בתצורה‬ ‫ומימושו‬
124
Bits collectionBits collection
125
SERIAL2PARALLELSERIAL2PARALLEL
-‫ה‬ ‫ממודול‬ ‫היוצא‬ ‫המידע‬ ‫את‬ ‫ייקח‬ ‫זה‬ ‫מודול‬ :‫מטרה‬-‫ה‬ ‫ממודול‬ ‫היוצא‬ ‫המידע‬ ‫את‬ ‫ייקח‬ ‫זה‬ ‫מודול‬ :‫מטרה‬
HUFFMAN_CODEHUFFMAN_CODE-‫מ‬ ‫הנע‬ ‫בגודל‬ ‫המגיע‬ ‫מידע‬ --‫מ‬ ‫הנע‬ ‫בגודל‬ ‫המגיע‬ ‫מידע‬ -22‫ועד‬ ‫ביט‬‫ועד‬ ‫ביט‬2626
.‫ביט‬.‫ביט‬
‫יוצא‬ ‫הזזה.המידע‬ ‫רגיסטר‬ ‫על‬ ‫מולבש‬ ‫זה‬ ‫מידע‬‫יוצא‬ ‫הזזה.המידע‬ ‫רגיסטר‬ ‫על‬ ‫מולבש‬ ‫זה‬ ‫מידע‬‫יש‬ ‫כאשר‬‫יש‬ ‫כאשר‬1616‫ביט‬‫ביט‬
.‫הגיעו‬ ‫דרכו‬ ‫המכסימלי‬ ‫מהבס‬ ‫סינון‬ ‫שעברו‬.‫הגיעו‬ ‫דרכו‬ ‫המכסימלי‬ ‫מהבס‬ ‫סינון‬ ‫שעברו‬
‫ברגע‬ ‫דגל‬ ‫וירים‬ ‫דרכו‬ ‫שעברו‬ ‫הבלוקים‬ ‫מספר‬ ‫את‬ ‫יספור‬ ‫זה‬ ‫מודול‬‫ברגע‬ ‫דגל‬ ‫וירים‬ ‫דרכו‬ ‫שעברו‬ ‫הבלוקים‬ ‫מספר‬ ‫את‬ ‫יספור‬ ‫זה‬ ‫מודול‬
‫מאוד‬ ‫וחשובה‬ ‫בהמשך‬ ‫למודולים‬ ‫תשלח‬ ‫זו‬ ‫רגל‬ .‫העבודה‬ ‫שנגמרה‬‫מאוד‬ ‫וחשובה‬ ‫בהמשך‬ ‫למודולים‬ ‫תשלח‬ ‫זו‬ ‫רגל‬ .‫העבודה‬ ‫שנגמרה‬
.‫התמונה‬ ‫של‬ ‫הסופית‬ ‫לסגירתה‬.‫התמונה‬ ‫של‬ ‫הסופית‬ ‫לסגירתה‬
126
SERIAL2PARALLEL diagram 1SERIAL2PARALLEL diagram 1
‫למודול‬ ‫נכנס‬ ‫הופמן‬ ‫קידוד‬ ‫למודול‬ ‫נכנס‬ ‫הקידוד‬ ‫אורך‬ OFFSET‫למודול‬ ‫נכנס‬ ‫אורך‬OFFSET
50000000000011001 0001111011 7
1100100000000000 00000111101100000000
‫אורך‬‫משותף‬‫ביצוע‬OR‫הקודמים‬ ‫הבסים‬ ‫בין‬
11001111101000000000
000000000000000000000000000000001001
‫חדש‬ ‫מידע‬ ‫למקם‬ ‫ניתן‬ ‫שממנו‬ ‫המקום‬
00000000000000000000110011111010
1001
‫באורך‬ ‫מידע‬ ‫כבר‬ ‫נמצא‬ ‫שברגיסטר‬ ‫בדיאגראמה‬ ‫לראות‬ ‫ניתן‬4‫מגיע‬ ‫החדש‬ ‫המידע‬ ‫כניסת‬ ‫ולאחר‬
-‫ל‬ ‫המידע‬ ‫אורך‬15‫שה‬ ‫רק‬ ‫מתבצעת‬ ‫החוצה‬ ‫מידע‬ ‫הוצאת‬ .16‫ביטים‬MSB.‫מלאים‬
‫המידע‬ ‫כל‬ ‫את‬ ‫המחזיק‬ ‫הזזה‬ ‫רגיסטר‬
‫החוצה‬ ‫יצא‬ ‫לא‬ ‫שעדיין‬
‫חדש‬ ‫מידע‬ ‫למקם‬ ‫ניתן‬ ‫שממנו‬ ‫המקום‬
127
SERIAL2PARALLEL diagram 2SERIAL2PARALLEL diagram 2
‫למודול‬ ‫נכנס‬ ‫הופמן‬ ‫קידוד‬ ‫למודול‬ ‫נכנס‬ ‫הקידוד‬ ‫אורך‬ OFFSET‫למודול‬ ‫נכנס‬ ‫אורך‬OFFSET
50000000000011001 0001111011 7
1100100000000000 00000111101100000000
‫אורך‬‫משותף‬‫ביצוע‬OR‫הקודמים‬ ‫הבסים‬ ‫בין‬
11001111101000000000
100111001111101000000000000000000000 ‫המידע‬ ‫כל‬ ‫את‬ ‫המחזיק‬ ‫הזזה‬ ‫רגיסטר‬
‫החוצה‬ ‫יצא‬ ‫לא‬ ‫שעדיין‬
1100111110111001
‫לקובץ‬ ‫לכתיבה‬ ‫מוכנים‬ ‫החוצה‬ ‫שיוצאים‬ ‫הבייטים‬ ‫שני‬JPG
100111001111101110011111010000000000
-‫מ‬ ‫ביותר‬ ‫מלא‬ ‫הזזה‬ ‫רגיסטר‬16‫עולה‬ ‫זו‬ ‫זמן‬ ‫בנקודת‬ ‫שכבר‬ ‫כיוון‬ ,‫החוצה‬ ‫ייקרא‬ ‫זה‬ ‫מידע‬ ‫הבא‬ ‫בסייקל‬ .‫ביטים‬DATA_VALID
.‫החוצה‬
128
SERIAL2PARALLEL diagram 3SERIAL2PARALLEL diagram 3
‫למודול‬ ‫נכנס‬ ‫הופמן‬ ‫קידוד‬ ‫למודול‬ ‫נכנס‬ ‫הקידוד‬ ‫אורך‬ OFFSET‫למודול‬ ‫נכנס‬ ‫אורך‬OFFSET
20000000000000001 0000000001 1
0000000000000000
0100
00100000000000000000
‫אורך‬‫משותף‬‫ביצוע‬OR‫הקודמים‬ ‫הבסים‬ ‫בין‬
000000000001100000000000000000000000
100111001111101110011111010000000000
10011111010000000000000000000000
0000
011000000000000000000000
100111110101100000000000000000000000
‫ימינה‬ ‫הזזה‬ ‫עם‬ ‫להיכתב‬ ‫שצריך‬ ‫החדש‬ ‫המידע‬ ‫את‬ ‫מחזיק‬ ‫זה‬ ‫בס‬
‫אך‬ ‫הזזה‬ ‫ברגיסטר‬ ‫להישאר‬ ‫שצריך‬ ‫הישן‬ ‫המידע‬ ‫את‬ ‫מחזיק‬ ‫זה‬ ‫בס‬
‫ביותר‬ ‫העדכני‬ ‫המידע‬ ‫שהוא‬ ‫כיוון‬ ‫שמאלה‬ ‫מוזז‬ ‫הוא‬
‫ביצוע‬OR‫הקודמים‬ ‫הבסים‬ ‫בין‬
‫להידרס‬ ‫יכול‬ ‫בשחור‬ ‫המידע‬ -‫בתוכו‬ ‫המידע‬ ‫עדכון‬ ‫לפני‬ ‫ההזזה‬ ‫רגיסטר‬
10011111010110000000000000000000
0000
‫העדכון‬ ‫לאחר‬ ‫ההזזה‬ ‫רגיסטר‬
129
‫מידע‬ ‫להניח‬ ‫ניתן‬ ‫היכן‬ ‫המציין‬ ‫פוינטר‬
‫למודול‬ ‫מידע‬ ‫נכנס‬ ‫ואורכו‬ ‫הופמן‬ ‫קידוד‬
OFFSET
‫ואורכו‬
OFFSET‫עריכה‬ ‫לאחר‬ ‫.וקידוד‬
‫אורך‬OFFSET
‫וקידוד‬
‫במידע‬ ‫מתמלא‬ ‫זה‬ ‫רגיסטר‬
‫בהתאם‬ ‫מהבסים‬ ‫שנגזר‬
‫המדויק‬ ‫לגודלם‬
‫עיבודו‬ ‫ותהליך‬ -‫נכנס‬ ‫מידע‬ ‫של‬ ‫תיאור‬
130
‫מידע‬ ‫להניח‬ ‫ניתן‬ ‫היכן‬ ‫המציין‬ ‫פוינטר‬
‫למודול‬ ‫מידע‬ ‫נכנס‬ ‫ואורכו‬ ‫הופמן‬ ‫קידוד‬
OFFSET
‫ואורכו‬
‫החוצה‬ ‫מידע‬ ‫להעביר‬ ‫ניתן‬ ‫ממנו‬ ‫המיקום‬ ‫את‬ ‫המחזיק‬ ‫פרמטר‬
‫עיבודו‬ ‫ותהליך‬ -‫נכנס‬ ‫מידע‬ ‫של‬ ‫תיאור‬
‫אורך‬OFFSET‫וקידוד‬ OFFSET‫עריכה‬ ‫לאחר‬ ‫.וקידוד‬
‫מוכן‬ ‫החוצה‬ ‫מידע‬
‫החוצה‬ ‫הנכתב‬ ‫מידע‬‫להיות‬ ‫והופך‬ ‫החוצה‬ ‫נכתב‬ ‫שאינו‬ ‫מידע‬
-‫ב‬ ‫המידע‬MSB‫הנוכחי‬ ‫המידע‬ ‫הוצאת‬ ‫לאחר‬
‫לאחר‬ ‫להיכתב‬ ‫צריך‬ ‫שנכנס‬ ‫החדש‬ ‫המידע‬
‫החוצה‬ ‫הכתיבה‬ ‫לאחר‬ ‫שנותרה‬ ‫המידע‬ ‫שארית‬
131
:‫קיצוני‬ ‫תרחיש‬:‫קיצוני‬ ‫תרחיש‬
.‫נדיר‬ ‫מאוד‬ ‫קידוד‬ ‫זהו‬.‫נדיר‬ ‫מאוד‬ ‫קידוד‬ ‫זהו‬
– ‫הנ"ל‬ ‫המידע‬ ‫של‬ ‫רצף‬ ‫כלשהו‬ ‫בלוק‬ ‫עבור‬ ‫ומגיע‬ ‫במידה‬– ‫הנ"ל‬ ‫המידע‬ ‫של‬ ‫רצף‬ ‫כלשהו‬ ‫בלוק‬ ‫עבור‬ ‫ומגיע‬ ‫במידה‬00‫קטגוריה‬ ,‫אפסים‬‫קטגוריה‬ ,‫אפסים‬1010
‫קידוד‬ ‫ואורך‬‫קידוד‬ ‫ואורך‬1616‫של‬ ‫באורך‬ ‫מידע‬ ‫זה‬ ‫למודול‬ ‫נכנס‬ .‫של‬ ‫באורך‬ ‫מידע‬ ‫זה‬ ‫למודול‬ ‫נכנס‬ .2626‫לנקות‬ ‫מסוגל‬ ‫הוא‬ ‫כאשר‬‫לנקות‬ ‫מסוגל‬ ‫הוא‬ ‫כאשר‬1616‫כל‬‫כל‬
.‫אגירה‬ ‫של‬ ‫מצב‬ ‫להיווצר‬ ‫עלול‬ ‫היה‬ ‫זה‬ ‫במצב‬ .‫סיקל‬.‫אגירה‬ ‫של‬ ‫מצב‬ ‫להיווצר‬ ‫עלול‬ ‫היה‬ ‫זה‬ ‫במצב‬ .‫סיקל‬
.‫מענה‬ ‫קיבל‬ ‫זה‬ ‫קיצוני‬ ‫תרחיש‬ ‫גם‬ ‫אך‬.‫מענה‬ ‫קיבל‬ ‫זה‬ ‫קיצוני‬ ‫תרחיש‬ ‫גם‬ ‫אך‬
‫מרים‬ ‫הוא‬ ‫אליו‬ ‫מימין‬ ‫ששוכב‬ ‫מידע‬ ‫שיש‬ ‫שברגע‬ ‫אדום‬ ‫קו‬ ‫מוגדר‬ ‫למודול‬‫מרים‬ ‫הוא‬ ‫אליו‬ ‫מימין‬ ‫ששוכב‬ ‫מידע‬ ‫שיש‬ ‫שברגע‬ ‫אדום‬ ‫קו‬ ‫מוגדר‬ ‫למודול‬HALTHALT
.‫עליו‬ ‫שנאגר‬ ‫המידע‬ ‫את‬ ‫מרוקן‬ ,‫הנכנס‬ ‫למידע‬.‫עליו‬ ‫שנאגר‬ ‫המידע‬ ‫את‬ ‫מרוקן‬ ,‫הנכנס‬ ‫למידע‬
.‫המידע‬ ‫של‬ ‫מחודשת‬ ‫הזרמה‬ ‫ומאפשר‬.‫המידע‬ ‫של‬ ‫מחודשת‬ ‫הזרמה‬ ‫ומאפשר‬
132
‫הבלוקים‬ ‫ספירת‬‫הבלוקים‬ ‫ספירת‬
‫תמונה‬ ‫סיום‬‫תמונה‬ ‫סיום‬
‫שהסתיימו‬ ‫בלוקים‬ ‫ספירת‬ ‫הנוכחית‬ ‫התמונה‬ ‫של‬ ‫אחרון‬ ‫מידע‬
Data valid‫בגודל‬ -‫שנותרה‬ ‫המידע‬ ‫ששארית‬ ‫מנת‬ ‫על‬ ‫סייקל‬ ‫עוד‬ ‫נמתח‬1‫החוצה‬ ‫יצא‬ ‫בייט‬
133
Writing the jpeg fileWriting the jpeg file
134
FLASH_WRITERFLASH_WRITER
:‫מטרות‬:‫מטרות‬
11‫בפורמט‬ ‫התמונה‬ ‫את‬ ‫יכתוב‬ ‫זה‬ ‫מודול‬ .‫בפורמט‬ ‫התמונה‬ ‫את‬ ‫יכתוב‬ ‫זה‬ ‫מודול‬ .JPGJPG-‫ל‬-‫ל‬FLASHFLASH..
22.‫הקידוד‬ ‫בוצע‬ ‫באמצעותה‬ ‫הקוונטיזציה‬ ‫טבלת‬ ‫את‬ ‫לקובץ‬ ‫יכניס‬ ‫זה‬ ‫.מודול‬.‫הקידוד‬ ‫בוצע‬ ‫באמצעותה‬ ‫הקוונטיזציה‬ ‫טבלת‬ ‫את‬ ‫לקובץ‬ ‫יכניס‬ ‫זה‬ ‫.מודול‬
33‫הנתונה‬ ‫התמונה‬ ‫את‬ ‫המאפיינים‬ ‫הפרמטרים‬ ‫את‬ ‫ייקרא‬ ‫זה‬ ‫.מודול‬‫הנתונה‬ ‫התמונה‬ ‫את‬ ‫המאפיינים‬ ‫הפרמטרים‬ ‫את‬ ‫ייקרא‬ ‫זה‬ ‫.מודול‬
.‫בפורמט‬ ‫אותם‬ ‫ויישלו‬.‫בפורמט‬ ‫אותם‬ ‫ויישלו‬
44-‫ב‬ ‫שהוצמד‬ ‫המידע‬ ‫את‬ ‫ייקח‬ ‫זה‬ ‫.מודול‬-‫ב‬ ‫שהוצמד‬ ‫המידע‬ ‫את‬ ‫ייקח‬ ‫זה‬ ‫.מודול‬SERTIAL TO PARALLELSERTIAL TO PARALLEL
" ‫בייט‬ ‫בדיקת‬ ‫כדי‬ ‫תוך‬ ‫לקובץ‬ ‫אותו‬ ‫וישפוך‬" ‫בייט‬ ‫בדיקת‬ ‫כדי‬ ‫תוך‬ ‫לקובץ‬ ‫אותו‬ ‫וישפוך‬FFFF" ‫תוספת‬ ‫המחייב‬ "" ‫תוספת‬ ‫המחייב‬ "0000""
.‫אחריו‬.‫אחריו‬
135
‫המודול‬ ‫עבודת‬ ‫תיאור‬‫המודול‬ ‫עבודת‬ ‫תיאור‬
‫לרגל‬ ‫מאזין‬ ‫המודול‬‫לרגל‬ ‫מאזין‬ ‫המודול‬SHOOTSHOOT-‫ה‬ ‫של‬-‫ה‬ ‫של‬IMAGERIMAGER– ‫ה‬ ‫של‬ ‫השעון‬ ‫מול‬ ‫עובד‬ ,‫עבודתו‬ ‫בתחילת‬ ‫זה‬ ‫מודול‬ .– ‫ה‬ ‫של‬ ‫השעון‬ ‫מול‬ ‫עובד‬ ,‫עבודתו‬ ‫בתחילת‬ ‫זה‬ ‫מודול‬ .
IMAGERIMAGER, ‫המערכת‬ ‫אותה‬ ‫התמונה‬ ‫גודל‬ ‫ואת‬ ,‫המיועד‬ ‫הקובץ‬ ‫שם‬ ‫את‬ ‫קורא‬ .‫המערכת‬ ‫של‬ ‫האיטי‬ ‫השעון‬, ‫המערכת‬ ‫אותה‬ ‫התמונה‬ ‫גודל‬ ‫ואת‬ ,‫המיועד‬ ‫הקובץ‬ ‫שם‬ ‫את‬ ‫קורא‬ .‫המערכת‬ ‫של‬ ‫האיטי‬ ‫השעון‬
.‫לקודד‬ ‫הולכת‬.‫לקודד‬ ‫הולכת‬
-‫ה‬ ‫של‬ ‫כתיבה‬ ‫מתחילה‬ ‫מכן‬ ‫לאחר‬-‫ה‬ ‫של‬ ‫כתיבה‬ ‫מתחילה‬ ‫מכן‬ ‫לאחר‬INFOINFO-‫ה‬ ‫כתיבת‬ .‫המערכת‬ ‫של‬ ‫המהיר‬ ‫השעון‬ ‫עם‬-‫ה‬ ‫כתיבת‬ .‫המערכת‬ ‫של‬ ‫המהיר‬ ‫השעון‬ ‫עם‬INFOINFO‫מצריכה‬‫מצריכה‬
-‫ה‬ ‫מבנה‬ ‫עם‬ ‫עמוקה‬ ‫הכרות‬-‫ה‬ ‫מבנה‬ ‫עם‬ ‫עמוקה‬ ‫הכרות‬JPGJPG..
.‫הקובץ‬ ‫של‬ ‫נעילה‬ ‫מתבצעת‬ ‫האחרון‬ ‫המידע‬ ‫הגעת‬ ‫לאחר‬.‫הקובץ‬ ‫של‬ ‫נעילה‬ ‫מתבצעת‬ ‫האחרון‬ ‫המידע‬ ‫הגעת‬ ‫לאחר‬
:‫במימוש‬ ‫חשובים‬ ‫עקרונות‬:‫במימוש‬ ‫חשובים‬ ‫עקרונות‬
-‫ב‬ ‫שימוש‬-‫ב‬ ‫שימוש‬ROMROM-‫ה‬ ‫כל‬ ‫את‬ ‫המכיל‬ ‫יחיד‬-‫ה‬ ‫כל‬ ‫את‬ ‫המכיל‬ ‫יחיד‬INFOINFO‫לטבלת‬ ‫בהתאם‬ ,‫שייתכנו‬ ‫הקומבינציות‬ ‫בכל‬‫לטבלת‬ ‫בהתאם‬ ,‫שייתכנו‬ ‫הקומבינציות‬ ‫בכל‬
.‫הרלוונטית‬ ‫הקוונטיזציה‬.‫הרלוונטית‬ ‫הקוונטיזציה‬
": ‫קידוד‬ ‫שעבר‬ ‫בייט‬ ‫שמגיע‬ ‫ברגע‬": ‫קידוד‬ ‫שעבר‬ ‫בייט‬ ‫שמגיע‬ ‫ברגע‬FFFF" ‫להכניס‬ ‫ידאג‬ ‫זה‬ ‫מודול‬ "" ‫להכניס‬ ‫ידאג‬ ‫זה‬ ‫מודול‬ "0000.‫אחריו‬ ".‫אחריו‬ "
‫ייתן‬ ‫זה‬ ‫מודול‬‫ייתן‬ ‫זה‬ ‫מודול‬HALTHALT-‫ל‬-‫ל‬FLASHFLASH.‫לקובץ‬ ‫לכתיבה‬ ‫מוכן‬ ‫מידע‬ ‫לו‬ ‫שאין‬ ‫זמן‬ ‫כל‬.‫לקובץ‬ ‫לכתיבה‬ ‫מוכן‬ ‫מידע‬ ‫לו‬ ‫שאין‬ ‫זמן‬ ‫כל‬
136
‫עבודה‬ ‫שלבי‬ – ‫כולל‬ ‫מבט‬‫עבודה‬ ‫שלבי‬ – ‫כולל‬ ‫מבט‬
‫כתיבת‬INFO FLASH_HALT ‫המקודדים‬ ‫הבלוקים‬ ‫כתיבת‬
- ‫קובץ‬ ‫סגירת‬FFD9
‫תמונה‬ ‫לסגור‬ ‫–ניתן‬ ‫אחרון‬ ‫מידע‬
137
-‫ל‬ ‫האזנה‬ -‫עבודה‬ ‫תחילת‬-‫ל‬ ‫האזנה‬ -‫עבודה‬ ‫תחילת‬IMAGERIMAGER
‫התמונה‬ ‫מימדי‬‫הקובץ‬ ‫שם‬‫שעון‬IMAGER
‫שעון‬FLASH
138
-‫ב‬ ‫קובץ‬ ‫יצירת‬-‫ב‬ ‫קובץ‬ ‫יצירת‬FLASHFLASH
Halt‫-ל‬FLASH‫למטה‬ ‫יורד‬
-‫ל‬ ‫נכתב‬ ‫התמונה‬ ‫שם‬FLASH
139
‫כתיבת‬‫כתיבת‬INFOINFO
- ‫ל‬ ‫דרכו‬ ‫את‬ ‫סיים‬ ‫התמונה‬ ‫שם‬FLASH
-‫ל‬ ‫קריאות‬ ‫מתבצעות‬ROM‫המידע‬ .
‫פעם‬ ‫כל‬ ‫בייט‬ ‫בגודל‬ ‫יוצא‬
‫יש‬ ‫כאשר‬4‫של‬ ‫הרגל‬ ‫בייטים‬HALT-‫ל‬ ‫יורדת‬0.‫לקובץ‬ ‫נכתב‬ ‫הראשון‬ ‫והמידע‬
‫שהם‬ ‫הבייטים‬ ‫מיקום‬VALID‫בבס‬
140
-‫מ‬ ‫מגיע‬ ‫מקודד‬ ‫מידע‬-‫מ‬ ‫מגיע‬ ‫מקודד‬ ‫מידע‬SERIAL TO PARALLELSERIAL TO PARALLEL
-‫מה‬ ‫נכנס‬ ‫מידע‬SERIAL TO
PARALLEL
VALID
BIT -IN
VALID
BIT
-OUT
D_OUT
‫לפלאש‬
‫מה‬ ‫בייטים‬ ‫שני‬
LSB‫נקראים‬
‫ונכתבים‬ ‫מהבאס‬
‫בפלאש‬
‫זאת‬ ‫לעומת‬ ‫פה‬
‫שלושה‬ ‫נכתבים‬
‫שהגיע‬ ‫כיוון‬ ‫בייטים‬
‫מידע‬FF.
‫מוגדר‬ ‫למודול‬
‫להכניס‬00
‫אחריהם‬
141
-‫מ‬ ‫מגיע‬ ‫אחרון‬ ‫מידע‬-‫מ‬ ‫מגיע‬ ‫אחרון‬ ‫מידע‬SERIAL TO PARALLELSERIAL TO PARALLEL
EOF‫מגיע‬
‫ואיתו‬ ‫לפלאש‬
INFO‫סגירת‬ ‫של‬
‫קובץ‬JPG
“FFD9” -
‫המקודד‬ ‫המידע‬
‫באורך‬ ‫האחרון‬
‫אחד‬ ‫בייט‬
142
-‫ב‬ ‫טיפול‬-‫ב‬ ‫טיפול‬HALTHALT-‫מה‬-‫מה‬FLASHFLASH
‫שמגיע‬ ‫ברגע‬‫שמגיע‬ ‫ברגע‬HALTHALT-‫מה‬-‫מה‬FLASHFLASH‫המערכת‬ ‫כל‬‫המערכת‬ ‫כל‬
-‫ל‬ ‫עד‬-‫ל‬ ‫עד‬SUPER FIFOSUPER FIFO,‫כרגיל‬ ‫לעבוד‬ ‫ממשיכה‬,‫כרגיל‬ ‫לעבוד‬ ‫ממשיכה‬
-‫וה‬-‫וה‬FIFOFIFO‫והקפאת‬ ‫מידע‬ ‫אגירת‬ ‫של‬ ‫למצב‬ ‫נכנס‬‫והקפאת‬ ‫מידע‬ ‫אגירת‬ ‫של‬ ‫למצב‬ ‫נכנס‬
.‫המידע‬ ‫יציאת‬.‫המידע‬ ‫יציאת‬
‫בשגרה‬ ‫מהמערכת‬ ‫להתרשם‬ ‫ניתן‬ ‫הבאים‬ ‫בשקפים‬‫בשגרה‬ ‫מהמערכת‬ ‫להתרשם‬ ‫ניתן‬ ‫הבאים‬ ‫בשקפים‬
‫של‬ ‫במצב‬ ‫ומהמערכת‬‫של‬ ‫במצב‬ ‫ומהמערכת‬HALTHALT
143
‫ללא‬ ‫המערכת‬HALT
‫עם‬ ‫המערכת‬HALT
FIFO‫כרגיל‬
‫בהשהיה‬ ‫המערכת‬ ‫שאר‬
144
‫ללא‬ ‫המערכת‬HALT
‫עם‬ ‫המערכת‬HALT-‫ה‬ ‫כתיבת‬ ‫בשלב‬INFO
145
-‫ב‬ ‫אגירה‬-‫ב‬ ‫אגירה‬FIFOFIFO‫בזמן‬‫בזמן‬HALTHALT
‫בשלוש‬ ‫להתבונן‬ ‫ניתן‬BUFFERS‫הללו‬
‫בכל‬ ‫זמן‬ ‫בכל‬ ‫המידע‬ ‫כמות‬ ‫את‬ ‫המציינים‬
‫סקטור‬
HALT
-‫מה‬FLASH
-‫ל‬ ‫עולה‬1
‫מתחילה‬
‫להתבצע‬
‫אגירה‬
HALT
-‫מה‬FLASH
-‫ל‬ ‫יורד‬0
‫נשאב‬ ‫מידע‬
‫מסקטור‬1
‫ו‬
BUFFER
-‫ל‬ ‫יורד‬0
146
DebuggingDebugging
147
Debugging: us vs. cristi.cDebugging: us vs. cristi.c
‫סי‬ ‫בשפת‬ ‫קריסטי‬ ‫של‬ ‫בקוד‬ ‫השחלנו‬ ‫דיבוג‬ ‫לצורך‬‫סי‬ ‫בשפת‬ ‫קריסטי‬ ‫של‬ ‫בקוד‬ ‫השחלנו‬ ‫דיבוג‬ ‫לצורך‬
‫במקומות‬ ‫טקסט‬ ‫קובץ‬ ‫לתוך‬ ‫הדפסות‬‫במקומות‬ ‫טקסט‬ ‫קובץ‬ ‫לתוך‬ ‫הדפסות‬
‫אותנו‬ ‫שעניינו‬ "‫ה"אסטרטגיים‬‫אותנו‬ ‫שעניינו‬ "‫ה"אסטרטגיים‬..‫עשינו‬ ‫זהה‬ ‫דבר‬‫עשינו‬ ‫זהה‬ ‫דבר‬
‫למוצאי‬ "‫דיבאג‬ ‫"מודול‬ ‫חיבור‬ ‫ע"י‬ ‫שלנו‬ ‫בפרוייקט‬‫למוצאי‬ "‫דיבאג‬ ‫"מודול‬ ‫חיבור‬ ‫ע"י‬ ‫שלנו‬ ‫בפרוייקט‬
‫לתוך‬ ‫הביטים‬ ‫את‬ ‫המדפיס‬ ‫המעניינים‬ ‫המודולים‬‫לתוך‬ ‫הביטים‬ ‫את‬ ‫המדפיס‬ ‫המעניינים‬ ‫המודולים‬
‫הסיגנלים‬ ‫את‬ ‫להשוות‬ ‫לנו‬ ‫אפשר‬ ‫זה‬ ‫דבר‬ .‫קובץ‬‫הסיגנלים‬ ‫את‬ ‫להשוות‬ ‫לנו‬ ‫אפשר‬ ‫זה‬ ‫דבר‬ .‫קובץ‬
‫אחר‬ ‫מודול‬ ,‫ביט‬ ‫אחר‬ ‫ביט‬ ‫קריסטי‬ ‫של‬ ‫לאלו‬ ‫שלנו‬‫אחר‬ ‫מודול‬ ,‫ביט‬ ‫אחר‬ ‫ביט‬ ‫קריסטי‬ ‫של‬ ‫לאלו‬ ‫שלנו‬
...‫מודול‬...‫מודול‬
148
Debugging: us vs. cristi.cDebugging: us vs. cristi.c
‫קובץ‬ ‫לתוך‬ ‫הכתיבה‬ ‫מתודות‬ ‫הרחבת‬
-‫ה‬JPEG.
-‫ה‬ ‫לקובץ‬ ‫שנכתבים‬ ‫הביטים‬JPEG.
.‫טקסט‬ ‫לקובץ‬ ‫שנכתבים‬ ‫הביטים‬
‫הדפסת‬RGB.
149
Debugging: us vs. cristi.cDebugging: us vs. cristi.c
-‫ל‬ ‫הכניסה‬ ‫הדפסת‬DCT.
‫הקוונטיזציה‬ ‫מוצא‬ ‫הדפסת‬
.‫מזוגזג‬
‫הדפסת‬
.zeroes, category, offset
150
Debugging: us vs. cristi.cDebugging: us vs. cristi.c
‫קריסטי‬ ‫של‬ ‫הפלטים‬ ‫קובץ‬
:‫הבא‬ ‫באופן‬ ‫נראה‬
:‫הדרים‬
:‫הדרים‬ ‫סוף‬
:‫הקידוד‬ ‫תחילת‬
:‫הראשון‬ ‫הבלוק‬
RGB, RGB….:
151
Debugging: us vs. cristi.cDebugging: us vs. cristi.c
:‫ההשוואה‬‫אנחנו‬ ‫קריסטי‬
DCT_in
zigzag
after
quantization
RLE & DPCM
152
SniffingSniffing
‫אחד‬ ‫לכל‬ ‫במקביל‬ ‫המתחבר‬ ‫מודול‬‫אחד‬ ‫לכל‬ ‫במקביל‬ ‫המתחבר‬ ‫מודול‬
‫במערכת‬ ‫המודולים‬ ‫בין‬ ‫המידע‬ ‫מקווי‬‫במערכת‬ ‫המודולים‬ ‫בין‬ ‫המידע‬ ‫מקווי‬
‫לקובץ‬ ‫בלוק‬ ‫כל‬ ‫של‬ ‫כתיבה‬ ‫ומבצע‬‫לקובץ‬ ‫בלוק‬ ‫כל‬ ‫של‬ ‫כתיבה‬ ‫ומבצע‬
.‫נפרד‬.‫נפרד‬
153
UtilsUtils
:‫שבנינו‬ ‫עזר‬ ‫כלי‬ ‫כמה‬ ‫להלן‬
‫מבצע‬parsing‫של‬ ‫לפלוטים‬RLE & DPCM
‫לקבלת‬num of zeroes, category and offset.
-‫ב‬ ‫מומש‬Excel.
‫ממיר‬bin2hex-‫ו‬hex2bin.
-‫ב‬ ‫מומש‬Visual Basic.
154
Utils contUtils cont..
.‫עומד‬ ‫וקטור‬ ‫מזגזג‬
‫של‬ ‫עומד‬ ‫וקטור‬ ‫מציג‬64
‫של‬ ‫מטריצה‬ ‫בצורת‬8X8.
.‫מזוגזג‬ ‫עומד‬ ‫וקטור‬ "‫"מיישר‬
‫להמרת‬ ‫המתמטית‬ ‫הפעולה‬ ‫את‬ ‫מבצע‬RGB-‫ל‬YCbCr.‫עשרונית‬ ‫נקודה‬ ‫עם‬
-‫ה‬ ‫פעולת‬ ‫את‬ ‫מבצע‬DCT.‫עשרונית‬ ‫נקודה‬ ‫עם‬ ‫מטריצות‬ ‫כפל‬ ‫באמצעות‬
:‫דוגמא‬vec zigzag(vec)
v2matrix(zigzag(vec))
155
‫ביעדים‬ ‫ועמידה‬ ‫דגשים‬‫ביעדים‬ ‫ועמידה‬ ‫דגשים‬
‫המקורי‬ ‫היעד‬ ‫בתאריך‬ ‫מצגת‬ ‫כולל‬ ‫הפרויקט‬ ‫הגשת‬‫המקורי‬ ‫היעד‬ ‫בתאריך‬ ‫מצגת‬ ‫כולל‬ ‫הפרויקט‬ ‫הגשת‬19.4.0919.4.09.(‫כחודשיים‬ ‫)לפני‬.(‫כחודשיים‬ ‫)לפני‬
‫עד‬ ‫של‬ ‫תמונה‬ ‫בגודל‬ ‫תמיכה‬‫עד‬ ‫של‬ ‫תמונה‬ ‫בגודל‬ ‫תמיכה‬1024x10241024x1024
‫מימוש‬‫מימוש‬halthalt‫מה‬ ‫חוזר‬‫מה‬ ‫חוזר‬flashflash‫ל‬‫ל‬8080.‫שעון‬ ‫מחזורי‬.‫שעון‬ ‫מחזורי‬
‫בשלושה‬ ‫תמיכה‬‫בשלושה‬ ‫תמיכה‬Quality FactorQuality Factor..
.‫ברצף‬ ‫תמונות‬ ‫צילום‬ ‫של‬ ‫בהמרה‬ ‫תמיכה‬.‫ברצף‬ ‫תמונות‬ ‫צילום‬ ‫של‬ ‫בהמרה‬ ‫תמיכה‬
‫בפורמט‬ ‫אותיות‬ ‫בהדפסת‬ ‫תמיכה‬ ‫–כלל‬ ‫התמונה‬ ‫על‬ ‫תאריך‬ ‫הדפסת‬‫בפורמט‬ ‫אותיות‬ ‫בהדפסת‬ ‫תמיכה‬ ‫–כלל‬ ‫התמונה‬ ‫על‬ ‫תאריך‬ ‫הדפסת‬ASCIIASCII,,
.‫בתמונה‬ ‫התאריך‬ ‫מיקום‬ ‫ושינויי‬ ‫ואנכי‬ ‫אופקי‬ ‫וכיווץ‬ ‫למתיחה‬ ‫אפשרות‬.‫בתמונה‬ ‫התאריך‬ ‫מיקום‬ ‫ושינויי‬ ‫ואנכי‬ ‫אופקי‬ ‫וכיווץ‬ ‫למתיחה‬ ‫אפשרות‬
.‫הפרויקט‬ ‫כל‬ ‫לאורך‬ ‫וזיכרון‬ ‫לוגיקה‬ ‫צמצום‬ ‫של‬ ‫תכנון‬ ‫שיקולי‬.‫הפרויקט‬ ‫כל‬ ‫לאורך‬ ‫וזיכרון‬ ‫לוגיקה‬ ‫צמצום‬ ‫של‬ ‫תכנון‬ ‫שיקולי‬
‫זיכרונות‬ ‫איחוד‬‫זיכרונות‬ ‫איחוד‬ROMROM‫ו‬‫ו‬RAMRAM.‫המסלולים‬ ‫שלושת‬ ‫עבור‬.‫המסלולים‬ ‫שלושת‬ ‫עבור‬
.‫הפרויקט‬ ‫כל‬ ‫של‬ ‫מפורט‬ ‫תיעוד‬ ‫המכילה‬ ‫מושקעת‬ ‫מצגת‬ ‫בניית‬.‫הפרויקט‬ ‫כל‬ ‫של‬ ‫מפורט‬ ‫תיעוד‬ ‫המכילה‬ ‫מושקעת‬ ‫מצגת‬ ‫בניית‬
‫של‬ ‫מימוש‬‫של‬ ‫מימוש‬FIFOFIFO.‫אחד‬ ‫זיכרון‬ ‫על‬ ‫משולש‬.‫אחד‬ ‫זיכרון‬ ‫על‬ ‫משולש‬
‫של‬ ‫מושלמת‬ ‫המרה‬ ‫שאפשרו‬ ‫אוטומטיים‬ ‫סקריפטים‬ ‫ע"י‬ ‫הטבלאות‬ ‫כל‬ ‫בנית‬‫של‬ ‫מושלמת‬ ‫המרה‬ ‫שאפשרו‬ ‫אוטומטיים‬ ‫סקריפטים‬ ‫ע"י‬ ‫הטבלאות‬ ‫כל‬ ‫בנית‬
.‫שגיאות‬ ‫ללא‬ ‫התמונה‬.‫שגיאות‬ ‫ללא‬ ‫התמונה‬
.‫בהמשך‬ ‫הפתעה‬.‫בהמשך‬ ‫הפתעה‬
156
.‫המודול‬ ‫בפיתוח‬ ‫מאוד‬ ‫שעזר‬ ‫הקוד‬ ‫על‬ ‫לקריסטי‬ ‫תודה‬.‫המודול‬ ‫בפיתוח‬ ‫מאוד‬ ‫שעזר‬ ‫הקוד‬ ‫על‬ ‫לקריסטי‬ ‫תודה‬
,‫המרתקות‬ ‫ההרצאות‬ ‫על‬ ‫ניגרי‬ ‫למקס‬ ‫ענקית‬ ‫תודה‬,‫המרתקות‬ ‫ההרצאות‬ ‫על‬ ‫ניגרי‬ ‫למקס‬ ‫ענקית‬ ‫תודה‬
.‫בזכותו‬ ‫שרכשנו‬ ‫הרבה‬ ‫והמקצועיות‬ ‫הידע‬ ‫על‬.‫בזכותו‬ ‫שרכשנו‬ ‫הרבה‬ ‫והמקצועיות‬ ‫הידע‬ ‫על‬
157
‫משה‬ ‫חסין‬ (‫)יוני‬ ‫יבגני‬ ,‫ביטון‬ ‫רועי‬ ,‫כהן‬ ‫אלון‬
‫עג'מי‬ ‫שולמית‬ ,‫הובר‬ ‫אריאלה‬ ,‫שקלר‬
ENDEND
158

More Related Content

PPTX
MiceHome
PDF
Digital in 2016
PDF
TEDx Manchester: AI & The Future of Work
PPTX
LDPC - Final Presentation
PDF
סיכום הקורס באבטחת מידע
PDF
Nodejs
PDF
10 istm bi and dw-amn
PPT
ISUG - Real time in BI by Hagai Jacoby
MiceHome
Digital in 2016
TEDx Manchester: AI & The Future of Work
LDPC - Final Presentation
סיכום הקורס באבטחת מידע
Nodejs
10 istm bi and dw-amn
ISUG - Real time in BI by Hagai Jacoby

Similar to Jpeg encoder (19)

PPT
Fire Wall Solutions Final
PDF
מודל שבעת השכבות
PPTX
מבוא לקריפטוגרפיה
PDF
מהי אנליזה סטטית?
PDF
BizzMapper
PDF
Dw124 3-kernel so-injector
PDF
SAP NetWeaver Gateway OData
PPT
מודל Osi -tcpip
PDF
SAP NetWeaver Gateway OData
PPT
PHP Scalability
PDF
מושגים שונים בהבנת מערכות מחשב
PDF
מושגים שונים בהבנת מערכות מחשב
DOCX
ההה מבחן
PDF
מהפיכת הייצור החכם - אריאל לסרי (Rockwell Automation)
PPT
stage3D
PDF
217188253 vdi-case-final-2010
DOC
Genaral Configuration 8600 Nortel
DOC
varda_schley_resume_heb2
PPT
הכרת המחשב האישי מצויין
Fire Wall Solutions Final
מודל שבעת השכבות
מבוא לקריפטוגרפיה
מהי אנליזה סטטית?
BizzMapper
Dw124 3-kernel so-injector
SAP NetWeaver Gateway OData
מודל Osi -tcpip
SAP NetWeaver Gateway OData
PHP Scalability
מושגים שונים בהבנת מערכות מחשב
מושגים שונים בהבנת מערכות מחשב
ההה מבחן
מהפיכת הייצור החכם - אריאל לסרי (Rockwell Automation)
stage3D
217188253 vdi-case-final-2010
Genaral Configuration 8600 Nortel
varda_schley_resume_heb2
הכרת המחשב האישי מצויין
Ad

Jpeg encoder

  • 1. Jpeg encoderJpeg encoder Hardware implementationHardware implementation with Verilogwith Verilog Designed byDesigned by Alon Cohen (alonc777@gmail.comAlon Cohen (alonc777@gmail.com(( Roi Biton, Yevgeny (Yoni) KhasinRoi Biton, Yevgeny (Yoni) Khasin Ariela Huber, Shulamyt Ajamy, Moshe SzklarAriela Huber, Shulamyt Ajamy, Moshe Szklar Directed byDirected by Mr. Max NigriMr. Max Nigri The Hebrew UniversityThe Hebrew University of Jerusalemof Jerusalem 1
  • 2. The projectThe project imagerimager JPEG JPEGEncoder Encoder JPEG File RGB Data SD CARDSD CARD ))flashflash((Eye-On-Si® Ultra-compact CMOS Digital Camera Module example Jpeg encoder for digital cameraJpeg encoder for digital camera example 2
  • 4. imagerimager ‫מ‬ ‫מידע‬ ‫הזרמת‬ ‫המדמה‬ ‫מודול‬‫מ‬ ‫מידע‬ ‫הזרמת‬ ‫המדמה‬ ‫מודול‬imagerimager Data FormatData Format :: 8bit RGB8bit RGB‫מקבילי‬ ‫סינכרוני‬‫מקבילי‬ ‫סינכרוני‬ ‫כניסה‬ ‫רגל‬‫כניסה‬ ‫רגל‬shootshoot.‫חדשה‬ ‫תמונה‬ ‫לשליחת‬ ‫טריגר‬ –.‫חדשה‬ ‫תמונה‬ ‫לשליחת‬ ‫טריגר‬ – ‫נשלח‬ ‫תמונה‬ ‫כל‬ ‫העברת‬ ‫לפני‬‫נשלח‬ ‫תמונה‬ ‫כל‬ ‫העברת‬ ‫לפני‬headerheader‫שם‬ ‫את‬ ‫המעביר‬‫שם‬ ‫את‬ ‫המעביר‬ .‫התמונה‬ ‫וממדי‬ ‫הקובץ‬.‫התמונה‬ ‫וממדי‬ ‫הקובץ‬ 4
  • 5. playerplayer .‫תמונה‬ ‫לצילום‬ ‫כפתור‬ ‫לחיצת‬ ‫מיצר‬.‫תמונה‬ ‫לצילום‬ ‫כפתור‬ ‫לחיצת‬ ‫מיצר‬ ‫בקוד‬ ‫תאריך‬ ‫מיצר‬‫בקוד‬ ‫תאריך‬ ‫מיצר‬ASCIIASCII.. : ‫התמונה‬ ‫איכות‬ ‫את‬ ‫קובע‬: ‫התמונה‬ ‫איכות‬ ‫את‬ ‫קובע‬quality factorquality factor 00––lowlow 11--midmid 22--highhigh 5
  • 6. flashflash .‫זיכרון‬ ‫כרטיס‬ ‫המדמה‬ ‫מודול‬.‫זיכרון‬ ‫כרטיס‬ ‫המדמה‬ ‫מודול‬ ‫סינכרונית‬ ‫מקבילית‬ ‫תקשורת‬‫סינכרונית‬ ‫מקבילית‬ ‫תקשורת‬32bit32bit.. ‫של‬ ‫לכתיבה‬ ‫אפשרות‬‫של‬ ‫לכתיבה‬ ‫אפשרות‬8,16,24,328,16,24,32BitBit‫עלית‬ ‫בכל‬‫עלית‬ ‫בכל‬ .‫שעון‬.‫שעון‬ ‫העברת‬ ‫לפני‬ ‫מתבצעת‬ ‫הקובץ‬ ‫שם‬ ‫העברת‬‫העברת‬ ‫לפני‬ ‫מתבצעת‬ ‫הקובץ‬ ‫שם‬ ‫העברת‬ .‫המידע‬.‫המידע‬ 6
  • 7. encoderencoder ‫לפורמט‬ ‫תמונה‬ ‫מקודד‬‫לפורמט‬ ‫תמונה‬ ‫מקודד‬jpg filejpg file.. ‫בפורמט‬ ‫תמונה‬ :‫כניסה‬‫בפורמט‬ ‫תמונה‬ :‫כניסה‬RGBRGB) ‫טורי‬ ‫באופן‬ ,) ‫טורי‬ ‫באופן‬ ,datadata 8bit8bit.(.( ‫סינכרונית‬ ‫כתיבה‬ :‫מוצא‬‫סינכרונית‬ ‫כתיבה‬ :‫מוצא‬32bit data32bit data‫לזיכרון‬‫לזיכרון‬flashflash.. :‫בקרות‬:‫בקרות‬ Quality factorQuality factor–‫איכות‬ ‫לקביעת‬ ‫ביטים‬ ‫שני‬–‫איכות‬ ‫לקביעת‬ ‫ביטים‬ ‫שני‬ ‫.התמונה‬‫.התמונה‬ Date(64bitDate(64bit))–‫בקוד‬ ‫תאריך‬ ‫הכנסת‬–‫בקוד‬ ‫תאריך‬ ‫הכנסת‬ASCIIASCII.. ShootShoot‫תמונה‬ ‫לצילום‬ ‫.טריגר‬‫תמונה‬ ‫לצילום‬ ‫.טריגר‬ JPEG JPEGEncoder Encoder 7
  • 8. EncoderEncoder Block diagram & conceptBlock diagram & concept 8
  • 9. Encoder Block diagramEncoder Block diagram QuantizationQuantization DCTDCT && ZIGZAGZIGZAG RLCRLC && DPCMDPCM DCTDCT ClientClient TripleTriple FIFOFIFO ControlControl RGB toRGB to YCbCrYCbCr ARBARB RAMRAM BlocksBlocks Wr PixelsWr Pixels ClientClient DateDate StamperStamper AlinerAlinerInt to floatInt to float Clk dividerClk divider Quan ROMQuan ROM TBTB FIFOFIFO writerwriter HuffmanHuffman codecode Serial toSerial to paralelparalel FlashFlash writerwriter DCTDCT ROMROM 9
  • 10. ‫מודולים‬ ‫בין‬ ‫תקשורת‬‫מודולים‬ ‫בין‬ ‫תקשורת‬ ‫השונים‬ ‫המודולים‬ ‫בין‬ ‫המידע‬ ‫להעברת‬ ‫אחיד‬ ‫תקן‬‫השונים‬ ‫המודולים‬ ‫בין‬ ‫המידע‬ ‫להעברת‬ ‫אחיד‬ ‫תקן‬ spen_in/spen_outspen_in/spen_out–' ‫ב‬ ‫נמצא‬–' ‫ב‬ ‫נמצא‬11‫בלוקתמונה‬ ‫מועבר‬ ‫עוד‬ ‫כל‬ '.‫בלוקתמונה‬ ‫מועבר‬ ‫עוד‬ ‫כל‬ '. d_in_valid/d_out_validd_in_valid/d_out_valid–'1–'1' ‫הנוכחית‬ ‫השעון‬ ‫עלית‬ ‫עבור‬ ‫תקף‬ ‫מידע‬ ‫.מציין‬' ‫הנוכחית‬ ‫השעון‬ ‫עלית‬ ‫עבור‬ ‫תקף‬ ‫מידע‬ ‫.מציין‬ rstrst–‫המודול‬ ‫.אתחול‬–‫המודול‬ ‫.אתחול‬ mclkmclk–‫המודול‬ ‫של‬ ‫עבודה‬ ‫.שעון‬–‫המודול‬ ‫של‬ ‫עבודה‬ ‫.שעון‬ ‫בלוק‬ ‫תחילת‬ ‫בלוק‬ ‫סוף‬‫תקף‬ ‫מידע‬ 10
  • 11. ‫ברצף‬ ‫תמונות‬ ‫צילום‬‫ברצף‬ ‫תמונות‬ ‫צילום‬ Shoot‫תמונה‬ ‫לצילום‬ ‫חדשה‬ Busy‫ה‬ ‫כי‬ ‫מציין‬ encoder‫באמצע‬ ‫עבודה‬ ‫ה‬ ‫בכניסת‬ ‫הבלוקים‬ DCT ‫קובץ‬ ‫סיום‬ ‫נלחץ‬ ‫לא‬shoot ‫מועברת‬ ‫תמונה‬ ‫אין‬ pxq‫בזמן‬ ‫דלוק‬ ‫המידע‬ ‫העברת‬ 11
  • 12. Block diagram – data flowBlock diagram – data flow ‫מה‬ ‫המידע‬ ‫כניסת‬ ,‫שמאל‬ ‫מצד‬‫מה‬ ‫המידע‬ ‫כניסת‬ ,‫שמאל‬ ‫מצד‬imagerimager.. Int to floatInt to float– ‫מ‬ ‫המידע‬ ‫את‬ ‫ממיר‬– ‫מ‬ ‫המידע‬ ‫את‬ ‫ממיר‬8bit data8bit data‫ל‬‫ל‬floating point 24floating point 24 bitbit.. AlinerAliner‫טורי‬ ‫מקבל‬‫טורי‬ ‫מקבל‬R,G,BR,G,B‫שלשה‬ ‫ומוציא‬‫שלשה‬ ‫ומוציא‬}}R,G,BR,G,B{{‫כל‬ ‫מיושרים‬‫כל‬ ‫מיושרים‬33 ‫.שעונים‬‫.שעונים‬ 12
  • 13. Block diagram – data flowBlock diagram – data flow Date stamperDate stamper‫של‬ ‫הדפסה‬ ‫מבצע‬‫של‬ ‫הדפסה‬ ‫מבצע‬ ‫כדי‬ ‫תוך‬ ‫התמונה‬ ‫לתוך‬ ‫תאריך‬‫כדי‬ ‫תוך‬ ‫התמונה‬ ‫לתוך‬ ‫תאריך‬ ‫המידע‬ ‫.זרימת‬‫המידע‬ ‫.זרימת‬ ‫למודול‬ ‫מחוץ‬ ‫מתקבל‬ ‫התאריך‬‫למודול‬ ‫מחוץ‬ ‫מתקבל‬ ‫התאריך‬ ‫בפורמט‬‫בפורמט‬ASCIIASCII‫של‬ ‫מקבילי‬ ‫קו‬ ‫ע"י‬‫של‬ ‫מקבילי‬ ‫קו‬ ‫ע"י‬ 64bit64bit.. ‫מתיחה‬ ‫לבצע‬ ‫פרמטרים‬ ‫ע"י‬ ‫נתן‬‫מתיחה‬ ‫לבצע‬ ‫פרמטרים‬ ‫ע"י‬ ‫נתן‬ .‫לתאריך‬ ‫ורוחבי‬ ‫אופקי‬ ‫וכיווץ‬.‫לתאריך‬ ‫ורוחבי‬ ‫אופקי‬ ‫וכיווץ‬ ‫ה‬ ‫כל‬ ‫את‬ ‫להדפיס‬ ‫נתן‬‫ה‬ ‫כל‬ ‫את‬ ‫להדפיס‬ ‫נתן‬A,B,CA,B,C 13
  • 14. Block diagram – data flowBlock diagram – data flow RGBtoYCbCrRGBtoYCbCr– ‫לפורמט‬ ‫המרה‬ ‫המבצע‬ ‫מודול‬– ‫לפורמט‬ ‫המרה‬ ‫המבצע‬ ‫מודול‬Y,Cb,CrY,Cb,Cr‫ו‬‫ו‬offsetoffset‫של‬‫של‬--128128‫הכפלה‬ ‫ע"י‬‫הכפלה‬ ‫ע"י‬ ‫.במטריצה‬‫.במטריצה‬ Wr Pixel ClientWr Pixel Client‫לזיכרון‬ ‫שורה‬ ‫אחר‬ ‫שורה‬ ‫המידע‬ ‫של‬ ‫כתיבה‬ ‫מבצע‬‫לזיכרון‬ ‫שורה‬ ‫אחר‬ ‫שורה‬ ‫המידע‬ ‫של‬ ‫כתיבה‬ ‫מבצע‬RAMRAM‫ציקלית‬ ‫בצורה‬‫ציקלית‬ ‫בצורה‬ ‫פולס‬ ‫ומייצר‬‫פולס‬ ‫ומייצר‬startstart‫של‬ ‫כתיבה‬ ‫סיום‬ ‫כל‬ ‫עם‬‫של‬ ‫כתיבה‬ ‫סיום‬ ‫כל‬ ‫עם‬88‫שורות‬ .‫שורות‬ . ‫כל‬ ‫של‬ ‫ההתחלתית‬ ‫הכתובת‬ ‫את‬ ‫מספק‬ ‫בנוסף‬‫כל‬ ‫של‬ ‫ההתחלתית‬ ‫הכתובת‬ ‫את‬ ‫מספק‬ ‫בנוסף‬88‫כל‬ ‫עם‬ ‫שורות‬‫כל‬ ‫עם‬ ‫שורות‬startstart.‫סנכרון‬ ‫לצורך‬.‫סנכרון‬ ‫לצורך‬ To ARBTo ARB14
  • 15. Block diagram – data flowBlock diagram – data flow RAM BlocksRAM Blocks– ‫מ‬ ‫המגיעה‬ ‫התמונה‬ ‫של‬ ‫המידע‬ ‫שורות‬ ‫את‬ ‫מאחסן‬ –– ‫מ‬ ‫המגיעה‬ ‫התמונה‬ ‫של‬ ‫המידע‬ ‫שורות‬ ‫את‬ ‫מאחסן‬ –wr pixels clientwr pixels client.. ARBARB– ‫ל‬ ‫ארביטרציה‬– ‫ל‬ ‫ארביטרציה‬RAMRAM‫עם‬‫עם‬strict prioritystrict priority‫ל‬‫ל‬wr pixels clientwr pixels client.. DCT ClientDCT Client– ‫מה‬ ‫המידע‬ ‫רצועות‬ ‫את‬ ‫מושך‬– ‫מה‬ ‫המידע‬ ‫רצועות‬ ‫את‬ ‫מושך‬RAMRAM‫של‬ ‫בפורמט‬‫של‬ ‫בפורמט‬blocks 8x8blocks 8x8 ‫המידע‬ ‫משיכת‬ ‫סדר‬‫המידע‬ ‫משיכת‬ ‫סדר‬top to down and left to righttop to down and left to right.. ‫וסגנל‬ ‫התחלתית‬ ‫כתובת‬ ‫מקבל‬‫וסגנל‬ ‫התחלתית‬ ‫כתובת‬ ‫מקבל‬startstart.‫הקריאה‬ ‫וזמן‬ ‫כתובת‬ ‫לסימון‬.‫הקריאה‬ ‫וזמן‬ ‫כתובת‬ ‫לסימון‬ From wrFrom wr pixels clientpixels client To DCTTo DCT 15
  • 16. Block diagram – data flowBlock diagram – data flow ‫ביצוע‬‫ביצוע‬DCTDCT‫על‬ ‫במקביל‬‫על‬ ‫במקביל‬Y,Cb,CrY,Cb,Cr.. ‫מימין‬ ‫מקדמים‬ ‫במטריצת‬ ‫הכפלה‬ ‫ע"י‬ ‫ביצוע‬‫מימין‬ ‫מקדמים‬ ‫במטריצת‬ ‫הכפלה‬ ‫ע"י‬ ‫ביצוע‬ ‫בזיכרון‬ ‫השמורה‬ ‫ומשמאל‬‫בזיכרון‬ ‫השמורה‬ ‫ומשמאל‬ROMROM‫חיצוני‬‫חיצוני‬ .‫המודולים‬ ‫לשלושת‬.‫המודולים‬ ‫לשלושת‬ BlockBlock 16
  • 17. Block diagram – data flowBlock diagram – data flow ‫ביצוע‬‫ביצוע‬QuantizationQuantization‫על‬ ‫במקביל‬‫על‬ ‫במקביל‬Y,Cb,CrY,Cb,Cr.. ‫איכויות‬ ‫שלושה‬ ‫עבור‬ ‫הקוונטיזציה‬ ‫טבלאות‬‫איכויות‬ ‫שלושה‬ ‫עבור‬ ‫הקוונטיזציה‬ ‫טבלאות‬ ‫ב‬ ‫שמורות‬‫ב‬ ‫שמורות‬ROMROM‫ה‬ ‫למודולי‬ ‫חיצוני‬‫ה‬ ‫למודולי‬ ‫חיצוני‬ QuantizationQuantization.. ‫מודול‬‫מודול‬quan_table_swquan_table_sw‫מוסיף‬‫מוסיף‬offsetoffset‫מתאים‬‫מתאים‬ ‫ב‬ ‫לכתובת‬‫ב‬ ‫לכתובת‬ROMROM‫ל‬ ‫בהתאם‬‫ל‬ ‫בהתאם‬2bit quality factor2bit quality factor ‫למודול‬ ‫מחוץ‬ ‫המגיע‬‫למודול‬ ‫מחוץ‬ ‫המגיע‬encoderencoder.. ‫טבלאות‬‫טבלאות‬chrom & lumchrom & lum‫שע"י‬ ‫כך‬ ‫לאורך‬ ‫שמורות‬‫שע"י‬ ‫כך‬ ‫לאורך‬ ‫שמורות‬ ‫ה‬ ‫במוצא‬ ‫מתאים‬ ‫חיווט‬‫ה‬ ‫במוצא‬ ‫מתאים‬ ‫חיווט‬ROMROM‫מודול‬ ‫כל‬‫מודול‬ ‫כל‬quanquan .‫לו‬ ‫המתאים‬ ‫המידע‬ ‫את‬ ‫מקבל‬.‫לו‬ ‫המתאים‬ ‫המידע‬ ‫את‬ ‫מקבל‬ 17
  • 18. Quality factorQuality factor ‫היא‬ ‫הקוונטיזציה‬ ‫פעולת‬‫היא‬ ‫הקוונטיזציה‬ ‫פעולת‬ ‫הקוונטיזציה‬ ‫בטבלת‬ ‫הכפלה‬‫הקוונטיזציה‬ ‫בטבלת‬ ‫הכפלה‬ .‫התוצאה‬ ‫ועיגול‬.‫התוצאה‬ ‫ועיגול‬ ‫שלושה‬ ‫בין‬ ‫השוואה‬ ‫להלן‬‫שלושה‬ ‫בין‬ ‫השוואה‬ ‫להלן‬ :‫שונות‬ ‫איכויות‬:‫שונות‬ ‫איכויות‬ Medium(8k) Value/(0.5*table) Low(5.45k) value/table High(11.5k) Value/(0.25*table) Bmp(54k) 18
  • 19. Block diagram – data flowBlock diagram – data flow RLERLE -- Run Length EncodeRun Length Encode DPCMDPCM -- Differential Pulse CodeDifferential Pulse Code ModulationModulation ‫האפליקציות‬ ‫שני‬ ‫את‬ ‫המממש‬ ‫מודול‬‫האפליקציות‬ ‫שני‬ ‫את‬ ‫המממש‬ ‫מודול‬ RLE & DPCMRLE & DPCM.. ‫המבצע‬ ‫למודול‬ ‫מתחברים‬ ‫מוצאים‬‫המבצע‬ ‫למודול‬ ‫מתחברים‬ ‫מוצאים‬ ‫ל‬ ‫כתיבה‬‫ל‬ ‫כתיבה‬FIFOFIFO ‫במוצא‬ ‫המידע‬ ‫כמות‬ ‫כי‬ ‫לראות‬ ‫ניתן‬‫במוצא‬ ‫המידע‬ ‫כמות‬ ‫כי‬ ‫לראות‬ ‫ניתן‬ ‫המידע‬ ‫מכמות‬ ‫בהרבה‬ ‫קטנה‬‫המידע‬ ‫מכמות‬ ‫בהרבה‬ ‫קטנה‬ .‫בכניסה‬.‫בכניסה‬ BlockBlock 19
  • 20. Block diagram – data flowBlock diagram – data flow FIFO WriterFIFO Writer ‫ערוצי‬ ‫שלושת‬ ‫את‬ ‫מקבל‬‫ערוצי‬ ‫שלושת‬ ‫את‬ ‫מקבל‬ ‫ריבוב‬ ‫ומבצע‬ ‫המידע‬‫ריבוב‬ ‫ומבצע‬ ‫המידע‬ ‫ל‬ ‫וכתיבה‬ ‫שלהם‬‫ל‬ ‫וכתיבה‬ ‫שלהם‬tripletriple fifofifo.. Super FIFOSuper FIFO ‫סקטורים‬ ‫שלושה‬ ‫מכיל‬ –‫סקטורים‬ ‫שלושה‬ ‫מכיל‬ – ‫על‬ ‫הממומשים‬ ‫זיכרון‬ ‫של‬‫על‬ ‫הממומשים‬ ‫זיכרון‬ ‫של‬ ‫גבי‬‫גבי‬RAMRAM.‫אחד‬.‫אחד‬ ‫שלם‬ ‫בלוק‬ ‫מגיע‬ ‫כאשר‬‫שלם‬ ‫בלוק‬ ‫מגיע‬ ‫כאשר‬ ‫במוצא‬ ‫יוצאים‬ ‫הבלוקים‬‫במוצא‬ ‫יוצאים‬ ‫הבלוקים‬ ‫בהתאם‬ ‫השני‬ ‫אחרי‬ ‫אחד‬‫בהתאם‬ ‫השני‬ ‫אחרי‬ ‫אחד‬ .‫קריאה‬ ‫לבקשת‬.‫קריאה‬ ‫לבקשת‬ ‫בלוק‬ ‫וסוף‬ ‫תחילה‬ ‫סימון‬‫בלוק‬ ‫וסוף‬ ‫תחילה‬ ‫סימון‬ ‫ביטים‬ ‫שני‬ ‫ע"י‬ ‫מתבצעים‬‫ביטים‬ ‫שני‬ ‫ע"י‬ ‫מתבצעים‬ ‫חלק‬ ‫שהם‬ ‫ראשונים‬‫חלק‬ ‫שהם‬ ‫ראשונים‬ .‫המידע‬ ‫מרגיסטרי‬.‫המידע‬ ‫מרגיסטרי‬ ‫שכמות‬ ‫לראות‬ ‫ניתן‬‫שכמות‬ ‫לראות‬ ‫ניתן‬ ‫אחד‬ ‫בכל‬ ‫שונה‬ ‫המידע‬‫אחד‬ ‫בכל‬ ‫שונה‬ ‫המידע‬ ‫מהמסלולים‬‫מהמסלולים‬ 20
  • 21. Block diagram – data flowBlock diagram – data flow ‫ב‬ ‫השמורות‬ ‫טבלאות‬ ‫ע"י‬ ‫המידע‬ ‫של‬ ‫הופמן‬ ‫קידוד‬‫ב‬ ‫השמורות‬ ‫טבלאות‬ ‫ע"י‬ ‫המידע‬ ‫של‬ ‫הופמן‬ ‫קידוד‬ROMROM‫ביטים‬ ‫עם‬ ‫המקודד‬ ‫המידע‬ ‫של‬ ‫והוצאה‬‫ביטים‬ ‫עם‬ ‫המקודד‬ ‫המידע‬ ‫של‬ ‫והוצאה‬ .‫הרלוונטי‬ ‫המידע‬ ‫אורך‬ ‫לציון‬.‫הרלוונטי‬ ‫המידע‬ ‫אורך‬ ‫לציון‬ Serial to paralelSerial to paralel– ‫אחיד‬ ‫באורך‬ ‫מידע‬ ‫ומוציא‬ ‫השונים‬ ‫באורכים‬ ‫הביטים‬ ‫את‬ ‫טורית‬ ‫בצורה‬ ‫אוסף‬– ‫אחיד‬ ‫באורך‬ ‫מידע‬ ‫ומוציא‬ ‫השונים‬ ‫באורכים‬ ‫הביטים‬ ‫את‬ ‫טורית‬ ‫בצורה‬ ‫אוסף‬ ‫של‬‫של‬32bit32bit‫ל‬ ‫לכתיבה‬‫ל‬ ‫לכתיבה‬flashflash 21
  • 22. Block diagram – data flowBlock diagram – data flow Flash writerFlash writer– ‫ו‬ ‫הקובץ‬ ‫שם‬ ‫של‬ ‫וכתיבה‬ ‫יצור‬– ‫ו‬ ‫הקובץ‬ ‫שם‬ ‫של‬ ‫וכתיבה‬ ‫יצור‬headerheader‫ל‬‫ל‬jpeg filejpeg file.. ‫מה‬ ‫המגיע‬ ‫המידע‬ ‫כתיבת‬‫מה‬ ‫המגיע‬ ‫המידע‬ ‫כתיבת‬serial to paralelserial to paralel.‫בקובץ‬ ‫המתאים‬ ‫למקום‬.‫בקובץ‬ ‫המתאים‬ ‫למקום‬ 22
  • 23. ROM & RAM CalculationROM & RAM Calculation Date Stamper ROMDate Stamper ROM 255255‫תווי‬‫תווי‬ASCIIASCII‫תו‬ ‫כל‬ ,‫תו‬ ‫כל‬ ,5x5bit5x5bit 255255**55**5/85/8==797byte797byte :‫מבנה‬:‫מבנה‬5bit x 1275 rows5bit x 1275 rows 11bit address11bit address RAM BlocksRAM Blocks ‫מה‬ ‫דרישה‬‫מה‬ ‫דרישה‬DCTDCT‫כל‬ ‫בין‬ ‫לרווח‬‫כל‬ ‫בין‬ ‫לרווח‬data_validdata_valid:‫במוצא‬:‫במוצא‬88cyclescycles ‫מה‬ ‫דרישה‬‫מה‬ ‫דרישה‬DCTDCT‫הבלוקים‬ ‫בין‬ ‫מחזורים‬ '‫למס‬‫הבלוקים‬ ‫בין‬ ‫מחזורים‬ '‫למס‬627627 ‫בלוק‬ ‫במעבר‬ ‫מחזורים‬ '‫מס‬‫בלוק‬ ‫במעבר‬ ‫מחזורים‬ '‫מס‬6666**88==528528 :‫בלוקים‬ ‫בין‬ ‫השהייה‬ ‫כלל‬ ‫לבלוק‬ ‫דרושים‬ ‫מחזורים‬ ‫סה"כ‬:‫בלוקים‬ ‫בין‬ ‫השהייה‬ ‫כלל‬ ‫לבלוק‬ ‫דרושים‬ ‫מחזורים‬ ‫סה"כ‬11551155 ‫באורך‬ ‫רצועה‬ ‫לפינויי‬ ‫שעון‬ ‫מחזורי‬ ‫סה"כ‬‫באורך‬ ‫רצועה‬ ‫לפינויי‬ ‫שעון‬ ‫מחזורי‬ ‫סה"כ‬10241024::11551155)*)*1024/81024/8=(=(147840147840 :‫זה‬ ‫בזמן‬ ‫שיכתבו‬ ‫זיכרון‬ ‫שורות‬ ‫סה"כ‬:‫זה‬ ‫בזמן‬ ‫שיכתבו‬ ‫זיכרון‬ ‫שורות‬ ‫סה"כ‬147840/8/3147840/8/3==61606160 : ‫שדרושות‬ ‫זיכרון‬ ‫שורות‬ '‫מס‬ ‫סה"כ‬: ‫שדרושות‬ ‫זיכרון‬ ‫שורות‬ '‫מס‬ ‫סה"כ‬1024pix*8+6160=143521024pix*8+6160=14352 ‫הוא‬ ‫הדרוש‬ ‫הזיכרון‬ ‫גודל‬ ‫לכן‬‫הוא‬ ‫הדרוש‬ ‫הזיכרון‬ ‫גודל‬ ‫לכן‬14352rows*72bit =14352rows*72bit = 126kb126kb 14bit address14bit address 23
  • 24. ROM & RAM CalculationROM & RAM Calculation DCT ROM – commonDCT ROM – common .‫ההמרה‬ ‫לביצוע‬ ‫המטריצה‬ ‫להחזקת‬ ‫משמש‬.‫ההמרה‬ ‫לביצוע‬ ‫המטריצה‬ ‫להחזקת‬ ‫משמש‬ 6464value of 24bit floating pointvalue of 24bit floating point Size = 64*24/8 =Size = 64*24/8 = 192byte192byte 66bit addressbit address DCT RAMDCT RAM .‫ראשונה‬ ‫הכפלה‬ ‫לאחר‬ ‫המתקבלת‬ ‫המטריצה‬ ‫לשמירת‬ ‫משמש‬.‫ראשונה‬ ‫הכפלה‬ ‫לאחר‬ ‫המתקבלת‬ ‫המטריצה‬ ‫לשמירת‬ ‫משמש‬ 6464value of 24bit floating pointvalue of 24bit floating point Size = 64*24/8 =Size = 64*24/8 = 192byte192byte 66bit addressbit address 24
  • 25. ROM & RAM CalculationROM & RAM Calculation Quantization ROM – commonQuantization ROM – common ) ‫זוגות‬ ‫שלושה‬ ‫להחזקת‬ ‫משמש‬) ‫זוגות‬ ‫שלושה‬ ‫להחזקת‬ ‫משמש‬luma & chromeluma & chrome‫איכות‬ ‫דרגות‬ ‫שלושה‬ ‫עבור‬ ‫קבועים‬ ‫מטריצות‬ (‫איכות‬ ‫דרגות‬ ‫שלושה‬ ‫עבור‬ ‫קבועים‬ ‫מטריצות‬ ( .‫לתמונה‬.‫לתמונה‬ 6464**33==192192rows of 2*24bit floating pointrows of 2*24bit floating point Size = 64*3*2*24/8 =Size = 64*3*2*24/8 = 1152byte1152byte 88bit addressbit address Super FIFO Dual port RAMSuper FIFO Dual port RAM ‫המסלולים‬ ‫שלושת‬ ‫של‬ ‫המידע‬ ‫לשמירת‬ ‫משמש‬‫המסלולים‬ ‫שלושת‬ ‫של‬ ‫המידע‬ ‫לשמירת‬ ‫משמש‬Y,Cb,CrY,Cb,Cr‫גם‬ ‫מאפשר‬ .‫מחדש‬ ‫שלהם‬ ‫איחוד‬ ‫לצורך‬‫גם‬ ‫מאפשר‬ .‫מחדש‬ ‫שלהם‬ ‫איחוד‬ ‫לצורך‬ ‫ל‬ ‫הכתיבה‬ ‫פעולת‬ ‫של‬ ‫השהייה‬‫ל‬ ‫הכתיבה‬ ‫פעולת‬ ‫של‬ ‫השהייה‬FlashFlash.. ‫מה‬ ‫מקסימאלית‬ ‫השהייה‬‫מה‬ ‫מקסימאלית‬ ‫השהייה‬flashflash‫ל‬ ‫מותאמת‬‫ל‬ ‫מותאמת‬80cycles80cycles‫של‬ ‫תוספת‬ ‫דרושה‬ ‫לכן‬‫של‬ ‫תוספת‬ ‫דרושה‬ ‫לכן‬ 80/880/8==1010rows per sectorrows per sector ‫ל‬ ‫בנוסף‬‫ל‬ ‫בנוסף‬Cb, CrCb, Cr‫עוד‬ ‫דרושים‬‫עוד‬ ‫דרושים‬6464**22==128128rowsrows‫ועוד‬‫ועוד‬22rowsrows‫ל‬‫ל‬YY :‫סה"כ‬:‫סה"כ‬1010**3+643+64**2+22+2==160160 159159rows * 21bit =rows * 21bit = 420byte420byte 8bit address8bit address 25
  • 26. ROM & RAM CalculationROM & RAM Calculation Huffman table ROMHuffman table ROM ‫הופמן‬ ‫קידוד‬ ‫לביצוע‬ ‫הערכים‬ ‫טבלת‬ ‫את‬ ‫מחזיק‬‫הופמן‬ ‫קידוד‬ ‫לביצוע‬ ‫הערכים‬ ‫טבלת‬ ‫את‬ ‫מחזיק‬ Chrominance DC – 12 rowsChrominance DC – 12 rows Luminance DC – 12 rowsLuminance DC – 12 rows Chrominance AC – 163 rowsChrominance AC – 163 rows Luminance AC – 163 rowsLuminance AC – 163 rows Sum: 350 rows * 20bit =Sum: 350 rows * 20bit = 875byte875byte 9bit address9bit address Flash writer ROMFlash writer ROM ‫ה‬ ‫את‬ ‫מחזיק‬‫ה‬ ‫את‬ ‫מחזיק‬HeaderHeader‫ה‬ ‫קובץ‬ ‫בתחילת‬ ‫שנכתב‬‫ה‬ ‫קובץ‬ ‫בתחילת‬ ‫שנכתב‬jpegjpeg‫עבור‬ ‫הדחוסות‬ ‫הקוונטיזציה‬ ‫טבלאות‬ ‫ואת‬‫עבור‬ ‫הדחוסות‬ ‫הקוונטיזציה‬ ‫טבלאות‬ ‫ואת‬ .‫במערכת‬ ‫הנתמכות‬ ‫האיכויות‬ ‫שלושת‬.‫במערכת‬ ‫הנתמכות‬ ‫האיכויות‬ ‫שלושת‬ 881881rows * 8bit =rows * 8bit = 881bytes881bytes 10bit address10bit address 26
  • 27. ROM & RAM summaryROM & RAM summary RAM Blocks = 126KbyteRAM Blocks = 126Kbyte!! All otherAll other ROM = 3.8kbROM = 3.8kb RAM = 0.6kbRAM = 0.6kb 27
  • 29. Advanced FeatureAdvanced Feature Date StamperDate Stamper ‫כל‬ ‫להדביק‬ ‫אפשרות‬ :‫המידע‬ ‫מעבר‬ ‫בזמן‬ ‫לתמונה‬ ‫תאריך‬ ‫הדבקת‬font ‫ב‬ ‫השמור‬ROM‫את‬ ‫ולקבוע‬ ‫ורוחבית‬ ‫אורכית‬ ‫מתיחה‬ ‫לבצע‬ ‫ניתן‬ .‫מיועד‬ .‫מובנים‬ ‫פרמטרים‬ ‫שינויי‬ ‫ע"י‬ ‫התאריך‬ ‫הדבקת‬ ‫מיקום‬ BONUS BONUS 29
  • 30. BONUS:BONUS: date_stamperdate_stamper  Inputs:Inputs: R_aline, G_aline, B_alineR_aline, G_aline, B_aline –– original alined RGB.original alined RGB. datedate –– the date to be stamped.the date to be stamped. date_en - enable/disable stamping feature.date_en - enable/disable stamping feature.  Outputs:Outputs: R_out, G_out, B_outR_out, G_out, B_out –– ““stampedstamped”” RGB.RGB. 30
  • 31. BONUS:BONUS: date_stamper contdate_stamper cont.. muxdate_reg 8 MUL DIG_HEIGHT LOGIC LOGIC LOGIC LOGIC start spen_in hd clk LOGIC LOGIC X_cnt Y_cnt X_START_FROM Y_START_FROM row_num col_num work_flag DIG_WIDTH LOGIC LOGIC CUBE_HEIGHT LOGIC LOGICCUBE_WIDTH dig_col dig_row dig_start_add + fonts ROM “ascii” ordered add mux 5 1 mux }R,G,B}outoriginal {R,G,B{ stamp_pixel {255,0,0} 3 3 work_flag work_flag work_flag 31
  • 32. BONUS:BONUS: date_stamper contdate_stamper cont.. .‫בקלות‬ ‫לשינוי‬ ‫וניתנים‬ ‫כפרמטרים‬ ‫מוגדרים‬ ‫והמיקומים‬ ‫המימדים‬ 1234 1 2 3 4 X_cnt = X_START_FROM Y_cnt = Y_START_FROM col_num = 0 row_num = 0 image: digit dimensions: CUBE_HEIGHT pixel CUBE_WIDTH DIG_WIDTH DIG_HEIGHT cube dimensions: 32
  • 33. BONUS:BONUS: date_stamper contdate_stamper cont.. :‫נוספים‬ ‫מימדים‬ ‫כמה‬:‫נוספים‬ ‫מימדים‬ ‫כמה‬ CUBE_HEIGHT CUBE_WIDTH CUBE_HEIGHT CUBE_WIDTH CUBE_HEIGHT CUBE_WIDTH 33
  • 34. BONUS:BONUS: date_stamper contdate_stamper cont.. – ‫בו‬ ‫באזור‬ ‫רק‬ ‫פעיל‬ ‫המודול‬work_flag = 1. .‫ישירות‬ ‫מועברים‬ ‫הפיקסלים‬ ,‫זה‬ ‫לאזור‬ ‫מחוץ‬ – ‫התמונה‬ ‫שאר‬work_flag = 0 – ‫התאריך‬ ‫הדבקת‬ ‫אזור‬work_flag = 1 34
  • 35. BONUS:BONUS: date_stamper contdate_stamper cont.. -‫ב‬ ‫שמורים‬ ‫התוים‬ROM‫ומסודרים‬ ‫סדר‬ ‫ע"פ‬ ‫בכתובות‬ASCII‫בכפולות‬ -‫ב‬ ‫התו‬ ‫גודל‬ ‫של‬)cubes(‫הגדרנו‬ ‫כאשר‬ ‫הינו‬ ‫אצלנו‬ ‫התו‬ ‫שגודל‬5. ASCII table font ROM 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 address 48x 5 49x 5 50x 5 51x 5 0 1 2 3 ‫נעשתה‬ ‫הפונטים‬ ‫של‬ ‫וההזנה‬ ‫ההגדרה‬ ...‫יצירתיות‬ ‫מעט‬ ‫ודרשה‬ ‫ידני‬ ‫באופן‬ 35
  • 36. BONUS:BONUS: date_stamper contdate_stamper cont.. -‫ב‬ ‫הפונטים‬ ‫סידור‬ROM‫אחר‬ ‫כיתוב‬ ‫כל‬ ‫הדבקת‬ ,‫התאריך‬ ‫להדבקת‬ ‫פרט‬ ,‫מאפשר‬ ‫לעיל‬ ‫שהוסבר‬ ‫כפי‬ :‫מחרוזת‬ ‫של‬ ‫פשוטה‬ ‫בצורה‬ ‫הכיתוב‬ ‫הזנת‬ ‫ע"י‬ ,‫וגינרי‬ ‫נוח‬ ‫באופן‬ ‫בו‬ ‫שחפצים‬ ‫חיצוני‬ ‫דמה‬ ‫מודול‬ ‫ע"י‬ ‫מועבר‬ ‫התאריך‬)behavioral Verilog(.‫מערך‬ ‫בתוך‬ ‫ונשמר‬ .‫ההדבקה‬ ‫אפשורביטול‬ ‫גם‬ ‫מדמה‬ ‫זה‬ ‫מודול‬ player wire [NUM_OF_DIG*8-1:0] DATE; reg date_en; date_stamper reg [7:0] date_reg[7:0[; wire en 36
  • 37. BONUS:BONUS: date_stamper contdate_stamper cont.. DebuggingDebugging – ‫לשם‬ ‫ולכן‬ ,‫עצמאי‬ ‫באופן‬ ‫פותח‬ ‫המודל‬– ‫לשם‬ ‫ולכן‬ ,‫עצמאי‬ ‫באופן‬ ‫פותח‬ ‫המודל‬debuggingdebugging.‫תמונה‬ ‫המדמה‬ ‫מימדי‬ ‫דו‬ ‫מערך‬ ‫הגדרנו‬.‫תמונה‬ ‫המדמה‬ ‫מימדי‬ ‫דו‬ ‫מערך‬ ‫הגדרנו‬ ''00.‫הנוכחי‬ ‫בפיקסל‬ ‫הדבקה‬ ‫התבצעה‬ ‫שלא‬ ‫מסמל‬ '.‫הנוכחי‬ ‫בפיקסל‬ ‫הדבקה‬ ‫התבצעה‬ ‫שלא‬ ‫מסמל‬ ' ''11.‫הדבקה‬ ‫שבוצעה‬ ‫מסמל‬ '.‫הדבקה‬ ‫שבוצעה‬ ‫מסמל‬ ' :‫לעיל‬ ‫הדוגמא‬ ‫עבור‬:‫לעיל‬ ‫הדוגמא‬ ‫עבור‬ :‫נוספות‬ ‫דוגמאות‬:‫נוספות‬ ‫דוגמאות‬37
  • 39. BONUS:BONUS: date_stamper contdate_stamper cont.. :‫האמיתית‬ ‫ובתמונה‬:‫האמיתית‬ ‫ובתמונה‬ 39
  • 40. Accessories modulesAccessories modules Int to floatInt to float JustifyJustify multipliermultiplier 40
  • 41. Int_to_fpInt_to_fp :‫תיאור‬ ‫מייצוג‬ ‫מספר‬ ‫ממיר‬ ‫המודל‬int‫לייצוג‬fp:‫ההגדרה‬ ‫לפי‬fp={ma_ea}: ma [15:0], ea [7:0[‫המודל‬ ‫של‬ ‫ובשימוש‬justify.‫בכיתה‬ ‫שניתן‬ Input: ‫בייצוג‬ ‫המספר‬int Output: ‫בייצוג‬ ‫המספר‬fp [23:0[‫של‬ ‫מצב‬ ‫על‬ ‫המצביע‬ ‫ביט‬ ,over_flow‫נוסף‬ ‫וביט‬ , ‫של‬ ‫מצב‬ ‫על‬ ‫שמצביע‬under_flow :‫הערות‬ ‫במודל‬ ‫שימוש‬ ‫עושה‬ ‫המודל‬justify. .‫בכלל‬ ‫שעון‬ ‫ללא‬ ‫עובד‬ ‫המודל‬ ‫שהוא‬ ‫כמו‬ ‫ההתחלתי‬ ‫בשלב‬ ‫מוצב‬ ‫המספר‬ ‫קבוע‬ ‫ערך‬ ‫מקבל‬ '‫והאקס‬ ,‫במטיסה‬00001111 41
  • 42. JustifyJustify :‫תיאור‬ ‫הלוגיקה‬ ‫לפי‬ ‫אותם‬ ‫ומיישר‬ '‫ואקס‬ ‫מנטיסה‬ ‫מקבל‬ ‫המודל‬ .‫המצורף‬ ‫בתרשים‬ Input: ea [7:0] ,ma [15:0] , last_is_1 Output: ‫בייצוג‬ ‫המספר‬fp :‫הערות‬ .‫בכלל‬ ‫שעון‬ ‫ללא‬ ‫עובד‬ ‫המודל‬ ‫הסיבית‬ ‫את‬ ‫לו‬ ‫והוספנו‬ ‫המקורי‬ ‫המודל‬ ‫את‬ ‫שינינו‬last_is_1 -‫ל‬ ‫שווה‬ ‫המקורית‬ '‫המנ‬ ‫של‬ ‫האחרונה‬ ‫הסיבית‬ ‫אם‬ ‫שמתריעה‬1 (‫תרשים‬ ‫)ראה‬ ‫אותה‬ ‫נחתוך‬ ‫שלא‬ ‫מנת‬ ‫על‬ (ma[i]^ma[i-1]) ‫זה‬ ‫אז‬ 0‫או‬1 - ‫?אין‬ i=16 ‫?יש‬ ma[0] = 1 ma[16:1] + 16'h1ma[16:1] {ea[7],ea} + 9'd1 last_is_1 {ma,1'b1} << (15-found-1)ma << (15-found) {ea[7],ea} - 9'd15 + found ‫?לא‬ ‫?כן‬ ‫?כן‬ ‫?כן‬ ‫?לא‬ ‫?לא‬ ma [16:0] ea_justified [7:0] over_flow under_flow ea [7:0] ma_justified [16:0] last_is_1 '‫במנט‬ ‫הראשון‬ ‫המקום‬ ‫את‬ ‫נחפש‬ ‫בריצה‬ ‫שונות‬ ‫סיביות‬ ‫שתי‬ ‫יש‬ ‫שבו‬ ‫ה‬ ‫מהסיבית‬16‫ומטה‬ ‫המקורית‬ '‫במנט‬, ‫ה‬bit‫האחרון‬ =1? 42
  • 43. MultiplyMultiply :‫תיאור‬ ‫של‬ ‫הכפלה‬ ‫מבצע‬ ‫המודל‬2‫בייצוג‬ ‫מספרים‬fp'‫אקס‬ ‫סכימת‬ ,‫מנטיסות‬ ‫)הכפלת‬ ‫ה‬ ‫בעזרת‬ ‫ותיקון‬justify.( Input: ‫בייצוג‬ ‫מספרים‬ ‫שני‬fp[23:0[ Output: ‫בייצוג‬ ‫המכפלה‬fp [23:0[‫של‬ ‫מצב‬ ‫על‬ ‫המצביע‬ ‫ביט‬ ,over_flow‫נוסף‬ ‫וביט‬ , ‫של‬ ‫מצב‬ ‫על‬ ‫שמצביע‬under_flow :‫הערות‬ .‫בכלל‬ ‫שעון‬ ‫ללא‬ ‫עובד‬ ‫המודל‬ a_fp [23:0] o_fp [23:0] over_flow under_flow b_fp [23:0] ‫נכנסים‬2‫מספרים‬fp '‫ואקס‬ ‫למנטיסה‬ ‫המספרים‬ ‫את‬ ‫נפצל‬ :‫ריפוד‬ ‫נבצע‬ - ‫האחרון‬ ‫האיבר‬ ‫בעזרת‬ ‫נרפד‬ ‫המטיסה‬ ‫את‬16‫פעמים‬ ‫אחת‬ ‫פעם‬ – ‫האחרון‬ ‫האיבר‬ ‫בעזרת‬ ‫נרפד‬ '‫האקס‬ ‫את‬ ‫המנטיסות‬ ‫את‬ ‫נכפיל‬ '‫האקס‬ ‫את‬ ‫נסכום‬ ‫ב‬ ‫התוצאה‬ ‫את‬ ‫נעביר‬justify‫תוצאה‬ ‫אתה‬ ‫ונקבל‬ :‫דוגמא‬:‫דוגמא‬ 43
  • 44. ‫בלוקים‬ ‫ויצירת‬ ‫המידע‬ ‫–קליטת‬ ‫ראשון‬ ‫חלק‬ 44
  • 45. RGBtoYCbCrRGBtoYCbCr--‫מ‬ ‫-ממיר‬‫מ‬ ‫-ממיר‬RGBRGB‫-ל‬‫-ל‬YCbCrYCbCr‫הכפלת‬ ‫ע"י‬‫הכפלת‬ ‫ע"י‬ ‫.מטריצות‬‫.מטריצות‬ WrPixelsClientWrPixelsClient--‫ה‬ ‫אל‬ ‫בלוקים‬ ‫של‬ "‫"רצועות‬ ‫-כותב‬‫ה‬ ‫אל‬ ‫בלוקים‬ ‫של‬ "‫"רצועות‬ ‫-כותב‬RAMRAM ‫שורה‬ ‫אחר‬ ‫.שורה‬‫שורה‬ ‫אחר‬ ‫.שורה‬ arb_strictarb_strict--‫למודול‬ ‫מלאה‬ ‫עדיפות‬ ‫נותן‬‫למודול‬ ‫מלאה‬ ‫עדיפות‬ ‫נותן‬ WrPixelsClientWrPixelsClient.. ram_blocksram_blocks--‫הפיקסלים‬ ‫של‬ ‫הבלוקים‬ ‫את‬ ‫מאחסן‬‫הפיקסלים‬ ‫של‬ ‫הבלוקים‬ ‫את‬ ‫מאחסן‬ ‫ע"י‬ ‫הנכתבים‬‫ע"י‬ ‫הנכתבים‬WrPixelsClientWrPixelsClient.. DCTclientDCTclient--‫מה‬ ‫הפיקסלים‬ ‫את‬ ‫-קורא‬‫מה‬ ‫הפיקסלים‬ ‫את‬ ‫-קורא‬RAMRAM‫בסדר‬‫בסדר‬ ‫הרצוי‬‫הרצוי‬‫ושולח‬‫ושולח‬Y,Cb,CrY,Cb,Cr‫בלוק‬ ‫אחר‬ ‫בלוק‬‫בלוק‬ ‫אחר‬ ‫בלוק‬ ‫ה‬ ‫אל‬ ‫-הלאה‬‫ה‬ ‫אל‬ ‫-הלאה‬DCTDCT.. date_stamperdate_stamper--‫בונוס‬‫בונוס‬‫לתמונה‬ ‫תאריך‬ ‫מדביק‬ ..‫לתמונה‬ ‫תאריך‬ ‫מדביק‬ .. 45
  • 46. 46
  • 47. RGBtoYCbCrRGBtoYCbCr  Inputs:Inputs: Red, Green, BlueRed, Green, Blue –– 24 bit fp.24 bit fp. startstart –– start convert.start convert.  Outputs:Outputs: Y, Cb, CrY, Cb, Cr –– 24 bit fp.24 bit fp. 47
  • 48. RGBtoYCbCr contRGBtoYCbCr cont.. YY 0.299 0.587 0.1140.299 0.587 0.114 RR 128128 Cb =Cb = - 0.1687 - 0.3313 0.5 *- 0.1687 - 0.3313 0.5 * G -G - 00 CrCr 0.5 - 0.4187 - 0.08130.5 - 0.4187 - 0.0813 BB 00 logiclogic mux 0.2990.299 0.5870.587 0.1140.114 -- 0.16870.1687 -- 0.33130.3313 0.50.5 0.50.5 -- 0.41870.4187 -- 0.08130.0813 mul add reg mux R G B j j i i Y Cb Cr -128 48
  • 49. RGBtoYCbCr contRGBtoYCbCr cont.. start calculations dout_valid, when Y,Cb and Cr calculated and ready. 49
  • 50. RGBtoYCbCr contRGBtoYCbCr cont.. ‫פעולה‬ ‫ועקרון‬ ‫תכנון‬ ‫שיקולי‬‫פעולה‬ ‫ועקרון‬ ‫תכנון‬ ‫שיקולי‬ ‫ב‬ ‫שימוש‬‫ב‬ ‫שימוש‬multipliermultiplier.‫יחיד‬.‫יחיד‬ ‫של‬ ‫מימדי‬ ‫דו‬ ‫כמערך‬ ‫מוחזקת‬ ‫הקבועים‬ ‫מטריצת‬‫של‬ ‫מימדי‬ ‫דו‬ ‫כמערך‬ ‫מוחזקת‬ ‫הקבועים‬ ‫מטריצת‬wireswires-‫ל‬ ‫)מקוצרים‬ .-‫ל‬ ‫)מקוצרים‬ .00-‫ו‬-‫ו‬11.(‫בהתאמה‬.(‫בהתאמה‬ ‫רגיסטרים‬ ‫שני‬‫רגיסטרים‬ ‫שני‬i,ji,j.‫המטריצה‬ ‫הכפלת‬ ‫על‬ ‫רצים‬.‫המטריצה‬ ‫הכפלת‬ ‫על‬ ‫רצים‬ ‫ל‬ ‫בהתאם‬ ‫המידע‬ ‫את‬ ‫מנתבים‬ ‫ובמוצא‬ ‫בכניסה‬ ‫המוקסים‬‫ל‬ ‫בהתאם‬ ‫המידע‬ ‫את‬ ‫מנתבים‬ ‫ובמוצא‬ ‫בכניסה‬ ‫המוקסים‬i,ji,j.. ‫השורה‬ ‫ובסוף‬ ‫העמודה‬ ‫בוקטור‬ ‫השורה‬ ‫כפל‬ ‫של‬ ‫הנצבר‬ ‫הערך‬ ‫את‬ ‫שומר‬ ‫זמני‬ ‫רגיסטר‬‫השורה‬ ‫ובסוף‬ ‫העמודה‬ ‫בוקטור‬ ‫השורה‬ ‫כפל‬ ‫של‬ ‫הנצבר‬ ‫הערך‬ ‫את‬ ‫שומר‬ ‫זמני‬ ‫רגיסטר‬ .‫המתאים‬ ‫למוצא‬ ‫מועבר‬.‫המתאים‬ ‫למוצא‬ ‫מועבר‬ ‫שנבחנו‬ ‫אלטרנטיבות‬‫שנבחנו‬ ‫אלטרנטיבות‬ -‫ב‬ ‫המטריצה‬ ‫ערכי‬ ‫שמירת‬-‫ב‬ ‫המטריצה‬ ‫ערכי‬ ‫שמירת‬ROMROM.‫למודול‬ ‫מחוץ‬.‫למודול‬ ‫מחוץ‬ ‫הוספת‬ ‫מצדיקה‬ ‫שלא‬ ‫קטנה‬ ‫מספרים‬ ‫כמות‬ :‫חסרונות‬‫הוספת‬ ‫מצדיקה‬ ‫שלא‬ ‫קטנה‬ ‫מספרים‬ ‫כמות‬ :‫חסרונות‬ROMROM.. ‫הקל‬ ‫וזה‬ ,‫במטריצה‬ ‫מדובר‬ ‫כי‬ ‫יותר‬ ‫טבעית‬ ‫הייתה‬ ‫פנימי‬ ‫מימדי‬ ‫דו‬ ‫מערך‬ ‫בתוך‬ ‫הערכים‬ ‫שמירת‬‫הקל‬ ‫וזה‬ ,‫במטריצה‬ ‫מדובר‬ ‫כי‬ ‫יותר‬ ‫טבעית‬ ‫הייתה‬ ‫פנימי‬ ‫מימדי‬ ‫דו‬ ‫מערך‬ ‫בתוך‬ ‫הערכים‬ ‫שמירת‬ .‫הכפל‬ ‫פעולת‬ ‫ביצוע‬ ‫על‬.‫הכפל‬ ‫פעולת‬ ‫ביצוע‬ ‫על‬ 50
  • 51. WrPixelsClientWrPixelsClient  Inputs:Inputs: Y, Cb, CrY, Cb, Cr –– 24 bit fp.24 bit fp. ackack –– acknowledge from arb_strict.acknowledge from arb_strict.  Outputs:Outputs: datadata –– 72 bit of {Y,Cb,Cr} together.72 bit of {Y,Cb,Cr} together. strip_readystrip_ready –– finished writing a full strip into RAM.finished writing a full strip into RAM. start_addstart_add –– starting address of the strip in RAM.starting address of the strip in RAM. reqreq –– request from arb_strict.request from arb_strict. 51
  • 52. WrPixelsClient contWrPixelsClient cont.. Y Cb Cr ack to arb/ram_blocks {Y,Cb,Cr} 72 bit spen_in din_valid req add cnt cmp mux to DCTclient blocks_num 1 strip_ready (1 bit pulse), start_add (14 bit) Strip ready 0 52
  • 53. WrPixelsClient cont.WrPixelsClient cont. valid from RGBtoYCbCr pixels strip ready to DCTclient, when a full strip written to ram_blocks start_add to DCTclient, when a full strip written to ram_blocks{Y,Cb,Cr} data to ram_Blocks always receives ack for req 53
  • 54. WrPixelsClient contWrPixelsClient cont ‫פעולה‬ ‫ועקרון‬ ‫תכנון‬ ‫שיקולי‬‫פעולה‬ ‫ועקרון‬ ‫תכנון‬ ‫שיקולי‬ -‫ה‬ ‫אל‬ ‫הכתיבה‬-‫ה‬ ‫אל‬ ‫הכתיבה‬ram_blocksram_blocks‫שיש‬ ‫פעם‬ ‫בכל‬ ‫מתבצעת‬‫שיש‬ ‫פעם‬ ‫בכל‬ ‫מתבצעת‬validvalid-‫מ‬-‫מ‬RGBtoYCbCrRGBtoYCbCr.. – ‫ב‬ ‫עולה‬ ‫לכתיבה‬ ‫הכתובת‬– ‫ב‬ ‫עולה‬ ‫לכתיבה‬ ‫הכתובת‬11."‫שורה‬ ‫אחר‬ ‫"שורה‬ ‫מתבצעת‬ ‫הכתיבה‬ ‫וכך‬ ,."‫שורה‬ ‫אחר‬ ‫"שורה‬ ‫מתבצעת‬ ‫הכתיבה‬ ‫וכך‬ , ."‫שלמה‬ ‫"רצועה‬ ‫התמלאה‬ ‫מתי‬ ‫לדעת‬ ‫ניתן‬ ‫וכך‬ ‫התמונה‬ ‫אורך‬ ‫את‬ ‫בכניסה‬ ‫מקבל‬ ‫המודול‬."‫שלמה‬ ‫"רצועה‬ ‫התמלאה‬ ‫מתי‬ ‫לדעת‬ ‫ניתן‬ ‫וכך‬ ‫התמונה‬ ‫אורך‬ ‫את‬ ‫בכניסה‬ ‫מקבל‬ ‫המודול‬ ‫הפולס‬ ‫נשלח‬ ‫שהתמלאה‬ "‫"רצועה‬ ‫כל‬ ‫עבור‬‫הפולס‬ ‫נשלח‬ ‫שהתמלאה‬ "‫"רצועה‬ ‫כל‬ ‫עבור‬""strip readystrip ready””‫התחילה‬ ‫ממנה‬ ‫והכתובת‬‫התחילה‬ ‫ממנה‬ ‫והכתובת‬ -‫ה‬ ‫אל‬ ,‫להתמלא‬ "‫ה"רצועה‬-‫ה‬ ‫אל‬ ,‫להתמלא‬ "‫ה"רצועה‬DCTclientDCTclient.‫לקרוא‬ ‫להתחיל‬ ‫ומהיכן‬ ‫מתי‬ ‫שידע‬ ‫מנת‬ ‫על‬.‫לקרוא‬ ‫להתחיל‬ ‫ומהיכן‬ ‫מתי‬ ‫שידע‬ ‫מנת‬ ‫על‬ -‫מה‬ ‫עדיפות‬ ‫יקבל‬ ‫תמיד‬ ‫המודול‬-‫מה‬ ‫עדיפות‬ ‫יקבל‬ ‫תמיד‬ ‫המודול‬arb_strictarb_strict.‫תקינה‬ ‫מידע‬ ‫זרימת‬ ‫על‬ ‫לשמור‬ ‫מנת‬ ‫על‬.‫תקינה‬ ‫מידע‬ ‫זרימת‬ ‫על‬ ‫לשמור‬ ‫מנת‬ ‫על‬ ‫שנבחנו‬ ‫אלטרנטיבות‬‫שנבחנו‬ ‫אלטרנטיבות‬ ‫ספירת‬‫ספירת‬88hdhd."‫"רצועה‬ ‫מילוי‬ ‫לזהות‬ ‫מנת‬ ‫על‬ ,‫התמונה‬ ‫רוחב‬ ‫את‬ ‫לקבל‬ ‫,במקום‬."‫"רצועה‬ ‫מילוי‬ ‫לזהות‬ ‫מנת‬ ‫על‬ ,‫התמונה‬ ‫רוחב‬ ‫את‬ ‫לקבל‬ ‫,במקום‬ :‫החיסרונות‬:‫החיסרונות‬ -‫ה‬ ‫עקב‬ ‫סינכרון‬ ‫חוסר‬-‫ה‬ ‫עקב‬ ‫סינכרון‬ ‫חוסר‬pipelinepipeline-‫ה‬ ‫בין‬ ‫שנוצר‬-‫ה‬ ‫בין‬ ‫שנוצר‬imagerimager.‫המודול‬ ‫לבין‬.‫המודול‬ ‫לבין‬ -‫ה‬-‫ה‬hdhd.‫הלוגיקה‬ ‫את‬ ‫מסרבל‬ ‫וזה‬ ‫שורה‬ ‫בסוף‬ ‫ולא‬ ‫שורה‬ ‫בתחילת‬ ‫עולה‬.‫הלוגיקה‬ ‫את‬ ‫מסרבל‬ ‫וזה‬ ‫שורה‬ ‫בסוף‬ ‫ולא‬ ‫שורה‬ ‫בתחילת‬ ‫עולה‬ -‫ה‬ ‫בתוך‬ "‫בלוק‬ ‫אחר‬ ‫"בלוק‬ ‫של‬ ‫בסדר‬ ‫הפיקסלים‬ ‫שמירת‬-‫ה‬ ‫בתוך‬ "‫בלוק‬ ‫אחר‬ ‫"בלוק‬ ‫של‬ ‫בסדר‬ ‫הפיקסלים‬ ‫שמירת‬RAMRAM."‫שורה‬ ‫אחר‬ ‫"שורה‬ ‫ולא‬."‫שורה‬ ‫אחר‬ ‫"שורה‬ ‫ולא‬ ‫שהמודול‬ ‫החלטנו‬ ‫דבר‬ ‫של‬ ‫ובסופו‬ ,‫עקרוני‬ ‫עניין‬ ‫אינו‬ ‫זהו‬ ‫למעשה‬‫שהמודול‬ ‫החלטנו‬ ‫דבר‬ ‫של‬ ‫ובסופו‬ ,‫עקרוני‬ ‫עניין‬ ‫אינו‬ ‫זהו‬ ‫למעשה‬DCTclientDCTclient‫שיקרא‬ ‫זה‬ ‫יהיה‬‫שיקרא‬ ‫זה‬ ‫יהיה‬ ."‫בלוק‬ ‫אחר‬ ‫"בלוק‬."‫בלוק‬ ‫אחר‬ ‫"בלוק‬ 54
  • 55. arb_strictarb_strict  Inputs:Inputs: wr_data_1, wr_data_2wr_data_1, wr_data_2 –– 72 bit of {Y,Cb,Cr}.72 bit of {Y,Cb,Cr}. add_1, add_2add_1, add_2 –– wanted address of RAM.wanted address of RAM. req_1, req_2req_1, req_2 –– clients requests.clients requests. rnw_1, rnw_2rnw_1, rnw_2 –– ““read not writeread not write”” requests of the clients.requests of the clients.  Outputs:Outputs: ack_1, ack_2ack_1, ack_2 –– acknowledges to clients. 1 has higher priority.acknowledges to clients. 1 has higher priority. add, wr_data, rnwadd, wr_data, rnw –– preferred clientpreferred client’’s signals directed to RAM.s signals directed to RAM.55
  • 56. arb_strict contarb_strict cont.. logiclogic mux req1 (gets full priority) req2 ack1 ack2 Address, Data to ram_blocks Address1, Data1 Address2 Client1 = WrPixelsClient Client2 = DCTclient 56
  • 57. arb_strict contarb_strict cont.. client_2 requests constantly, But he gets ack only if client_1 doesn’t send a request. whenever client_1 sends a request, he’s acknowledged immediately. the acknowledged client’s wires connected to ram_blocks. client1 = WrPixelsClient client2 = DCTclient 57
  • 58. arb_strict contarb_strict cont.. ‫פעולה‬ ‫ועקרון‬ ‫תכנון‬ ‫שיקולי‬‫פעולה‬ ‫ועקרון‬ ‫תכנון‬ ‫שיקולי‬ -‫ה‬ ‫אל‬ ‫דרכו‬ ‫המחוברים‬ ‫המודולים‬ ‫בין‬ ‫עדיפות‬ ‫יחס‬ ‫מגדיר‬-‫ה‬ ‫אל‬ ‫דרכו‬ ‫המחוברים‬ ‫המודולים‬ ‫בין‬ ‫עדיפות‬ ‫יחס‬ ‫מגדיר‬ram_blocksram_blocks.. -‫ל‬ ‫פניה‬ ‫מבקש‬ ‫ביותר‬ ‫המועדף‬ ‫שהמודול‬ ‫פעם‬ ‫בכל‬-‫ל‬ ‫פניה‬ ‫מבקש‬ ‫ביותר‬ ‫המועדף‬ ‫שהמודול‬ ‫פעם‬ ‫בכל‬ram_blocksram_blocks ((reqreq‫אישור‬ ‫מקבל‬ ‫הוא‬ (‫אישור‬ ‫מקבל‬ ‫הוא‬ ( ‫מיידי‬‫מיידי‬))ackack((-‫ה‬ ‫אל‬ ‫פונה‬ ‫אחר‬ ‫מודול‬ ‫זמן‬ ‫באותו‬ ‫אם‬ ‫תלות‬ ‫ללא‬ ,-‫ה‬ ‫אל‬ ‫פונה‬ ‫אחר‬ ‫מודול‬ ‫זמן‬ ‫באותו‬ ‫אם‬ ‫תלות‬ ‫ללא‬ ,ram_blocksram_blocks.. -‫ה‬ ‫עם‬ ‫מתקשר‬ ‫המועדף‬ ‫המודול‬ ‫אם‬ ,‫כן‬ ‫כמו‬-‫ה‬ ‫עם‬ ‫מתקשר‬ ‫המועדף‬ ‫המודול‬ ‫אם‬ ,‫כן‬ ‫כמו‬ram_blocksram_blocks‫אישור‬ ‫יקבל‬ ‫לא‬ ‫אחר‬ ‫מודול‬ ‫שום‬‫אישור‬ ‫יקבל‬ ‫לא‬ ‫אחר‬ ‫מודול‬ ‫שום‬ .‫ההתקשרות‬ ‫את‬ ‫יסיים‬ ‫המועדף‬ ‫שהמודול‬ ‫עד‬ ‫פנייה‬ ‫יבקש‬ ‫אם‬.‫ההתקשרות‬ ‫את‬ ‫יסיים‬ ‫המועדף‬ ‫שהמודול‬ ‫עד‬ ‫פנייה‬ ‫יבקש‬ ‫אם‬))strict lockstrict lock((.. ‫בין‬ ‫נקבע‬ ‫העדיפות‬ ‫יחס‬ ‫אצלנו‬‫בין‬ ‫נקבע‬ ‫העדיפות‬ ‫יחס‬ ‫אצלנו‬22– ‫בלבד‬ ‫מודולים‬– ‫בלבד‬ ‫מודולים‬11--WrPixelsClient, 2-DCTclientWrPixelsClient, 2-DCTclient.. ‫שנבחנו‬ ‫אלטרנטיבות‬‫שנבחנו‬ ‫אלטרנטיבות‬ ‫למימוש‬ ‫קונפיגורציות‬ ‫כמה‬ ‫יש‬ ‫למעשה‬‫למימוש‬ ‫קונפיגורציות‬ ‫כמה‬ ‫יש‬ ‫למעשה‬arbarb‫שקונפיגורציית‬ ‫כמובן‬ ‫אך‬ ,‫בקורס‬ ‫שנלמדו‬ ‫כפי‬‫שקונפיגורציית‬ ‫כמובן‬ ‫אך‬ ,‫בקורס‬ ‫שנלמדו‬ ‫כפי‬ -‫ה‬-‫ה‬strict lockstrict lock-‫מ‬ ‫למנוע‬ ‫שאין‬ ‫כיוון‬ ‫עבורינו‬ ‫ביותר‬ ‫המתאימה‬ ‫היא‬-‫מ‬ ‫למנוע‬ ‫שאין‬ ‫כיוון‬ ‫עבורינו‬ ‫ביותר‬ ‫המתאימה‬ ‫היא‬WrPixelsClientWrPixelsClient‫את‬‫את‬ -‫ה‬ ‫עם‬ ‫ההתקשרות‬-‫ה‬ ‫עם‬ ‫ההתקשרות‬ram_blocksram_blocks.(‫לעיל‬ ‫)ראה‬ ‫מקרה‬ ‫בשום‬.(‫לעיל‬ ‫)ראה‬ ‫מקרה‬ ‫בשום‬ 58
  • 59. ram_blocksram_blocks  Inputs:Inputs: addadd –– 14 bit address.14 bit address. wr_datawr_data –– 72 bit of {Y,Cb,Cr}to store.72 bit of {Y,Cb,Cr}to store.  Outputs:Outputs: rd_datard_data –– 72 bit of {Y,Cb,Cr}to read.72 bit of {Y,Cb,Cr}to read. 59
  • 60. ram_blocks contram_blocks cont.. “block1” “block2” ram_blocks R 24bit G 24bit B 24bit R 24bit B 24bit R 24bit B 24bit R 24bit B 24bit R 24bit B 24bit R 24bit B 24bit R 24bit B 24bit R 24bit B 24bit R 24bit B 24bit R 24bit B 24bit R 24bit B 24bit R 24bit B 24bit R 24bit B 24bit R 24bit B 24bit R 24bit B 24bit R 24bit B 24bit R 24bit B 24bit R 24bit B 24bit R 24bit B 24bit R 24bit B 24bit R 24bit B 24bit R 24bit B 24bit R 24bit B 24bit R 24bit B 24bit line1 of block1 line1 of block2 line2 of block1 G 24bit G 24bit G 24bit G 24bit G 24bit G 24bit G 24bit G 24bit G 24bit G 24bit G 24bit G 24bit G 24bit G 24bit G 24bit G 24bit G 24bit G 24bit G 24bit G 24bit G 24bit G 24bit G 24bit IMAGE "‫"רגיל‬ ‫בסדר‬ ‫מילוי‬ "‫שורה‬ ‫אחר‬ ‫"שורה‬ 60
  • 61. ram_blocks contram_blocks cont.. the pixels being filled: srrip_ready, DCTclient can start reading the data. rnw swiches to read because DCTclient began reading. DCTclient begin reading the data. WrPixelsClient continues write occasionaly, and the data not being read during this cycle. 61
  • 62. ram_blocks contram_blocks cont.. ‫פעולה‬ ‫ועקרון‬ ‫תכנון‬ ‫שיקולי‬‫פעולה‬ ‫ועקרון‬ ‫תכנון‬ ‫שיקולי‬ ‫לצורך‬ "‫בלוק‬ ‫אחר‬ ‫"בלוק‬ ‫של‬ ‫בסדר‬ ‫ממנו‬ ‫שישלפו‬ ‫מנת‬ ‫על‬ ‫הפיקסלים‬ ‫את‬ ‫זמנית‬ ‫מאחסן‬‫לצורך‬ "‫בלוק‬ ‫אחר‬ ‫"בלוק‬ ‫של‬ ‫בסדר‬ ‫ממנו‬ ‫שישלפו‬ ‫מנת‬ ‫על‬ ‫הפיקסלים‬ ‫את‬ ‫זמנית‬ ‫מאחסן‬ -‫ה‬ ‫ביצוע‬-‫ה‬ ‫ביצוע‬DCTDCT.. ‫הינו‬ ‫תא‬ ‫כל‬ ‫רוחב‬‫הינו‬ ‫תא‬ ‫כל‬ ‫רוחב‬2424‫כפול‬ ‫ביט‬‫כפול‬ ‫ביט‬33‫ובסה"כ‬ ,‫פיקסלים‬‫ובסה"כ‬ ,‫פיקסלים‬7272.‫ביט‬.‫ביט‬ ‫עד‬ ‫זמנית‬ ‫בו‬ ‫לאחסן‬ ‫יוכל‬ ‫שהזיכרון‬ ‫כך‬ ‫תוכנן‬ ‫הכתובות‬ ‫מרחב‬‫עד‬ ‫זמנית‬ ‫בו‬ ‫לאחסן‬ ‫יוכל‬ ‫שהזיכרון‬ ‫כך‬ ‫תוכנן‬ ‫הכתובות‬ ‫מרחב‬22.‫מלאות‬ "‫"רצועות‬.‫מלאות‬ "‫"רצועות‬ ‫הינו‬ ‫המירבי‬ ‫התמונה‬ ‫שרוחב‬ ‫ובהנחה‬‫הינו‬ ‫המירבי‬ ‫התמונה‬ ‫שרוחב‬ ‫ובהנחה‬10241024:‫הינו‬ ‫החישוב‬ ,‫פיקסלים‬:‫הינו‬ ‫החישוב‬ ,‫פיקסלים‬ 1024 * 8 * 2 = 16K1024 * 8 * 2 = 16K =>=> 14 bit14 bit ‫שנבחנו‬ ‫אלטרנטיבות‬‫שנבחנו‬ ‫אלטרנטיבות‬ .‫יותר‬ ‫בזבזני‬ ‫אך‬ ‫פשוט‬ ‫יותר‬ ‫זה‬ ,‫רצועה‬ ‫לכל‬ ‫אחד‬ ,‫זיכרון‬ ‫אזורי‬ ‫שני‬ ‫בין‬ ‫מיתוג‬.‫יותר‬ ‫בזבזני‬ ‫אך‬ ‫פשוט‬ ‫יותר‬ ‫זה‬ ,‫רצועה‬ ‫לכל‬ ‫אחד‬ ,‫זיכרון‬ ‫אזורי‬ ‫שני‬ ‫בין‬ ‫מיתוג‬ ‫פיקסלים‬ ‫בשורה‬ ‫שורות‬ ‫ברצועה‬ ‫רצועות‬ 62
  • 63. DCTclientDCTclient  Inputs:Inputs: startstart –– strip ready in RAM.strip ready in RAM. start_addstart_add –– starting address of the strip in RAM.starting address of the strip in RAM. rd_datard_data –– 72 bit of {Y,Cb,Cr} from RAM.72 bit of {Y,Cb,Cr} from RAM. ackack –– acknowledge from arb_strict.acknowledge from arb_strict.  Outputs:Outputs: Ydata, Cbdata, CrdataYdata, Cbdata, Crdata –– 24 bit fp.24 bit fp. reqreq –– request from arb_strict.request from arb_strict. 63
  • 64. DCTclient contDCTclient cont.. ram_blocks line1 of block1 line1 of block2 line2 of block1 Y Cb Cr mux {Y,Cb,Cr} 72 bit ack computed address computed address to ram_blocks (through arb_strict) R 24bit G 24bit B 24bit R 24bit G 24bit B 24bit R 24bit G 24bit B 24bit R 24bit G 24bit B 24bit R 24bit G 24bit B 24bit R 24bit G 24bit B 24bit R 24bit G 24bit B 24bit R 24bit G 24bit B 24bit R 24bit G 24bit B 24bit R 24bit G 24bit B 24bit R 24bit G 24bit B 24bit R 24bit G 24bit B 24bit R 24bit G 24bit B 24bit R 24bit G 24bit B 24bit R 24bit G 24bit B 24bit R 24bit G 24bit B 24bit R 24bit G 24bit B 24bit R 24bit G 24bit B 24bit R 24bit G 24bit B 24bit R 24bit G 24bit B 24bit R 24bit G 24bit B 24bit R 24bit G 24bit B 24bit R 24bit G 24bit B 24bit R 24bit G 24bit B 24bit R 24bit G 24bit B 24bit R 24bit G 24bit B 24bit R 24bit G 24bit B 24bit R 24bit G 24bit B 24bit R 24bit G 24bit B 24bit R 24bit G 24bit B 24bit R 24bit G 24bit B 24bit R 24bit G 24bit B 24bit R 24bit G 24bit B 24bit R 24bit G 24bit B 24bit R 24bit G 24bit B 24bit R 24bit G 24bit B 24bit R 24bit G 24bit B 24bit R 24bit G 24bit B 24bit R 24bit G 24bit B 24bit R 24bit G 24bit B 24bit R 24bit G 24bit B 24bit R 24bit G 24bit B 24bit R 24bit G 24bit B 24bit R 24bit G 24bit B 24bit R 24bit G 24bit B 24bit R 24bit G 24bit B 24bit R 24bit G 24bit B 24bit R 24bit G 24bit B 24bit G 24bit “block1” Y Cb Cr “block2” “block3” "‫בלוק‬ ‫אחר‬ ‫"בלוק‬ ‫של‬ ‫בסדר‬ ‫ושליחה‬ ‫שליפה‬ 64
  • 65. DCTclient contDCTclient cont.. start received from WrPixelsClient when a strip is ready. the read address is set to the start_add received from WrPixelsClient, and advanced on. req being set, and ack received. d_out_valid, with 8 clock spaces required by the DCT modules. 65
  • 66. DCTclient contDCTclient cont.. ‫פעולה‬ ‫ועקרון‬ ‫תכנון‬ ‫שיקולי‬‫פעולה‬ ‫ועקרון‬ ‫תכנון‬ ‫שיקולי‬ -‫ה‬-‫ה‬DCTclientDCTclient-‫מה‬ ‫הפיקסלים‬ ‫את‬ ‫שולף‬-‫מה‬ ‫הפיקסלים‬ ‫את‬ ‫שולף‬ram_blocksram_blocks‫מעביר‬ ‫שהוא‬ ‫כך‬ ‫מוגדר‬ ‫סדר‬ ‫ע"פ‬‫מעביר‬ ‫שהוא‬ ‫כך‬ ‫מוגדר‬ ‫סדר‬ ‫ע"פ‬ -‫ה‬ ‫אל‬ ‫הלאה‬ ‫אותם‬-‫ה‬ ‫אל‬ ‫הלאה‬ ‫אותם‬DCTDCT."‫בלוק‬ ‫אחר‬ ‫"בלוק‬ ‫של‬ ‫בסדר‬."‫בלוק‬ ‫אחר‬ ‫"בלוק‬ ‫של‬ ‫בסדר‬ ‫הפולס‬ ‫את‬ ‫מקבל‬‫הפולס‬ ‫את‬ ‫מקבל‬""strip readystrip ready””"‫ה"רצועה‬ ‫מאוחסנת‬ ‫שבה‬ ‫ההתחלתית‬ ‫הכתובת‬ ‫ואת‬"‫ה"רצועה‬ ‫מאוחסנת‬ ‫שבה‬ ‫ההתחלתית‬ ‫הכתובת‬ ‫ואת‬ ‫הנוכחית‬‫הנוכחית‬))start_addstart_add((-‫מה‬ ‫הפיקסלים‬ ‫את‬ ‫לקרוא‬ ‫ומהיכן‬ ‫מתי‬ ‫יודע‬ ‫וכך‬ ,-‫מה‬ ‫הפיקסלים‬ ‫את‬ ‫לקרוא‬ ‫ומהיכן‬ ‫מתי‬ ‫יודע‬ ‫וכך‬ ,ram_blocksram_blocks.. ‫פנימיים‬ ‫מונים‬ ‫שני‬ ‫מכיל‬ ‫המודול‬ :‫הכתובת‬ ‫חישוב‬‫פנימיים‬ ‫מונים‬ ‫שני‬ ‫מכיל‬ ‫המודול‬ :‫הכתובת‬ ‫חישוב‬i,ji,j‫והעמודה‬ ‫השורה‬ ‫מספר‬ ‫את‬ ‫המציינים‬‫והעמודה‬ ‫השורה‬ ‫מספר‬ ‫את‬ ‫המציינים‬ ‫ומונה‬ ,‫הנוכחי‬ ‫הבלוק‬ ‫בתוך‬ ‫הנוכחי‬ ‫הפיקסל‬ ‫של‬‫ומונה‬ ,‫הנוכחי‬ ‫הבלוק‬ ‫בתוך‬ ‫הנוכחי‬ ‫הפיקסל‬ ‫של‬block_cntblock_cnt‫בתוך‬ ‫הנוכחי‬ ‫הבלוק‬ ‫את‬ ‫המציין‬‫בתוך‬ ‫הנוכחי‬ ‫הבלוק‬ ‫את‬ ‫המציין‬ ‫הבלוקים‬ ‫מספר‬ ‫את‬ ‫בכניסה‬ ‫מקבל‬ ‫כן‬ ‫כמו‬ ."‫ה"רצועה‬‫הבלוקים‬ ‫מספר‬ ‫את‬ ‫בכניסה‬ ‫מקבל‬ ‫כן‬ ‫כמו‬ ."‫ה"רצועה‬))blocks_numblocks_num((.. :‫הינו‬ ‫כך‬ ‫אם‬ ‫הפיקסל‬ ‫לשליפת‬ ‫הכתובת‬ ‫חישוב‬:‫הינו‬ ‫כך‬ ‫אם‬ ‫הפיקסל‬ ‫לשליפת‬ ‫הכתובת‬ ‫חישוב‬ add = start_add + (i*blocks_num*8 + block_cnt*8 + jadd = start_add + (i*blocks_num*8 + block_cnt*8 + j)) ‫ממתין‬‫ממתין‬88-‫ו‬ ‫לפיקסל‬ ‫פיקסל‬ ‫בין‬ ‫מלאים‬ ‫שעונים‬-‫ו‬ ‫לפיקסל‬ ‫פיקסל‬ ‫בין‬ ‫מלאים‬ ‫שעונים‬450450-‫ה‬ ‫אל‬ ‫בשליחה‬ ‫לבלוק‬ ‫בלוק‬ ‫בין‬ ‫שעונים‬-‫ה‬ ‫אל‬ ‫בשליחה‬ ‫לבלוק‬ ‫בלוק‬ ‫בין‬ ‫שעונים‬ DCTDCT.‫פעולתו‬ ‫לביצוע‬ ‫הנדרש‬ ‫הזמן‬ ‫את‬ ‫לו‬ ‫לתת‬ ‫מנת‬ ‫על‬.‫פעולתו‬ ‫לביצוע‬ ‫הנדרש‬ ‫הזמן‬ ‫את‬ ‫לו‬ ‫לתת‬ ‫מנת‬ ‫על‬ -‫ה‬ "‫"ריקון‬ ‫שקצב‬ ‫לדאוג‬ ‫יש‬ ,‫זאת‬ ‫עם‬ ‫יחד‬-‫ה‬ "‫"ריקון‬ ‫שקצב‬ ‫לדאוג‬ ‫יש‬ ,‫זאת‬ ‫עם‬ ‫יחד‬ram_blocksram_blocks,‫שלו‬ ‫המילוי‬ ‫מקצב‬ ‫יותר‬ ‫מהיר‬ ‫יהיה‬,‫שלו‬ ‫המילוי‬ ‫מקצב‬ ‫יותר‬ ‫מהיר‬ ‫יהיה‬ .‫הפיקסלים‬ ‫של‬ "‫"דריסה‬ ‫למנוע‬ ‫מנת‬ ‫על‬.‫הפיקסלים‬ ‫של‬ "‫"דריסה‬ ‫למנוע‬ ‫מנת‬ ‫על‬ ‫שנבחנו‬ ‫אלטרנטיבות‬‫שנבחנו‬ ‫אלטרנטיבות‬ -‫ב‬ ‫שהוסבר‬ ‫כפי‬-‫ב‬ ‫שהוסבר‬ ‫כפי‬WrPixelsClientWrPixelsClient-‫מה‬ ‫רגיל‬ ‫בסדר‬ ‫נעשית‬ ‫היתה‬ ‫השליפה‬ ,-‫מה‬ ‫רגיל‬ ‫בסדר‬ ‫נעשית‬ ‫היתה‬ ‫השליפה‬ ,ram_blocksram_blocks‫אילו‬‫אילו‬ ."‫בלוק‬ ‫אחר‬ ‫"בלוק‬ ‫של‬ ‫בסדר‬ ‫מראש‬ ‫הפיקסלים‬ ‫את‬ ‫בו‬ ‫לאחסן‬ ‫מחליטים‬ ‫היינו‬."‫בלוק‬ ‫אחר‬ ‫"בלוק‬ ‫של‬ ‫בסדר‬ ‫מראש‬ ‫הפיקסלים‬ ‫את‬ ‫בו‬ ‫לאחסן‬ ‫מחליטים‬ ‫היינו‬ 66
  • 67. ‫המידע‬ ‫–עיבוד‬ ‫שני‬ ‫חלק‬‫המידע‬ ‫–עיבוד‬ ‫שני‬ ‫חלק‬ 67
  • 69. DCT AlgorithmDCT Algorithm CC== DCT(Block) = C * Block * CDCT(Block) = C * Block * C’’ 69
  • 70. DCTDCT :‫תיאור‬ :‫הבאה‬ ‫בצורה‬ ‫מקדמים‬ ‫במטריצת‬ ‫המטריצה‬ ‫של‬ ‫הכפלה‬ ‫מבצע‬ ‫המודל‬ ."‫"זיגזג‬ ‫בסדר‬ ‫התוצאה‬ ‫את‬ ‫ופולט‬ Input: data_in:‫בייצוג‬ ‫מספר‬fp, ‫של‬ ‫מבלוק‬ ‫כחלק‬64‫המיצגים‬ ‫מספרים‬ ‫מטריצה‬8X8‫לימין‬ ‫שמאל‬ ‫שורה‬ ‫אחרי‬ ‫.שורה‬ spen_in:) ‫הבלוק‬ ‫כניסת‬ ‫זמן‬ ‫כל‬ ‫דלוק‬64*8+1‫מחזורים‬ ). d_in_valid:‫בכניסת‬ ‫דלוק‬fp‫אחד‬ ‫)מחזור‬ ‫.)אחד‬ rst, mclk Output: data_out:‫בייצוג‬ ‫מספר‬fp, ‫כחלק‬ ,‫המטריצות‬ ‫מכפלת‬ ‫תוצאת‬ ‫שהוא‬ ‫של‬ ‫מבלוק‬64‫מטריצה‬ ‫המיצגים‬ ‫מספרים‬8X8‫"זיגזג‬ ‫."בסידור‬ spen_out:) ‫הבלוק‬ ‫יציאת‬ ‫זמן‬ ‫כל‬ ‫דלוק‬64*8+1‫מחזורים‬ ). d_out_valid:‫ביציאת‬ ‫דלוק‬fp‫אחד‬ ‫)מחזור‬ ‫.)אחד‬ :‫הערות‬ ‫תשמש‬ ‫קבועים‬ ‫מטריצת‬ ‫אותה‬ ‫ולכן‬ ‫אורטוגונלית‬ ‫היא‬ ‫המטריצה‬ .‫ומימין‬ ‫משמאל‬ ‫להכפלה‬ ‫נמתין‬ ‫האחרון‬ ‫האיבר‬ ‫כניסת‬ ‫מרגע‬17.‫הראשון‬ ‫האיבר‬ ‫ליציאת‬ ‫מחזורים‬ 1 C In C− × × 1 T C C− = T input 70
  • 71. + 1 1 0 1 0 1 1 0… valid x ROM DCT – block diagramDCT – block diagram data_in[23:0] data_out[23:0] 24 24 1 ‫שנרשום‬ ‫ראשונה‬ ‫פעם‬ ‫וזו‬ ‫במידה‬ -‫ה‬ ‫במקום‬i‫הנוכחי‬ ‫בבלוק‬ ‫בטיפול‬ ‫ה‬ ‫את‬ ‫נרשום‬data_in‫נסכום‬ ‫אחרת‬ ‫משמאל‬ ‫הכפלה‬ ‫של‬ ‫מצב‬ ‫בין‬ ‫יברור‬ ‫)שאז‬ ‫מימין‬ ‫להכפלה‬ (‫נכנסת‬ ‫)מטריצה‬ ‫הקודמת‬ ‫ההכפלה‬ ‫תוצאת‬ ‫היא‬ ‫המטריצה‬ ‫ב‬ ‫ששמורה‬ram( ‫וולידציה‬ ‫מערך‬ ram 64 fp 71
  • 72. :‫הנכנס‬ ‫הבלוק‬ ‫תחילת‬:‫הנכנס‬ ‫הבלוק‬ ‫תחילת‬ ‫ה‬spen_in‫עולה‬ spen_out‫וה‬d_out_valid‫החוצה‬ ‫דבר‬ ‫שום‬ ‫מוציאים‬ ‫לא‬ ‫אנחנו‬ ‫כולו‬ ‫הבלוק‬ ‫של‬ ‫האינפוטים‬ ‫כל‬ ‫את‬ ‫נקבל‬ ‫שלא‬ ‫)עד‬ ‫.)למטה‬ ‫איתחול‬ ‫לצורך‬ ‫נוסף‬ ‫מחזור‬ ‫מקבל‬ ‫הראשון‬ ‫שהאיבר‬ ‫לב‬ ‫נשים‬ SignalsSignals ‫החוצה‬ ‫איברים‬ ‫הוצאת‬‫החוצה‬ ‫איברים‬ ‫הוצאת‬:: ‫שה‬ ‫שמהרגע‬spen_out.(‫עמודה‬ ‫כפול‬ ‫שורה‬ ‫של‬ ‫מכפלה‬ ‫בעצם‬ ‫)אחרי‬ ‫החוצה‬ ‫אחד‬ ‫איבר‬ ‫יוצא‬ ‫מחזורים‬ ‫שמונה‬ ‫כל‬ ‫עולה‬ , 72
  • 73. :‫מקבילית‬ ‫עבודה‬:‫מקבילית‬ ‫עבודה‬ ‫שלושה‬DCT: ‫במקביל‬ ‫עובדים‬b2v_DCT_Y , b2v_DCT_Cb , b2v_DCT_Cr‫סיגנלי‬ ‫לכולם‬ . ) ‫זהים‬ ‫מערכת‬clk,rst,spen_in,d_in_valid.‫מקדמים‬ ‫מטריצת‬ ‫ואותה‬ ( 73
  • 74. :‫תכנון‬ ‫שיקולי‬:‫תכנון‬ ‫שיקולי‬ ‫כל‬ ‫של‬ ‫קריאה‬‫כל‬ ‫של‬ ‫קריאה‬inputinput‫בלבד‬ ‫אחת‬ ‫פעם‬‫בלבד‬ ‫אחת‬ ‫פעם‬ ‫וולידציה‬ ‫מטריצת‬ ‫בעזרת‬ – ‫איתחול‬‫וולידציה‬ ‫מטריצת‬ ‫בעזרת‬ – ‫איתחול‬ ‫לוגי‬ ‫ענן‬ ,‫ליצוג‬ ‫אחת‬ ‫מטריצה‬ ‫מספיקה‬ ‫ולכן‬ ,‫אורטוגונליות‬ ‫שהמטריצות‬ ‫לב‬ ‫נשים‬ – ‫קבועים‬ ‫מטריצת‬‫לוגי‬ ‫ענן‬ ,‫ליצוג‬ ‫אחת‬ ‫מטריצה‬ ‫מספיקה‬ ‫ולכן‬ ,‫אורטוגונליות‬ ‫שהמטריצות‬ ‫לב‬ ‫נשים‬ – ‫קבועים‬ ‫מטריצת‬ .‫קריאה‬ ‫סדר‬ ‫את‬ ‫יקבע‬.‫קריאה‬ ‫סדר‬ ‫את‬ ‫יקבע‬ "‫"זיגזג‬ ‫בסדר‬ ‫התוצאות‬ ‫את‬ ‫להוציא‬ ‫מנת‬ ‫על‬ ‫מימין‬ ‫להכפיל‬ ‫סדר‬ ‫באיזה‬ ‫שקובע‬ ‫מודל‬ – ‫זיגזג‬"‫"זיגזג‬ ‫בסדר‬ ‫התוצאות‬ ‫את‬ ‫להוציא‬ ‫מנת‬ ‫על‬ ‫מימין‬ ‫להכפיל‬ ‫סדר‬ ‫באיזה‬ ‫שקובע‬ ‫מודל‬ – ‫זיגזג‬ ‫אחד‬ ‫וסכימה‬ ‫מכפלה‬ ‫במודל‬ ‫שימוש‬‫אחד‬ ‫וסכימה‬ ‫מכפלה‬ ‫במודל‬ ‫שימוש‬ ‫קבוע‬ ‫וטרופוט‬ ‫קליטה‬ ‫קצב‬ ‫על‬ ‫שמירה‬‫קבוע‬ ‫וטרופוט‬ ‫קליטה‬ ‫קצב‬ ‫על‬ ‫שמירה‬ ‫שנבחנו‬ ‫:אלטרנטיבות‬ •‫ב‬ ‫המודל‬ ‫את‬ ‫להחליף‬ ‫האופציה‬ ‫נבחנה‬ – ‫זיגזג‬ROM‫שלטעמם‬ ‫למרות‬ ,‫במקום‬ ‫חיסכון‬ ‫משיקולי‬ ‫נפסל‬ . .‫אלגנטי‬ ‫יותר‬ ‫זה‬ ‫אחרים‬ ‫של‬ •‫המטריצה‬ ‫את‬ ‫לאתחל‬ ‫האופציה‬ ‫נבחנה‬ – ‫ערכים‬ ‫איתחול‬64‫למערך‬ ‫האופציה‬ ‫נבחרה‬ .‫אינפוטים‬ .‫שעון‬ ‫משיקולי‬ ,‫ולידציה‬ 74
  • 76. QuantizationQuantization ‫קלט‬‫קלט‬ 6464‫של‬ ‫ערכים‬‫של‬ ‫ערכים‬YY‫או‬‫או‬CbCb‫או‬‫או‬CrCr‫בצורה‬ ‫הזורמים‬ (‫)בלוק‬‫בצורה‬ ‫הזורמים‬ (‫)בלוק‬ ‫פעולת‬ ‫לאחר‬ ‫טורית‬‫פעולת‬ ‫לאחר‬ ‫טורית‬DCTDCT‫בצורת‬ ‫מיוצגים‬ ‫)הערכים‬‫בצורת‬ ‫מיוצגים‬ ‫)הערכים‬floating pointfloating point(( ‫נתונים‬ ‫עיבוד‬‫נתונים‬ ‫עיבוד‬ 1)1).‫מתאים‬ ‫קוונטיזציה‬ ‫בערך‬ ‫מחולק‬ ‫ערך‬ ‫כל‬.‫מתאים‬ ‫קוונטיזציה‬ ‫בערך‬ ‫מחולק‬ ‫ערך‬ ‫כל‬ 2)2)‫מסעיף‬ ‫התוצאה‬ ‫המרת‬‫מסעיף‬ ‫התוצאה‬ ‫המרת‬11‫בטווח‬ ‫שלמים‬ ‫למספרים‬‫בטווח‬ ‫שלמים‬ ‫למספרים‬ num< 1024num< 1024> 1024> 1024. -. - ‫פלט‬‫פלט‬ 6464‫ערכי‬‫ערכי‬DCTDCT‫של‬ ‫ושלמים‬ ‫מקוונטטים‬‫של‬ ‫ושלמים‬ ‫מקוונטטים‬YY‫או‬‫או‬CbCb‫או‬‫או‬CrCr .‫טורית‬ ‫בצורה‬ ‫הזורמים‬ (‫)בלוק‬.‫טורית‬ ‫בצורה‬ ‫הזורמים‬ (‫)בלוק‬‫המשלים‬ ‫בצורת‬ ‫מיוצגים‬ ‫)הערכים‬‫המשלים‬ ‫בצורת‬ ‫מיוצגים‬ ‫)הערכים‬ -‫ל‬-‫ל‬22(( 76
  • 77. Data_in [23:0[ Data_out [10:0[ ROM Adress [5:0[ROM Quantization Table multiply ing Quantization Float To int 1/Quantization value [23:0[ 77
  • 79. Example of signalsExample of signals Output with zeros because the quantization Delaying of one cycle 79
  • 80. QuantizationQuantization ‫פעולה‬ ‫ועקרון‬ ‫תכנון‬ ‫שיקולי‬‫פעולה‬ ‫ועקרון‬ ‫תכנון‬ ‫שיקולי‬ ‫של‬ ‫נפרד‬ ‫מודול‬ ‫יצירת‬‫של‬ ‫נפרד‬ ‫מודול‬ ‫יצירת‬float_to_intfloat_to_int‫פעולה‬ ‫של‬ ‫הקצה‬ ‫מקרי‬ ‫בכל‬ ‫להתמקד‬ ‫מנת‬ ‫על‬‫פעולה‬ ‫של‬ ‫הקצה‬ ‫מקרי‬ ‫בכל‬ ‫להתמקד‬ ‫מנת‬ ‫על‬ .‫זו‬.‫זו‬ ‫יצירת‬‫יצירת‬cyclecycle‫גבוה‬ ‫אינו‬ ‫המחיר‬ ‫כאשר‬ ‫התוצאה‬ ‫את‬ ‫לוודא‬ ‫מנת‬ ‫על‬ ‫לפלט‬ ‫קלט‬ ‫בין‬‫גבוה‬ ‫אינו‬ ‫המחיר‬ ‫כאשר‬ ‫התוצאה‬ ‫את‬ ‫לוודא‬ ‫מנת‬ ‫על‬ ‫לפלט‬ ‫קלט‬ ‫בין‬ ))pipelinepipeline(( ‫שנבחנו‬ ‫אלטרנטיבות‬‫שנבחנו‬ ‫אלטרנטיבות‬ -‫ל‬ ‫המרה‬ ‫במקום‬-‫ל‬ ‫המרה‬ ‫במקום‬intint-‫ל‬ ‫ישירה‬ ‫המרה‬-‫ל‬ ‫ישירה‬ ‫המרה‬categorycategory-‫ו‬-‫ו‬offsetoffset.‫החשוב‬ ‫הפלט‬ ‫זהו‬ ‫כי‬.‫החשוב‬ ‫הפלט‬ ‫זהו‬ ‫כי‬ -‫ה‬ ‫של‬ ‫האקספוננט‬ :‫יתרונות‬-‫ה‬ ‫של‬ ‫האקספוננט‬ :‫יתרונות‬floatfloat-‫ל‬ ‫זהה‬-‫ל‬ ‫זהה‬categorycategory-‫ה‬ ‫ומקום‬ ,-‫ה‬ ‫ומקום‬ ,offsetoffset‫)צמוד‬ ‫ידוע‬‫)צמוד‬ ‫ידוע‬ . (‫לנקודה‬. (‫לנקודה‬ ‫מקדם‬ ‫גם‬ ‫קיים‬ ‫הבא‬ ‫במודול‬ :‫חסרונות‬‫מקדם‬ ‫גם‬ ‫קיים‬ ‫הבא‬ ‫במודול‬ :‫חסרונות‬DCDC‫לאחר‬ ‫לקיימו‬ ‫אפשר‬ ‫שאי‬ ‫חיסור‬ ‫הדורש‬‫לאחר‬ ‫לקיימו‬ ‫אפשר‬ ‫שאי‬ ‫חיסור‬ ‫הדורש‬ -‫ל‬ ‫מתחלק‬ ‫שהמספר‬-‫ל‬ ‫מתחלק‬ ‫שהמספר‬categorycategory-‫ו‬-‫ו‬offsetoffset.. .‫עבודה‬ ‫יותר‬ ‫דורש‬ ‫היה‬ ‫והשינוי‬ ,‫הבא‬ ‫המודול‬ ‫את‬ ‫קודם‬ ‫בניתי‬ :‫חסרונות‬.‫עבודה‬ ‫יותר‬ ‫דורש‬ ‫היה‬ ‫והשינוי‬ ,‫הבא‬ ‫המודול‬ ‫את‬ ‫קודם‬ ‫בניתי‬ :‫חסרונות‬ 80
  • 81. RLC_DPCMRLC_DPCM ‫מטרה‬‫מטרה‬ .‫הקיים‬ ‫המידע‬ ‫את‬ ‫לכווץ‬.‫הקיים‬ ‫המידע‬ ‫את‬ ‫לכווץ‬ ‫הדרך‬‫הדרך‬ I.I.‫אלא‬ ‫כפלט‬ ‫יוצאים‬ ‫אינם‬ ‫אפס‬ ‫ערכי‬‫אלא‬ ‫כפלט‬ ‫יוצאים‬ ‫אינם‬ ‫אפס‬ ‫ערכי‬ .‫אפס‬ ‫שאינם‬ ‫לערכים‬ ‫מתווספים‬.‫אפס‬ ‫שאינם‬ ‫לערכים‬ ‫מתווספים‬ II.II.‫מחדש‬ ‫נערכים‬ ‫אפס‬ ‫שאינם‬ ‫ערכים‬‫מחדש‬ ‫נערכים‬ ‫אפס‬ ‫שאינם‬ ‫ערכים‬ ."‫האפמן‬ ‫"קוד‬ ‫בעזרת‬ ‫קידוד‬ ‫לקראת‬."‫האפמן‬ ‫"קוד‬ ‫בעזרת‬ ‫קידוד‬ ‫לקראת‬ 81
  • 82. RLC_DPCMRLC_DPCM ‫קלט‬‫קלט‬ 6464‫ערכי‬‫ערכי‬DCTDCT‫ו‬ ‫מקוונטטים‬‫ו‬ ‫מקוונטטים‬‫שלמים‬‫שלמים‬‫של‬‫של‬YY‫או‬‫או‬CbCb‫או‬‫או‬CrCr,‫ערך‬ ‫כל‬ .‫טורית‬ ‫בצורה‬ ‫הזורמים‬,‫ערך‬ ‫כל‬ .‫טורית‬ ‫בצורה‬ ‫הזורמים‬ ,‫לדוגמה‬,‫לדוגמה‬aa‫מקיים‬ ,‫מקיים‬ ,10241024<<aa>1024>1024-- :‫הערות‬:‫הערות‬ ‫של‬ ‫ביחידות‬ ‫מאוגדים‬ ‫הערכים‬‫של‬ ‫ביחידות‬ ‫מאוגדים‬ ‫הערכים‬6464."‫"בלוק‬ ,‫להלן‬ ,."‫"בלוק‬ ,‫להלן‬ , -‫ל‬ ‫המשלים‬ ‫בצורת‬ ‫מיוצגים‬ ‫הערכים‬-‫ל‬ ‫המשלים‬ ‫בצורת‬ ‫מיוצגים‬ ‫הערכים‬22.. ‫מקדם‬ ‫הוא‬ "‫ב"בלוק‬ ‫הראשון‬ ‫הערך‬ ‫כי‬ ‫לב‬ ‫נשים‬‫מקדם‬ ‫הוא‬ "‫ב"בלוק‬ ‫הראשון‬ ‫הערך‬ ‫כי‬ ‫לב‬ ‫נשים‬DCDC‫מקדמי‬ ‫והשאר‬‫מקדמי‬ ‫והשאר‬ACAC.. ‫נתונים‬ ‫עיבוד‬‫נתונים‬ ‫עיבוד‬ n‫בבלוק‬ ‫אחריו‬ ‫אם‬ ‫ורק‬ ,‫נתונים‬ ‫בעיבוד‬ ‫נרשם‬ ‫אלא‬ ‫כפלט‬ ‫יוצא‬ ‫אינו‬ ‫אפס‬ ‫שהינו‬ ‫ערך‬ ‫כל‬‫בבלוק‬ ‫אחריו‬ ‫אם‬ ‫ורק‬ ,‫נתונים‬ ‫בעיבוד‬ ‫נרשם‬ ‫אלא‬ ‫כפלט‬ ‫יוצא‬ ‫אינו‬ ‫אפס‬ ‫שהינו‬ ‫ערך‬ ‫כל‬ ‫)אם‬ .‫לפניו‬ ‫שהופיעו‬ ‫האפסים‬ ‫מספר‬ ‫ואיתו‬ ‫כפלט‬ ‫הזה‬ ‫הערך‬ ‫ייצא‬ ,‫אפס‬ ‫שאינו‬ ‫ערך‬ ‫יופיע‬‫)אם‬ .‫לפניו‬ ‫שהופיעו‬ ‫האפסים‬ ‫מספר‬ ‫ואיתו‬ ‫כפלט‬ ‫הזה‬ ‫הערך‬ ‫ייצא‬ ,‫אפס‬ ‫שאינו‬ ‫ערך‬ ‫יופיע‬ -‫מ‬ ‫יותר‬ ‫נרשמו‬-‫מ‬ ‫יותר‬ ‫נרשמו‬1515) ‫הערכים‬ ‫זוג‬ ‫ייצאו‬ ‫אפסים‬) ‫הערכים‬ ‫זוג‬ ‫ייצאו‬ ‫אפסים‬0,150,15‫שאינו‬ ‫הערך‬ ‫ואח"כ‬ ,‫שצריך‬ ‫כמה‬ (‫שאינו‬ ‫הערך‬ ‫ואח"כ‬ ,‫שצריך‬ ‫כמה‬ ( ( .‫שנותר‬ ‫האפסים‬ ‫מספר‬ ‫עם‬ ‫יחד‬ ‫אפס‬( .‫שנותר‬ ‫האפסים‬ ‫מספר‬ ‫עם‬ ‫יחד‬ ‫אפס‬ n‫קטגוריה‬ ‫נמצא‬ ,‫כלומר‬ .‫הקטגוריה‬ ,‫להלן‬ ,‫משתייך‬ ‫הערך‬ ‫אליה‬ ‫הקבוצה‬ ‫מציאת‬‫קטגוריה‬ ‫נמצא‬ ,‫כלומר‬ .‫הקטגוריה‬ ,‫להלן‬ ,‫משתייך‬ ‫הערך‬ ‫אליה‬ ‫הקבוצה‬ ‫מציאת‬nn‫לערך‬‫לערך‬ aa-‫ש‬ ‫כך‬-‫ש‬ ‫כך‬22)^)^n-1) =<|a|< 2^nn-1) =<|a|< 2^n.. n-‫ה‬ ‫מציאת‬-‫ה‬ ‫מציאת‬offsetoffset.‫עולה‬ ‫בסדר‬ ‫הקטגוריה‬ ‫בתוך‬ ‫הערך‬ ‫של‬ ‫המיקום‬ ,.‫עולה‬ ‫בסדר‬ ‫הקטגוריה‬ ‫בתוך‬ ‫הערך‬ ‫של‬ ‫המיקום‬ , ‫פלט‬‫פלט‬ -‫ה‬ ,‫הערך‬ ‫של‬ ‫הקטגוריה‬ ‫את‬ ‫הכוללים‬ ‫ערכים‬-‫ה‬ ,‫הערך‬ ‫של‬ ‫הקטגוריה‬ ‫את‬ ‫הכוללים‬ ‫ערכים‬offsetoffset. ‫ברצף‬ ‫לפניו‬ ‫שהופיעו‬ ‫האפסים‬ ‫ומספר‬ ‫שלו‬. ‫ברצף‬ ‫לפניו‬ ‫שהופיעו‬ ‫האפסים‬ ‫ומספר‬ ‫שלו‬ ‫הכמות‬ ‫כי‬ ‫יודעים‬ ‫אנו‬ ‫רק‬ ‫שיצאו‬ ‫הפלט‬ ‫ערכי‬ ‫כמות‬ ‫מהי‬ ‫יודעים‬ ‫איננו‬ ‫כעת‬ ‫כי‬ ‫לב‬ ‫נשים‬‫הכמות‬ ‫כי‬ ‫יודעים‬ ‫אנו‬ ‫רק‬ ‫שיצאו‬ ‫הפלט‬ ‫ערכי‬ ‫כמות‬ ‫מהי‬ ‫יודעים‬ ‫איננו‬ ‫כעת‬ ‫כי‬ ‫לב‬ ‫נשים‬ -‫מ‬ ‫גדולה‬ ‫אינה‬-‫מ‬ ‫גדולה‬ ‫אינה‬6464.. ) ‫ערכים‬ ‫זוג‬ ‫יישלח‬ ‫אפס‬ ‫הינו‬ ‫בבלוק‬ ‫האחרון‬ ‫הערך‬ ‫אם‬ ‫כן‬ ‫כמו‬) ‫ערכים‬ ‫זוג‬ ‫יישלח‬ ‫אפס‬ ‫הינו‬ ‫בבלוק‬ ‫האחרון‬ ‫הערך‬ ‫אם‬ ‫כן‬ ‫כמו‬0,00,0.‫בלוק‬ ‫סוף‬ ‫לסמן‬ (.‫בלוק‬ ‫סוף‬ ‫לסמן‬ ( 82
  • 83. ‫מחדש‬ ‫הערכים‬ ‫הצגת‬‫מחדש‬ ‫הערכים‬ ‫הצגת‬ ‫קטגוריה‬‫קטגוריה‬ 83
  • 84. ‫מחדש‬ ‫הערכים‬ ‫הצגת‬‫מחדש‬ ‫הערכים‬ ‫הצגת‬ -‫ה‬-‫ה‬OffsetOffset‫את‬ ‫מציג‬‫את‬ ‫מציג‬‫מיקום‬‫מיקום‬ ‫הקטגוריה‬ ‫בתוך‬ ‫המספר‬‫הקטגוריה‬ ‫בתוך‬ ‫המספר‬‫בסדר‬‫בסדר‬ ‫עולה‬‫עולה‬.. ‫קטגוריה‬ ‫לדוגמה‬‫קטגוריה‬ ‫לדוגמה‬33‫בה‬‫בה‬ :‫המספרים‬ ‫נמצאים‬:‫המספרים‬ ‫נמצאים‬ --77,,……-,-,4,44,4,,……77 -‫ה‬ ‫כי‬ ‫לראות‬ ‫ניתן‬-‫ה‬ ‫כי‬ ‫לראות‬ ‫ניתן‬offsetoffset‫תמיד‬‫תמיד‬ -‫ה‬ ‫כן‬ ‫כמו‬ .‫חיובי‬-‫ה‬ ‫כן‬ ‫כמו‬ .‫חיובי‬offsetoffset‫של‬‫של‬ ‫המספר‬ ‫הוא‬ ‫חיובי‬ ‫מספר‬‫המספר‬ ‫הוא‬ ‫חיובי‬ ‫מספר‬ .‫סימן‬ ‫בביט‬ ‫צורך‬ ‫ללא‬ ,‫עצמו‬.‫סימן‬ ‫בביט‬ ‫צורך‬ ‫ללא‬ ,‫עצמו‬ -‫ה‬ ‫של‬ ‫הביטים‬ ‫מספר‬-‫ה‬ ‫של‬ ‫הביטים‬ ‫מספר‬offsetoffset ‫המספר‬ ‫מערך‬ ‫אחד‬ ‫בביט‬ ‫קטן‬‫המספר‬ ‫מערך‬ ‫אחד‬ ‫בביט‬ ‫קטן‬ .‫בכניסה‬.‫בכניסה‬ OffsetOffset ‫מציאת‬‫מציאת‬‫המספר‬‫המספר‬ offsetoffset 77 77 66 66 55 55 44 44 -4-4 33 -5-5 22 -6-6 11 -7-7 00 84
  • 85. ‫בבינארי‬ ‫מחדש‬ ‫הערכים‬ ‫הצגת‬‫בבינארי‬ ‫מחדש‬ ‫הערכים‬ ‫הצגת‬ ‫המספר‬‫המספר‬ ‫בבינארי‬‫בבינארי‬ 77 0000000011100000000111 66 0000000011000000000110 55 0000000010100000000101 44 0000000010000000000100 -4-4 111111111100111111111100 -5-5 111111111011111111111011 -6-6 111111111010111111111010 -7-7 111111111001111111111001 ‫קטגוריה‬ ‫מציאת‬‫קטגוריה‬ ‫מציאת‬33 ]]1111[‫ביטים‬[‫ביטים‬ OffsetOffset ]]1010[‫ביטים‬[‫ביטים‬ 0000000000000000111111 00000000000000111111 0000000000000000111010 00000000000000111010 0000000000000000110101 00000000000000110101 0000000000000000110000 00000000000000110000 1111111111111111001111 00000000000000001111 1111111111111111001010 00000000000000001010 1111111111111111000101 000000000000000000 11 a=a- 1 If (a<0( ‫הפחתה‬ ‫לערכים‬ ‫השליליים‬ 85
  • 86. Data_in [10:0[ Category[3:0[ RLC_DPCM Ofset[9:0 [ Num of zeros [3:0[ d_out_validd_in_valid 1) if the input is zero just count it. 2) If not, find the large bit of the number (category) 3) The location of the input in the category Inputs & Outputs 86
  • 87. 11’h000 Not relevant RLC_DPCM Not relevant Not relevant d_out_valid ==0d_in_valid==1 Num==0 Valid data became to not valid Data_in is zero a=0 87
  • 88. ‫המידע‬ ‫דילול‬ ‫של‬ ‫דוגמאות‬‫המידע‬ ‫דילול‬ ‫של‬ ‫דוגמאות‬ A lot of Valid data became to not valid data thanks to the quantization that zero the data. ‫אפסים‬ ‫האפסים‬ ‫מספר‬ 88
  • 89. ‫אפסים‬ ‫לדילול‬ ‫דוגמה‬‫אפסים‬ ‫לדילול‬ ‫דוגמה‬ 63‫כערך‬ ‫יוצאים‬ ‫בכניסה‬ ‫אפס‬ ‫ערכי‬DC) ‫וערך‬0,0.‫ביציאה‬ ‫בלבד‬ ( 63‫רק‬ ‫מתוכם‬ ‫ערכים‬5‫רק‬ ‫ובהמשך‬ ‫אפסים‬ ‫עם‬ ‫המעורבים‬ ‫אפס‬ ‫שאינם‬ ‫ערכים‬ -‫כ‬ ‫יוצאים‬ .‫אפסים‬5) ‫וערך‬ ‫ערכים‬0,0‫בלבד‬ ( 89
  • 90. ‫בלוקים‬ ‫של‬ ‫באוסף‬ ‫אפסים‬ ‫לדילול‬ ‫דוגמה‬‫בלוקים‬ ‫של‬ ‫באוסף‬ ‫אפסים‬ ‫לדילול‬ ‫דוגמה‬ ‫כניסה‬ ‫יציאה‬ 90
  • 91. 11’h050 = 80 4’b0111 = 7 RLC_DPCM 10’b00010100 00 = 80 4’b0001 = 1 d_out_valid ==1d_in_valid==1 Num!=0 Num = 00001010000 Category = 7 Offset = 80 0001010000 Next Data_in is positive a>0 91
  • 92. 11’h7b0 = -80 4’b0111 = 7 RLC_DPCM 10’b 00000101111 = 474’b0001 = 1 d_out_valid ==1d_in_valid==1 Num!=0 Num = 11110110000 Category = 7 Offset = 00000101111 Next Data_in is negative a<0 92
  • 93. ‫במקביל‬ ‫המעובדים‬ ‫בלוקים‬ ‫לשלושה‬ ‫דוגמה‬‫במקביל‬ ‫המעובדים‬ ‫בלוקים‬ ‫לשלושה‬ ‫דוגמה‬ in out C b Cr Y 93
  • 94. ,‫זה‬ ‫מודול‬,‫זה‬ ‫מודול‬RLC_DPCMRLC_DPCM‫פעם‬ ‫המידע‬ ‫את‬ ‫מקבל‬ ,‫פעם‬ ‫המידע‬ ‫את‬ ‫מקבל‬ , -‫ב‬-‫ב‬88,‫בכניסה‬ ‫מידע‬ ‫נאגר‬ ‫לא‬ ‫לכן‬ ,‫שעון‬ ‫מחזורי‬,‫בכניסה‬ ‫מידע‬ ‫נאגר‬ ‫לא‬ ‫לכן‬ ,‫שעון‬ ‫מחזורי‬ .‫פשוטה‬ ‫המידע‬ ‫וקבלת‬.‫פשוטה‬ ‫המידע‬ ‫וקבלת‬ ‫לאורך‬ ‫יציב‬ ‫להיות‬ ‫צריך‬ ‫המידע‬ ‫ביציאה‬‫לאורך‬ ‫יציב‬ ‫להיות‬ ‫צריך‬ ‫המידע‬ ‫ביציאה‬33‫מחזורי‬‫מחזורי‬ ‫קיימים‬ ‫כי‬ ‫בדיוק‬ ‫שעון‬‫קיימים‬ ‫כי‬ ‫בדיוק‬ ‫שעון‬33‫של‬ ‫מודולים‬‫של‬ ‫מודולים‬RLC_DPCMRLC_DPCM ‫פעם‬ ‫כל‬ ‫קורא‬ ‫אחריהם‬ ‫הבא‬ ‫המודול‬ ‫אך‬ ‫במקביל‬‫פעם‬ ‫כל‬ ‫קורא‬ ‫אחריהם‬ ‫הבא‬ ‫המודול‬ ‫אך‬ ‫במקביל‬ .‫מהשלושה‬ ‫מאחד‬ ‫רק‬.‫מהשלושה‬ ‫מאחד‬ ‫רק‬ ‫תזמון‬‫תזמון‬‫והיציאה‬ ‫הכניסה‬‫והיציאה‬ ‫הכניסה‬ 94
  • 95. ‫בלוק‬ ‫בסוף‬ ‫האותות‬ ‫לתזמון‬ ‫דוגמה‬‫בלוק‬ ‫בסוף‬ ‫האותות‬ ‫לתזמון‬ ‫דוגמה‬ ‫המידע‬ ‫בכניסה‬ -‫ל‬ ‫בתוקף‬cycle,‫אחד‬ -‫ל‬ ‫ביציאה‬ ‫אך‬3 cycles Spen_in‫ולאחר‬ ‫יורד‬ 3‫יורד‬ ‫מחזורים‬ spen_out end of block ‫מחזורי‬ ‫לשלושה‬ ‫מופיע‬ ‫שעון‬ 95
  • 96. ‫ופתרונה‬ ‫המוצא‬ ‫בתזמון‬ ‫בעיה‬‫ופתרונה‬ ‫המוצא‬ ‫בתזמון‬ ‫בעיה‬ ,‫במוצא‬ ‫כלל‬ ‫ערכים‬ ‫אין‬ ,‫אפס‬ ‫הם‬ ‫בכניסה‬ ‫הערכים‬ ‫עוד‬ ‫כל‬,‫במוצא‬ ‫כלל‬ ‫ערכים‬ ‫אין‬ ,‫אפס‬ ‫הם‬ ‫בכניסה‬ ‫הערכים‬ ‫עוד‬ ‫כל‬ ‫לאחר‬ ‫אם‬ ,‫,לדוגמה‬ ‫אבל‬‫לאחר‬ ‫אם‬ ,‫,לדוגמה‬ ‫אבל‬6060‫שונה‬ ‫ערך‬ ‫מופיע‬ ‫אפסים‬‫שונה‬ ‫ערך‬ ‫מופיע‬ ‫אפסים‬ ‫לצאת‬ ‫אמורים‬ ,‫מאפס‬‫לצאת‬ ‫אמורים‬ ,‫מאפס‬44.‫ברצף‬ ‫מספרים‬ ‫זוגות‬.‫ברצף‬ ‫מספרים‬ ‫זוגות‬ ((0,150,15) , () , (0,150,15) , () , (0,150,15) , () , (a,12a,12)) ‫הבעיה‬‫הבעיה‬‫להישאר‬ ‫צריך‬ ‫ערך‬ ‫כל‬ :‫להישאר‬ ‫צריך‬ ‫ערך‬ ‫כל‬ :33‫המוצא‬ ,‫כן‬ ‫אם‬ ,‫מחזורים‬‫המוצא‬ ,‫כן‬ ‫אם‬ ,‫מחזורים‬ -‫ל‬ ‫תפוס‬-‫ל‬ ‫תפוס‬1212‫לאחר‬ ‫אבל‬ ,‫מחזורים‬‫לאחר‬ ‫אבל‬ ,‫מחזורים‬88‫ערך‬ ‫נכנס‬ ‫מחזורים‬‫ערך‬ ‫נכנס‬ ‫מחזורים‬ .‫חדש‬.‫חדש‬ ‫הפתרון‬‫הפתרון‬‫להפעיל‬ ‫ניתן‬ :‫להפעיל‬ ‫ניתן‬ :FIFOFIFO‫מיותר‬ ‫זה‬ ‫פתרון‬ ,‫לדעתי‬ ,‫אך‬ ,‫מיותר‬ ‫זה‬ ‫פתרון‬ ,‫לדעתי‬ ,‫אך‬ , ‫לשמור‬ ‫וצריך‬ ‫ידועים‬ ‫שאינם‬ ‫ערכים‬ ‫הרבה‬ ‫כאן‬ ‫אין‬ ‫כי‬‫לשמור‬ ‫וצריך‬ ‫ידועים‬ ‫שאינם‬ ‫ערכים‬ ‫הרבה‬ ‫כאן‬ ‫אין‬ ‫כי‬ ‫האחרון‬ ‫הערך‬ ‫של‬ ‫שמירה‬ ‫רק‬ ‫ונדרשת‬ ,‫אותם‬‫האחרון‬ ‫הערך‬ ‫של‬ ‫שמירה‬ ‫רק‬ ‫ונדרשת‬ ,‫אותם‬))a,12a,12((.. 16+16+16+12=60 96
  • 97. ‫הערך‬‫הערך‬DCDC -‫ה‬ ‫ערך‬ ‫הוא‬ ‫הבלוק‬ ‫של‬ ‫הראשון‬ ‫הערך‬-‫ה‬ ‫ערך‬ ‫הוא‬ ‫הבלוק‬ ‫של‬ ‫הראשון‬ ‫הערך‬DCDC.. -‫ה‬ ‫ערך‬-‫ה‬ ‫ערך‬DCDC‫הערכים‬ ‫נעים‬ ‫שסביבו‬ ‫הממוצע‬ ‫הוא‬‫הערכים‬ ‫נעים‬ ‫שסביבו‬ ‫הממוצע‬ ‫הוא‬ .‫הבלוק‬ ‫של‬ ‫הבאים‬.‫הבלוק‬ ‫של‬ ‫הבאים‬ -‫ה‬ ‫קידוד‬-‫ה‬ ‫קידוד‬DCDC‫גדול‬ ‫הפרש‬ ‫שאין‬ ‫ההנחה‬ ‫על-פי‬ ‫נבנה‬‫גדול‬ ‫הפרש‬ ‫שאין‬ ‫ההנחה‬ ‫על-פי‬ ‫נבנה‬ -‫ה‬ ‫ערך‬ ‫בין‬-‫ה‬ ‫ערך‬ ‫בין‬DCDC‫בבלוק‬ ‫לערכו‬ ‫הנוכחי‬ ‫בבלוק‬‫בבלוק‬ ‫לערכו‬ ‫הנוכחי‬ ‫בבלוק‬ -‫ה‬ ‫של‬ ‫המוצא‬ ‫ערך‬ ‫לכן‬ ,‫הקודם‬-‫ה‬ ‫של‬ ‫המוצא‬ ‫ערך‬ ‫לכן‬ ,‫הקודם‬DCDC‫ההפרש‬ ‫הוא‬‫ההפרש‬ ‫הוא‬ .‫הנ"ל‬ ‫הערכים‬ ‫בין‬.‫הנ"ל‬ ‫הערכים‬ ‫בין‬Out = DIFF = DCOut = DIFF = DCii –– DCDCi-1i-1 -‫ה‬ ‫ערך‬-‫ה‬ ‫ערך‬DCDC.‫אפס‬ ‫הוא‬ ‫אם‬ ‫גם‬ ‫מקרה‬ ‫בכל‬ ‫נרשם‬.‫אפס‬ ‫הוא‬ ‫אם‬ ‫גם‬ ‫מקרה‬ ‫בכל‬ ‫נרשם‬ 97
  • 98. -‫ה‬ ‫ערך‬ ‫הצגת‬-‫ה‬ ‫ערך‬ ‫הצגת‬DCDC‫מחדש‬‫מחדש‬ ‫למקרה‬ ‫לב‬ ‫לשים‬ ‫יש‬‫למקרה‬ ‫לב‬ ‫לשים‬ ‫יש‬ ‫בין‬ ‫ההפרש‬ ‫בו‬ ‫קצה‬‫בין‬ ‫ההפרש‬ ‫בו‬ ‫קצה‬ |-‫מ‬ ‫גדול‬ ‫הערכים‬|-‫מ‬ ‫גדול‬ ‫הערכים‬ 10241024‫לערכי‬ ‫לכן‬ ,|‫לערכי‬ ‫לכן‬ ,| -‫ה‬-‫ה‬DCDC‫קטגוריה‬ ‫יש‬‫קטגוריה‬ ‫יש‬ ,‫נוספת‬,‫נוספת‬1111.. -‫ה‬ ‫ערך‬-‫ה‬ ‫ערך‬offsetoffset‫נבנה‬‫נבנה‬ ‫לשאר‬ ‫זהה‬ ‫בצורה‬‫לשאר‬ ‫זהה‬ ‫בצורה‬ .‫הערכים‬.‫הערכים‬ 98
  • 99. -‫ה‬ ‫לקידוד‬ ‫דוגמא‬-‫ה‬ ‫לקידוד‬ ‫דוגמא‬DCDC ‫הבלוק‬ ‫הבא‬ Category 4 + offset 3 = -12 DCi – DCi-1 = -25 –(-13( = -12 DCi – DCi-1 = 8 –(-3( = 11 DCi – DCi-1 = -4 –8 = -12 Category 4 + offset 11 = 11 Category 4 + offset 003 = -12 99
  • 100. ‫הבלוק‬ ‫לסיום‬ ‫אפשרויות‬ ‫שתי‬ ‫ישנן‬‫הבלוק‬ ‫לסיום‬ ‫אפשרויות‬ ‫שתי‬ ‫ישנן‬ .‫מאפס‬ ‫שונה‬ ‫הנכנס‬ ‫האחרון‬ ‫הערך‬.‫מאפס‬ ‫שונה‬ ‫הנכנס‬ ‫האחרון‬ ‫הערך‬ ‫יעלו‬ ‫איתו‬ ‫ויחד‬ ‫כרגיל‬ ‫מקודד‬ ‫יהיה‬ ‫במוצא‬ ‫הערך‬‫יעלו‬ ‫איתו‬ ‫ויחד‬ ‫כרגיל‬ ‫מקודד‬ ‫יהיה‬ ‫במוצא‬ ‫הערך‬ ‫הדגלים‬ ‫שעון‬ ‫מחזורי‬ ‫לשלושה‬‫הדגלים‬ ‫שעון‬ ‫מחזורי‬ ‫לשלושה‬““d_out_validd_out_valid”” ““eobeob””.. ‫הדגל‬‫הדגל‬““spen_outspen_out””.‫אחריהם‬ ‫אחד‬ ‫שעון‬ ‫מחזור‬ ‫יירד‬.‫אחריהם‬ ‫אחד‬ ‫שעון‬ ‫מחזור‬ ‫יירד‬ .‫אפס‬ ‫הוא‬ ‫הנכנס‬ ‫האחרון‬ ‫הערך‬.‫אפס‬ ‫הוא‬ ‫הנכנס‬ ‫האחרון‬ ‫הערך‬ ) ‫יהיה‬ ‫במוצא‬ ‫הערך‬) ‫יהיה‬ ‫במוצא‬ ‫הערך‬0,00,0,(,( ‫כלומר‬‫כלומר‬category = 0 & num_of_zeros =0category = 0 & num_of_zeros =0 .‫הבלוק‬ ‫סיום‬ ‫על‬ ‫להודיע‬ ‫כדי‬.‫הבלוק‬ ‫סיום‬ ‫על‬ ‫להודיע‬ ‫כדי‬ ‫הבלוק‬ ‫סוף‬‫הבלוק‬ ‫סוף‬ 100
  • 101. ‫דוגמא‬ - ‫הבלוק‬ ‫סוף‬‫דוגמא‬ - ‫הבלוק‬ ‫סוף‬ ‫מאפס‬ ‫שונה‬ ‫האחרון‬ ‫המידע‬ '‫א‬ ‫אפשרות‬ ‫אפס‬ ‫הוא‬ ‫האחרון‬ ‫המידע‬ '‫ב‬ ‫אפשרות‬ ) ‫במוצא‬ ‫המידע‬0,0( 101
  • 102. RLC_DPCMRLC_DPCM ‫פעולה‬ ‫ועקרון‬ ‫תכנון‬ ‫שיקולי‬‫פעולה‬ ‫ועקרון‬ ‫תכנון‬ ‫שיקולי‬ ‫חיובי‬ ‫)במספר‬ .‫לפיו‬ ‫הקטגוריה‬ ‫והגדרת‬ ‫השלם‬ ‫במספר‬ ‫הראשון‬ ‫המשמעותי‬ ‫הביט‬ ‫מציאת‬‫חיובי‬ ‫)במספר‬ .‫לפיו‬ ‫הקטגוריה‬ ‫והגדרת‬ ‫השלם‬ ‫במספר‬ ‫הראשון‬ ‫המשמעותי‬ ‫הביט‬ ‫מציאת‬ (‫אחד‬ ‫שאינו‬ ‫הראשון‬ ‫הביט‬ ‫השלילי‬ ‫ובביט‬ ‫אפס‬ ‫שאינו‬ ‫הראשון‬ ‫הביט‬(‫אחד‬ ‫שאינו‬ ‫הראשון‬ ‫הביט‬ ‫השלילי‬ ‫ובביט‬ ‫אפס‬ ‫שאינו‬ ‫הראשון‬ ‫הביט‬ -‫ה‬ ‫מציאת‬-‫ה‬ ‫מציאת‬offsetoffset.‫לעיל‬ ‫הוסברה‬.‫לעיל‬ ‫הוסברה‬ ‫הוא‬ ‫המידע‬ ‫אם‬ ‫)אלא‬ ‫אפס‬ ‫ערך‬ ‫קליטת‬ ‫בכל‬ ‫האפסים‬ ‫מספר‬ ‫שמירת‬‫הוא‬ ‫המידע‬ ‫אם‬ ‫)אלא‬ ‫אפס‬ ‫ערך‬ ‫קליטת‬ ‫בכל‬ ‫האפסים‬ ‫מספר‬ ‫שמירת‬DCDC(( ‫בשלושה‬ ‫פעם‬ ‫נעשית‬ ‫המוצא‬ ‫אות‬ ‫קריאת‬‫בשלושה‬ ‫פעם‬ ‫נעשית‬ ‫המוצא‬ ‫אות‬ ‫קריאת‬cyclescycles‫להישאר‬ ‫חייב‬ ‫במוצא‬ ‫המידע‬ ‫לכן‬ ,‫בלבד‬‫להישאר‬ ‫חייב‬ ‫במוצא‬ ‫המידע‬ ‫לכן‬ ,‫בלבד‬ ‫לשלושה‬‫לשלושה‬cyclescycles.‫ייקרא‬ ‫לא‬ ‫כלל‬ ‫במוצא‬ ‫שהמידע‬ ‫ייתכן‬ ‫או‬ ‫כפולה‬ ‫קריאה‬ ‫תיתכן‬ ‫אחרת‬ ‫בדיוק‬.‫ייקרא‬ ‫לא‬ ‫כלל‬ ‫במוצא‬ ‫שהמידע‬ ‫ייתכן‬ ‫או‬ ‫כפולה‬ ‫קריאה‬ ‫תיתכן‬ ‫אחרת‬ ‫בדיוק‬ ‫תוך‬ ‫למבוא‬ ‫מידע‬ ‫עוד‬ ‫יגיע‬ ‫שלא‬ ‫יודעים‬ ‫שאנו‬ ‫ומפני‬ ‫כך‬ ‫בעקבות‬‫תוך‬ ‫למבוא‬ ‫מידע‬ ‫עוד‬ ‫יגיע‬ ‫שלא‬ ‫יודעים‬ ‫שאנו‬ ‫ומפני‬ ‫כך‬ ‫בעקבות‬33,,cyclescycles-‫ה‬-‫ה‬flagsflags )‫השונים‬)‫השונים‬))d_out_valid, spen_out, eobd_out_valid, spen_out, eob‫לשלושה‬ ‫נשמרים‬ ‫עצמו‬ ‫והמידע‬‫לשלושה‬ ‫נשמרים‬ ‫עצמו‬ ‫והמידע‬cyclescycles.‫בדיוק‬.‫בדיוק‬ ‫שנבחנו‬ ‫אלטרנטיבות‬‫שנבחנו‬ ‫אלטרנטיבות‬ ‫כמה‬ ‫כלל‬ ‫בדרך‬ ‫עוברים‬ ‫מקרה‬ ‫שבכל‬ ‫מכיוון‬ ‫אבל‬ ,‫שעון‬ ‫ללא‬ ‫המודול‬ ‫את‬ ‫ליצור‬ ‫היה‬ ‫אולי‬ ‫ניתן‬‫כמה‬ ‫כלל‬ ‫בדרך‬ ‫עוברים‬ ‫מקרה‬ ‫שבכל‬ ‫מכיוון‬ ‫אבל‬ ,‫שעון‬ ‫ללא‬ ‫המודול‬ ‫את‬ ‫ליצור‬ ‫היה‬ ‫אולי‬ ‫ניתן‬ ‫לאחר‬ ‫יציב‬ ‫מידע‬ ‫להציג‬ ‫הצורך‬ ‫בגלל‬ ‫וגם‬ ‫המוצא‬ ‫באותות‬ ‫שמשתמשים‬ ‫עד‬ ‫שעון‬ ‫סיבובי‬‫לאחר‬ ‫יציב‬ ‫מידע‬ ‫להציג‬ ‫הצורך‬ ‫בגלל‬ ‫וגם‬ ‫המוצא‬ ‫באותות‬ ‫שמשתמשים‬ ‫עד‬ ‫שעון‬ ‫סיבובי‬ .‫בלבד‬ ‫אחד‬ ‫שעון‬ ‫סיבוב‬ ‫להוסיף‬ ‫העדפתי‬ ‫קצרה‬ ‫לא‬ ‫לוגיקה‬.‫בלבד‬ ‫אחד‬ ‫שעון‬ ‫סיבוב‬ ‫להוסיף‬ ‫העדפתי‬ ‫קצרה‬ ‫לא‬ ‫לוגיקה‬ ‫לערך‬ ‫אחד‬ ‫מקבילים‬ ‫מעגלים‬ ‫שני‬ ‫תוכננו‬ ‫בתחילה‬‫לערך‬ ‫אחד‬ ‫מקבילים‬ ‫מעגלים‬ ‫שני‬ ‫תוכננו‬ ‫בתחילה‬DCDC‫לערכי‬ ‫ואחד‬‫לערכי‬ ‫ואחד‬ACAC‫הקידוד‬ ‫מנגנון‬ ‫אבל‬‫הקידוד‬ ‫מנגנון‬ ‫אבל‬ .‫המתבקשים‬ ‫השינויים‬ ‫עם‬ ‫יחיד‬ ‫במודול‬ ‫שניהם‬ ‫את‬ ‫לעבד‬ ‫העדפתי‬ ‫לכן‬ ,‫דומה‬.‫המתבקשים‬ ‫השינויים‬ ‫עם‬ ‫יחיד‬ ‫במודול‬ ‫שניהם‬ ‫את‬ ‫לעבד‬ ‫העדפתי‬ ‫לכן‬ ,‫דומה‬ FIFOFIFO‫שעון‬ ‫מחזורי‬ ‫כמה‬ ‫לאורך‬ ‫יחיד‬ ‫ערך‬ ‫שמירת‬ ‫אך‬ ,‫לעיל‬ ‫שהוזכר‬ ‫קצה‬ ‫במקרה‬ , ‫במוצא‬‫שעון‬ ‫מחזורי‬ ‫כמה‬ ‫לאורך‬ ‫יחיד‬ ‫ערך‬ ‫שמירת‬ ‫אך‬ ,‫לעיל‬ ‫שהוזכר‬ ‫קצה‬ ‫במקרה‬ , ‫במוצא‬ ‫פשוטה‬ ‫יותר‬ ‫בצורה‬ ‫הבעיה‬ ‫את‬ ‫.פותרת‬‫פשוטה‬ ‫יותר‬ ‫בצורה‬ ‫הבעיה‬ ‫את‬ ‫.פותרת‬ 102
  • 103. RLE_DPCMRLE_DPCM ‫פעולה‬ ‫ועקרון‬ ‫תכנון‬ ‫שיקולי‬‫פעולה‬ ‫ועקרון‬ ‫תכנון‬ ‫שיקולי‬ .‫לפיו‬ ‫הקטגוריה‬ ‫והגדרת‬ ‫השלם‬ ‫במספר‬ ‫הראשון‬ ‫המשמעותי‬ ‫הביט‬ ‫מציאת‬.‫לפיו‬ ‫הקטגוריה‬ ‫והגדרת‬ ‫השלם‬ ‫במספר‬ ‫הראשון‬ ‫המשמעותי‬ ‫הביט‬ ‫מציאת‬ ‫שאינו‬ ‫הראשון‬ ‫הביט‬ ‫השלילי‬ ‫ובביט‬ ‫אפס‬ ‫שאינו‬ ‫הראשון‬ ‫הביט‬ ‫חיובי‬ ‫)במספר‬‫שאינו‬ ‫הראשון‬ ‫הביט‬ ‫השלילי‬ ‫ובביט‬ ‫אפס‬ ‫שאינו‬ ‫הראשון‬ ‫הביט‬ ‫חיובי‬ ‫)במספר‬ (‫אחד‬(‫אחד‬ -‫ה‬ ‫מציאת‬-‫ה‬ ‫מציאת‬offsetoffset.‫הנ"ל‬ ‫הביט‬ ‫הורדת‬ ‫ע"י‬.‫הנ"ל‬ ‫הביט‬ ‫הורדת‬ ‫ע"י‬ ‫הוא‬ ‫המידע‬ ‫אם‬ ‫)אלא‬ ‫אפס‬ ‫ערך‬ ‫קליטת‬ ‫בכל‬ ‫האפסים‬ ‫מספר‬ ‫שמירת‬‫הוא‬ ‫המידע‬ ‫אם‬ ‫)אלא‬ ‫אפס‬ ‫ערך‬ ‫קליטת‬ ‫בכל‬ ‫האפסים‬ ‫מספר‬ ‫שמירת‬DCDC(( ‫בשלושה‬ ‫פעם‬ ‫נעשית‬ ‫המוצא‬ ‫אות‬ ‫קריאת‬‫בשלושה‬ ‫פעם‬ ‫נעשית‬ ‫המוצא‬ ‫אות‬ ‫קריאת‬cyclescycles‫חייב‬ ‫במוצא‬ ‫המידע‬ ‫לכן‬ ,‫בלבד‬‫חייב‬ ‫במוצא‬ ‫המידע‬ ‫לכן‬ ,‫בלבד‬ ‫לשלושה‬ ‫להישאר‬‫לשלושה‬ ‫להישאר‬cyclescycles‫שהמידע‬ ‫ייתכן‬ ‫או‬ ‫כפולה‬ ‫קריאה‬ ‫תיתכן‬ ‫אחרת‬ ‫בדיוק‬‫שהמידע‬ ‫ייתכן‬ ‫או‬ ‫כפולה‬ ‫קריאה‬ ‫תיתכן‬ ‫אחרת‬ ‫בדיוק‬ ‫למבוא‬ ‫מידע‬ ‫עוד‬ ‫יגיע‬ ‫שלא‬ ‫יודעים‬ ‫שאנו‬ ‫ומפני‬ ‫כך‬ ‫בעקבות‬ .‫ייקרא‬ ‫לא‬ ‫כלל‬ ‫במוצא‬‫למבוא‬ ‫מידע‬ ‫עוד‬ ‫יגיע‬ ‫שלא‬ ‫יודעים‬ ‫שאנו‬ ‫ומפני‬ ‫כך‬ ‫בעקבות‬ .‫ייקרא‬ ‫לא‬ ‫כלל‬ ‫במוצא‬ ‫תוך‬‫תוך‬33,,cyclescycles-‫ה‬-‫ה‬flagsflags)‫השונים‬)‫השונים‬))d_out_valid, spen_out, eobd_out_valid, spen_out, eob‫עצמו‬ ‫והמידע‬‫עצמו‬ ‫והמידע‬ ‫לשלושה‬ ‫נשמרים‬‫לשלושה‬ ‫נשמרים‬cyclescycles.‫בדיוק‬.‫בדיוק‬ ‫שנבחנו‬ ‫אלטרנטיבות‬‫שנבחנו‬ ‫אלטרנטיבות‬ ‫בדרך‬ ‫עוברים‬ ‫מקרה‬ ‫שבכל‬ ‫מכיוון‬ ‫אבל‬ ,‫שעון‬ ‫ללא‬ ‫המודול‬ ‫את‬ ‫ליצור‬ ‫היה‬ ‫אולי‬ ‫ניתן‬‫בדרך‬ ‫עוברים‬ ‫מקרה‬ ‫שבכל‬ ‫מכיוון‬ ‫אבל‬ ,‫שעון‬ ‫ללא‬ ‫המודול‬ ‫את‬ ‫ליצור‬ ‫היה‬ ‫אולי‬ ‫ניתן‬ ‫להציג‬ ‫הצורך‬ ‫בגלל‬ ‫וגם‬ ‫המוצא‬ ‫באותות‬ ‫שמשתמשים‬ ‫עד‬ ‫שעון‬ ‫סיבובי‬ ‫כמה‬ ‫כלל‬‫להציג‬ ‫הצורך‬ ‫בגלל‬ ‫וגם‬ ‫המוצא‬ ‫באותות‬ ‫שמשתמשים‬ ‫עד‬ ‫שעון‬ ‫סיבובי‬ ‫כמה‬ ‫כלל‬ .‫בלבד‬ ‫אחד‬ ‫שעון‬ ‫סיבוב‬ ‫להוסיף‬ ‫העדפתי‬ ‫קצרה‬ ‫לא‬ ‫לוגיקה‬ ‫לאחר‬ ‫יציב‬ ‫מידע‬.‫בלבד‬ ‫אחד‬ ‫שעון‬ ‫סיבוב‬ ‫להוסיף‬ ‫העדפתי‬ ‫קצרה‬ ‫לא‬ ‫לוגיקה‬ ‫לאחר‬ ‫יציב‬ ‫מידע‬ 103
  • 104. ‫חלק‬‫חלק‬33––Huffman codeHuffman code TripleTriple FIFOFIFO FIFO writerFIFO writer HuffmanHuffman codecode Serial toSerial to paralelparalel FlashFlash writerwriter 104
  • 105. Triple FIFOTriple FIFO •‫מ‬ ‫במקביל‬ ‫המגיע‬ ‫המידע‬‫מ‬ ‫במקביל‬ ‫המגיע‬ ‫המידע‬Y, Cr, CbY, Cr, Cb‫לזיכרון‬ ‫נכתב‬‫לזיכרון‬ ‫נכתב‬FIFOFIFO‫לצורך‬‫לצורך‬ .‫טורי‬ ‫למידע‬ ‫בחזרה‬ ‫העברתו‬.‫טורי‬ ‫למידע‬ ‫בחזרה‬ ‫העברתו‬ •‫ה‬ ‫זיכרון‬‫ה‬ ‫זיכרון‬FIFOFIFO‫הבלוקים‬ ‫שלושת‬ ‫את‬ ‫זמנית‬ ‫לאחסן‬ ‫מאפשר‬‫הבלוקים‬ ‫שלושת‬ ‫את‬ ‫זמנית‬ ‫לאחסן‬ ‫מאפשר‬ .‫הופמן‬ ‫לקידוד‬ ‫להוצאתם‬ ‫עד‬ ‫המגיעים‬.‫הופמן‬ ‫לקידוד‬ ‫להוצאתם‬ ‫עד‬ ‫המגיעים‬ •‫ה‬ ‫של‬ ‫נוסף‬ ‫תפקיד‬‫ה‬ ‫של‬ ‫נוסף‬ ‫תפקיד‬FIFOFIFO‫המידע‬ ‫של‬ ‫זמני‬ ‫אחסון‬ ‫לאפשר‬ ‫הוא‬‫המידע‬ ‫של‬ ‫זמני‬ ‫אחסון‬ ‫לאפשר‬ ‫הוא‬ ‫ה‬ ‫ע"י‬ ‫עצירה‬ ‫ונדרשת‬ ‫במידה‬‫ה‬ ‫ע"י‬ ‫עצירה‬ ‫ונדרשת‬ ‫במידה‬flashflash.. 105
  • 106. FIFO_WRITERFIFO_WRITER -‫מה‬ ‫היוצא‬ ‫המידע‬ ‫את‬ ‫יקרא‬ ‫זה‬ ‫מודול‬ -‫מטרה‬-‫מה‬ ‫היוצא‬ ‫המידע‬ ‫את‬ ‫יקרא‬ ‫זה‬ ‫מודול‬ -‫מטרה‬RLCRLC -‫ב‬ ‫זמני‬ ‫לאחסון‬ ‫ויעבירו‬ ‫המקבילי‬-‫ב‬ ‫זמני‬ ‫לאחסון‬ ‫ויעבירו‬ ‫המקבילי‬SUPER_FIFOSUPER_FIFO.. 106
  • 107. ‫המודול‬ ‫עבודת‬ ‫תיאור‬‫המודול‬ ‫עבודת‬ ‫תיאור‬ -‫ה‬ ‫של‬ ‫המודולים‬ ‫שלושת‬-‫ה‬ ‫של‬ ‫המודולים‬ ‫שלושת‬RLCRLC-‫כ‬ ‫מתחברים‬-‫כ‬ ‫מתחברים‬inputsinputs‫מודול‬ .‫זה‬ ‫למודול‬‫מודול‬ .‫זה‬ ‫למודול‬ -‫ה‬ ‫את‬ ‫סורק‬ ‫זה‬-‫ה‬ ‫את‬ ‫סורק‬ ‫זה‬data_vlaiddata_vlaid‫אחד‬ ‫כל‬ ‫בודק‬ ‫שהוא‬ ‫כך‬ ,‫שלושתם‬ ‫של‬‫אחד‬ ‫כל‬ ‫בודק‬ ‫שהוא‬ ‫כך‬ ,‫שלושתם‬ ‫של‬ -‫ל‬ ‫החוצה‬ ‫מוזרם‬ ‫הנכנס‬ ‫המידע‬ .‫מחזורים‬ ‫שלוש‬ ‫כל‬-‫ל‬ ‫החוצה‬ ‫מוזרם‬ ‫הנכנס‬ ‫המידע‬ .‫מחזורים‬ ‫שלוש‬ ‫כל‬SUPER FIFOSUPER FIFO -‫ל‬ ‫שייך‬ ‫היוצא‬ ‫המידע‬ ‫האם‬ ‫שמציין‬ ‫רגיסטר‬ ‫עם‬-‫ל‬ ‫שייך‬ ‫היוצא‬ ‫המידע‬ ‫האם‬ ‫שמציין‬ ‫רגיסטר‬ ‫עם‬Y/Cb/CrY/Cb/Cr.. :‫במימוש‬ ‫חשובים‬ ‫עקרונות‬:‫במימוש‬ ‫חשובים‬ ‫עקרונות‬ ‫לשלוש‬ ‫מוחזק‬ ‫שנכנס‬ ‫המידע‬‫לשלוש‬ ‫מוחזק‬ ‫שנכנס‬ ‫המידע‬CYCLESCYCLES.. ‫ביטים‬ ‫שני‬ ‫מתווספים‬ ‫נכנס‬ ‫מידע‬ ‫לכל‬‫ביטים‬ ‫שני‬ ‫מתווספים‬ ‫נכנס‬ ‫מידע‬ ‫לכל‬MSBMSB‫בלוק‬ ‫תחילת‬ ‫מייצג‬ ‫שהראשון‬ ‫כך‬‫בלוק‬ ‫תחילת‬ ‫מייצג‬ ‫שהראשון‬ ‫כך‬ .‫בלוק‬ ‫סוף‬ ‫מייצג‬ ‫והשני‬.‫בלוק‬ ‫סוף‬ ‫מייצג‬ ‫והשני‬ 107
  • 108. ‫תחילת-בלוק‬‫תחילת-בלוק‬ INPUT-‫הקידוד‬DC‫ה‬ ‫-של‬RLC‫ה‬ ‫ושלושת‬ ,‫יחד‬ ‫-מגיע‬VALID_BIT‫ה‬ ‫בנוסף‬ .‫נדלקים‬ START_BLOCK‫ל‬ ‫להכניס‬ ‫מנת‬ ‫על‬ ‫דלוק‬ ‫-מוחזק‬DATA‫בלוק‬ ‫תחילת‬ ‫.ביט‬ ‫שלוש‬ ‫למשך‬ ‫דלוק‬ ‫שיוחזק‬ ‫מובטח‬ ‫כאשר‬ ,‫לבד‬ ‫להידלק‬ ‫רשאי‬ ‫ביט‬ ‫כל‬ ‫זו‬ ‫מנקודה‬ ‫החל‬CYC. ‫בלוק‬ ‫תחילת‬ ‫ביט‬ OUTPUT – wr_sector‫החוצה‬ ‫הנכתב‬ ‫המידע‬ ‫שייכות‬ ‫את‬ ‫.מציין‬ wr‫מהקו‬ ‫מידע‬ ‫לקרוא‬ ‫ניתן‬ ‫.מציין‬ WR_DATA–‫שלו‬ ‫המבנה‬ ‫כאשר‬ ‫החוצה‬ ‫שנכתב‬ ‫המידע‬ ‫זה‬ st_blk[1],end_blk[1],zeros[4],category[4],offset[10]‫הכול‬ ‫בסך‬20‫לציין‬ ‫חשוב‬ .‫ביטים‬ ‫קידוד‬ ‫מגיע‬ ‫שכאשר‬DC‫ה‬zeros-‫ב‬ ‫נמצא‬0. 108
  • 109. ‫אמצע-בלוק‬‫אמצע-בלוק‬ ‫של‬ ‫הדלקה‬ ‫פה‬ ‫לראות‬ ‫ניתן‬‫של‬ ‫הדלקה‬ ‫פה‬ ‫לראות‬ ‫ניתן‬valid_bitsvalid_bits-‫ב‬ ‫תקין‬ ‫מידע‬ ‫המייצגים‬-‫ב‬ ‫תקין‬ ‫מידע‬ ‫המייצגים‬ Cb,CrCb,Cr.. ‫כעבור‬‫כעבור‬CYCCYC‫ה‬ ‫כאשר‬‫ה‬ ‫כאשר‬wr_sectorwr_sector‫על‬ ‫מצביע‬‫על‬ ‫מצביע‬CbCb‫נדלק‬‫נדלק‬wrwr‫כאשר‬‫כאשר‬ -‫ה‬ ‫שגם‬ ‫כיוון‬ ‫הבא‬ ‫למחזור‬ ‫גם‬ ‫מוחזק‬ ‫הוא‬-‫ה‬ ‫שגם‬ ‫כיוון‬ ‫הבא‬ ‫למחזור‬ ‫גם‬ ‫מוחזק‬ ‫הוא‬CrCr.‫תקין‬.‫תקין‬ ‫בנוסף‬‫בנוסף‬start blockstart block.‫בלוק‬ ‫באמצע‬ ‫שאנו‬ ‫כיוון‬ ‫כבוי‬.‫בלוק‬ ‫באמצע‬ ‫שאנו‬ ‫כיוון‬ ‫כבוי‬ 109
  • 110. ‫סוף-בלוק‬‫סוף-בלוק‬ ‫של‬ ‫הדלקה‬ ‫לראות‬ ‫ניתן‬ ‫הבלוק‬ ‫בסוף‬‫של‬ ‫הדלקה‬ ‫לראות‬ ‫ניתן‬ ‫הבלוק‬ ‫בסוף‬eobeob-‫ה‬ ‫של‬ ‫והדלקה‬-‫ה‬ ‫של‬ ‫והדלקה‬bitbit‫שזהו‬ ‫המסמן‬‫שזהו‬ ‫המסמן‬ .‫בבלוק‬ ‫האחרון‬ ‫במידע‬.‫בבלוק‬ ‫האחרון‬ ‫במידע‬ -‫ה‬ ‫של‬ ‫הביטים‬ ‫ששלושת‬ ‫מובטח‬ ‫בלוק‬ ‫כל‬ ‫בסוף‬-‫ה‬ ‫של‬ ‫הביטים‬ ‫ששלושת‬ ‫מובטח‬ ‫בלוק‬ ‫כל‬ ‫בסוף‬validvalid‫שהעבודה‬ ‫כיוון‬ ‫דלוקים‬ ‫יהיו‬‫שהעבודה‬ ‫כיוון‬ ‫דלוקים‬ ‫יהיו‬ .‫הזמן‬ ‫באותו‬ ‫מסתיימת‬ ‫זה‬ ‫מודול‬ ‫לפני‬ ‫שמתבצעת‬.‫הזמן‬ ‫באותו‬ ‫מסתיימת‬ ‫זה‬ ‫מודול‬ ‫לפני‬ ‫שמתבצעת‬ 110
  • 111. SUPER FIFOSUPER FIFO -‫מה‬ ‫המידע‬ ‫את‬ ‫ייקרא‬ ‫זה‬ ‫מודול‬-‫מה‬ ‫המידע‬ ‫את‬ ‫ייקרא‬ ‫זה‬ ‫מודול‬FIFO_WRITERFIFO_WRITER -‫ב‬ ‫סקטורים‬ ‫שלושה‬ ‫בין‬ ‫אותו‬ ‫וייפזר‬-‫ב‬ ‫סקטורים‬ ‫שלושה‬ ‫בין‬ ‫אותו‬ ‫וייפזר‬RAMRAM.‫יחיד‬.‫יחיד‬ ‫בצורה‬ ‫זאת‬ ‫לעומת‬ ‫ייקרא‬ ‫שיאוכסן‬ ‫המידע‬‫בצורה‬ ‫זאת‬ ‫לעומת‬ ‫ייקרא‬ ‫שיאוכסן‬ ‫המידע‬ ‫סקטוריאלית‬‫סקטוריאלית‬ ‫מעין‬ ‫מתפקד‬ ‫סקטור‬ ‫כל‬FIFO‫עצמאי‬ ‫התחלה‬ ‫כתובת‬ ‫מוגדר‬ ‫אחד‬ ‫לכל‬ ‫כאשר‬ .‫סיום‬ ‫וכתובת‬ -‫כ‬ ‫יש‬ ‫סקטור‬ ‫לכל‬10‫למינימום‬ ‫מעבר‬ ‫תאים‬ -‫ל‬ ‫להיערך‬ ‫המאפשר‬ ‫דבר‬ ,‫ההכרחי‬HALT ‫של‬ ‫באורך‬80- ‫מה‬ ‫המגיע‬ ‫סייקלים‬flash. 111
  • 112. -‫ה‬ ‫גודל‬-‫ה‬ ‫גודל‬FIFOFIFO -‫ה‬ ‫של‬ ‫מהסקטור‬ ‫והקריאה‬ ‫הכתיבה‬-‫ה‬ ‫של‬ ‫מהסקטור‬ ‫והקריאה‬ ‫הכתיבה‬YY‫לכן‬ ‫מתמלא‬ ‫לא‬ ‫הוא‬ ‫לכן‬ ‫במקביל‬ ‫מתבצעת‬‫לכן‬ ‫מתמלא‬ ‫לא‬ ‫הוא‬ ‫לכן‬ ‫במקביל‬ ‫מתבצעת‬ .‫כתובות‬ ‫בשני‬ ‫נסתפק‬.‫כתובות‬ ‫בשני‬ ‫נסתפק‬ ‫של‬ ‫מהסקטור‬ ‫הקריאה‬‫של‬ ‫מהסקטור‬ ‫הקריאה‬CBCB,,CRCR‫ב‬ ‫כבר‬ ‫נמצא‬ ‫הבלוק‬ ‫כל‬ ‫כאשר‬ ‫מתחיל‬‫ב‬ ‫כבר‬ ‫נמצא‬ ‫הבלוק‬ ‫כל‬ ‫כאשר‬ ‫מתחיל‬FIFOFIFO.. ‫יהיו‬ ‫ביותר‬ ‫הקיצוני‬ ‫במקרה‬‫יהיו‬ ‫ביותר‬ ‫הקיצוני‬ ‫במקרה‬6464‫עוד‬ ‫של‬ ‫תוספת‬ ‫קיבלנו‬ .‫אחד‬ ‫לכל‬ ‫קידודים‬‫עוד‬ ‫של‬ ‫תוספת‬ ‫קיבלנו‬ .‫אחד‬ ‫לכל‬ ‫קידודים‬128128 .‫כתובות‬.‫כתובות‬ ‫סה"כ‬‫סה"כ‬130130-‫כ‬ ‫הוספנו‬ ,‫דרושות‬ ‫כתובות‬-‫כ‬ ‫הוספנו‬ ,‫דרושות‬ ‫כתובות‬3030,‫נוספות‬ ‫כתובות‬,‫נוספות‬ ‫כתובות‬1010‫לכל‬‫לכל‬SECSEC‫מנת‬ ‫על‬ .‫מנת‬ ‫על‬ . ‫ה‬ ‫שבו‬ ‫מצב‬ ‫עם‬ ‫להתמודד‬‫ה‬ ‫שבו‬ ‫מצב‬ ‫עם‬ ‫להתמודד‬FLASHFLASH‫נותן‬‫נותן‬HALTHALT‫מרווח‬ ‫נותנת‬ ‫אקסטרה‬ ‫כתובת‬ ‫כל‬ .‫מרווח‬ ‫נותנת‬ ‫אקסטרה‬ ‫כתובת‬ ‫כל‬ . ‫של‬ ‫אגירה‬‫של‬ ‫אגירה‬88‫סייקלים-סה"כ‬‫סייקלים-סה"כ‬8080.. 112
  • 113. -‫ל‬ ‫כתיבה‬-‫ל‬ ‫כתיבה‬FIFOFIFO‫פעולה‬ ‫–עקרון‬‫פעולה‬ ‫–עקרון‬ ‫שרגל‬ ‫בתנאי‬ ‫מהקווים‬ ‫נקרא‬ ‫שנכתב‬ ‫המידע‬‫שרגל‬ ‫בתנאי‬ ‫מהקווים‬ ‫נקרא‬ ‫שנכתב‬ ‫המידע‬WRWR.‫באחד‬ ‫נמצאת‬.‫באחד‬ ‫נמצאת‬ wr_sectorwr_sector- ‫ביטים‬ ‫שני‬- ‫ביטים‬ ‫שני‬INPUTINPUT‫תתבצע‬ ‫כתיבה‬ .‫לכתוב‬ ‫סקטור‬ ‫לאיזה‬ ‫המציינים‬‫תתבצע‬ ‫כתיבה‬ .‫לכתוב‬ ‫סקטור‬ ‫לאיזה‬ ‫המציינים‬ ‫ש‬ ‫-כאמור‬‫ש‬ ‫-כאמור‬WRWR‫.באחד‬‫.באחד‬ ,‫סקטור‬ ‫לאותו‬ ‫המוקצות‬ ‫הכתובת‬ ‫של‬ ‫העליון‬ ‫לגבול‬ ‫מגיעים‬ ‫מסוים‬ ‫בסקטור‬ ‫כאשר‬,‫סקטור‬ ‫לאותו‬ ‫המוקצות‬ ‫הכתובת‬ ‫של‬ ‫העליון‬ ‫לגבול‬ ‫מגיעים‬ ‫מסוים‬ ‫בסקטור‬ ‫כאשר‬ .‫סקטור‬ ‫באותו‬ ‫הראשונה‬ ‫לכתובת‬ ‫מתבצעת‬ ‫הבאה‬ ‫הכתיבה‬.‫סקטור‬ ‫באותו‬ ‫הראשונה‬ ‫לכתובת‬ ‫מתבצעת‬ ‫הבאה‬ ‫הכתיבה‬ 113
  • 114. FIFO signals WRFIFO signals WR ‫בכניסה‬ ‫המידע‬ ‫של‬ ‫בעליה‬ ‫נכתב‬ WR ‫צריך‬ ‫המידע‬ ‫להיכתב‬ ‫לסקטור‬1 ‫נכתב‬ ‫המידע‬ ‫לכתובת‬8 ‫לראות‬ ‫ניתן‬ ‫אחריי‬ ‫מחזור‬ ‫הקידום‬ ‫את‬ -‫ל‬ ‫בכתובת‬9 114
  • 115. -‫מ‬ ‫קריאה‬-‫מ‬ ‫קריאה‬FIFOFIFO‫פעולה‬ ‫–עקרון‬‫פעולה‬ ‫–עקרון‬ ‫מה‬ ‫נקרא‬ ‫המידע‬‫מה‬ ‫נקרא‬ ‫המידע‬FIFOFIFO:‫סקטוריאלית‬ ‫בצורה‬:‫סקטוריאלית‬ ‫בצורה‬ Y,CB,CRY,CB,CR.‫חלילה‬ ‫וחוזר‬.‫חלילה‬ ‫וחוזר‬ -‫ה‬-‫ה‬FIFOFIFO‫במעבר‬ ‫השליטה‬ ‫כלומר‬ ,‫אדיש‬ ‫מודול‬ ‫הוא‬‫במעבר‬ ‫השליטה‬ ‫כלומר‬ ,‫אדיש‬ ‫מודול‬ ‫הוא‬ .‫מבחוץ‬ ‫מתבצעת‬ ‫הסקטורים‬ ‫בין‬.‫מבחוץ‬ ‫מתבצעת‬ ‫הסקטורים‬ ‫בין‬ ‫רגל‬ ,‫לקרוא‬ ‫רוצים‬ ‫ממנו‬ ‫בסקטור‬ ‫מידע‬ ‫יש‬ ‫כאשר‬‫רגל‬ ,‫לקרוא‬ ‫רוצים‬ ‫ממנו‬ ‫בסקטור‬ ‫מידע‬ ‫יש‬ ‫כאשר‬ EMPTYEMPTY-‫ל‬ ‫יורדת‬-‫ל‬ ‫יורדת‬00‫למידע‬ ‫שמתחבר‬ ‫והמודול‬‫למידע‬ ‫שמתחבר‬ ‫והמודול‬ .‫מידע‬ ‫לקבל‬ ‫יכול‬ ‫היוצא‬.‫מידע‬ ‫לקבל‬ ‫יכול‬ ‫היוצא‬ ‫מתבצע‬ ‫החוצה‬ ‫מידע‬ ‫של‬ ‫נאות:הקריאה‬ ‫גילוי‬‫מתבצע‬ ‫החוצה‬ ‫מידע‬ ‫של‬ ‫נאות:הקריאה‬ ‫גילוי‬ .‫שעון‬ ‫בירידת‬.‫שעון‬ ‫בירידת‬ 115
  • 116. FIFO signals RDFIFO signals RD ‫רגל‬ EMPTY -‫למעלה‬ ‫מידע‬ ‫אין‬ ‫הנוכחי‬ ‫הסקטור‬ ‫מבצעת‬ ‫ממנו‬ ‫שליטה‬ -‫קריאה‬ ‫מבחוץ‬ ‫אחריי‬ ‫לראות‬ ‫ניתן‬ ‫את‬ ‫מחזורים‬ ‫שני‬ ‫המידע‬-‫מה‬ ‫יוצא‬ RAM‫ורגל‬ EMPTY‫למטה‬ ‫מתבצעת‬ ‫לסקטור‬ ‫כתיבה‬ ‫קוראים‬ ‫ממנו‬ 116
  • 117. FIFO signals RD-swap sectorsFIFO signals RD-swap sectors ‫בסקטור‬ ‫המידע‬ 1‫ויש‬ ‫מסתיים‬ ‫לסקטור‬ ‫מעבר‬ 2.‫בתור‬ ‫הבא‬ ‫סקטור‬ ‫בין‬ ‫המעבר‬2-‫ל‬3 ‫מהמעבר‬ ‫מהיר‬ ‫יותר‬ ‫הרבה‬ ‫כבר‬ ‫שהבלוק‬ ‫כיוון‬ ‫הקודם‬ ‫בסקטור‬ ‫כולו‬ ‫מוכן‬2‫אין‬ ‫ולכן‬ .‫לקריאה‬ ‫קריאה‬ ‫בין‬ ‫השהיות‬ .‫ברצף‬ ‫זורם‬ ‫המידע‬ ‫סקטור‬ ‫בין‬ ‫המעבר‬3-‫ל‬ 1‫מאותה‬ ‫מהיר‬ ‫כן‬ ‫גם‬ ‫ההחלפה‬ ‫לאחר‬ .‫סיבה‬ ‫לסקטור‬1‫לראות‬ ‫ניתן‬ ‫ש‬EMPTY‫למעלה‬ -‫ב‬ ‫שהטיפול‬ ‫כיוון‬ ‫סקטורים‬2,3‫היה‬ ‫הגעה‬ ‫מקצב‬ ‫יותר‬ ‫מהיר‬ .‫חדש‬ ‫בלוק‬ ‫של‬117
  • 118. ‫שנבחנו‬ ‫אלטרנטיבות‬‫שנבחנו‬ ‫אלטרנטיבות‬ -‫ב‬ ‫שימוש‬-‫ב‬ ‫שימוש‬33FIFOFIFO.‫סקטורים‬ ‫לכל‬ ‫אחד‬ .‫נפרדים‬.‫סקטורים‬ ‫לכל‬ ‫אחד‬ .‫נפרדים‬ ‫למימוש‬ ‫יותר‬ ‫קל‬ :‫יתרונות‬‫למימוש‬ ‫יותר‬ ‫קל‬ :‫יתרונות‬ .‫מקום‬ ‫בזבוז‬ :‫חסרונות‬.‫מקום‬ ‫בזבוז‬ :‫חסרונות‬ ‫ה‬ ‫ידי‬ ‫על‬ ‫יתנהל‬ ‫לקריאה‬ ‫הסקטורים‬ ‫ניהול‬‫ה‬ ‫ידי‬ ‫על‬ ‫יתנהל‬ ‫לקריאה‬ ‫הסקטורים‬ ‫ניהול‬FIFOFIFO:: ‫למימוש‬ ‫יותר‬ ‫יתרונות:קל‬‫למימוש‬ ‫יותר‬ ‫יתרונות:קל‬ :‫חסרונות‬:‫חסרונות‬FIFOFIFO‫עם‬ ‫אדיש‬ ‫מודול‬ ‫הוא‬ ‫במהותו‬‫עם‬ ‫אדיש‬ ‫מודול‬ ‫הוא‬ ‫במהותו‬ ‫ברורה‬ ‫מאוד‬ ‫מסגרת‬‫ברורה‬ ‫מאוד‬ ‫מסגרת‬ 118
  • 120. HUFFMAN_CODEHUFFMAN_CODE ‫בשלושת‬ ‫השמור‬ ‫המידע‬ ‫את‬ ‫ייקח‬ ‫זה‬ ‫מודול‬ -‫מטרה‬‫בשלושת‬ ‫השמור‬ ‫המידע‬ ‫את‬ ‫ייקח‬ ‫זה‬ ‫מודול‬ -‫מטרה‬ -‫ה‬-‫ה‬SECTORSSECTORS-‫ה‬ ‫של‬-‫ה‬ ‫של‬SUPER_FIFOSUPER_FIFO‫אותם‬ ‫וימיר‬‫אותם‬ ‫וימיר‬ ‫באמצעות‬‫באמצעות‬44‫היוצא‬ ‫המידע‬ .‫שונות‬ ‫קידוד‬ ‫טבלאות‬‫היוצא‬ ‫המידע‬ .‫שונות‬ ‫קידוד‬ ‫טבלאות‬ ‫בשרשרת‬ ‫הבא‬ ‫למודול‬ ‫מועבר‬ ‫זה‬ ‫ממודול‬‫בשרשרת‬ ‫הבא‬ ‫למודול‬ ‫מועבר‬ ‫זה‬ ‫ממודול‬ SERIAL_TO_PARALLELSERIAL_TO_PARALLEL.. 120
  • 121. ‫המודול‬ ‫עבודת‬ ‫תיאור‬‫המודול‬ ‫עבודת‬ ‫תיאור‬ ‫מסקטור‬ ‫תחילה‬ ‫לקרוא‬ ‫מאותחל‬ ‫המודול‬‫מסקטור‬ ‫תחילה‬ ‫לקרוא‬ ‫מאותחל‬ ‫המודול‬YY‫המציין‬ ‫סיגנל‬ ‫נכנס‬ ‫כאשר‬ ‫פעולתו‬ ‫את‬ ‫מתחיל‬ ‫המודול‬ .‫המציין‬ ‫סיגנל‬ ‫נכנס‬ ‫כאשר‬ ‫פעולתו‬ ‫את‬ ‫מתחיל‬ ‫המודול‬ . ‫שסקטור‬‫שסקטור‬YY‫של‬ ‫הכתובת‬ ‫של‬ ‫חישוב‬ ‫מתבצע‬ ‫ובאמצעותם‬ ‫מגיע‬ ‫והאפסים‬ ‫הקטגוריה‬ ‫של‬ ‫המידע‬ .‫ריק‬ ‫איננו‬‫של‬ ‫הכתובת‬ ‫של‬ ‫חישוב‬ ‫מתבצע‬ ‫ובאמצעותם‬ ‫מגיע‬ ‫והאפסים‬ ‫הקטגוריה‬ ‫של‬ ‫המידע‬ .‫ריק‬ ‫איננו‬ ‫ל‬ ‫)בהתאם‬ ‫המתאים‬ ‫הקידוד‬‫ל‬ ‫)בהתאם‬ ‫המתאים‬ ‫הקידוד‬Y,CB,CR,AC,DCY,CB,CR,AC,DC‫הקידוד‬ .‫הקידוד‬ ‫אורך‬ ‫את‬ ‫בתוכו‬ ‫מכיל‬ ‫היוצא‬ ‫הקידוד‬ .(‫הקידוד‬ .‫הקידוד‬ ‫אורך‬ ‫את‬ ‫בתוכו‬ ‫מכיל‬ ‫היוצא‬ ‫הקידוד‬ .( ‫ה‬ ‫עם‬ ‫יחד‬ ‫החוצה‬ ‫יוצא‬‫ה‬ ‫עם‬ ‫יחד‬ ‫החוצה‬ ‫יוצא‬OFFSETOFFSET‫ידי‬ ‫על‬ ‫הושהה‬ ‫אך‬ , ‫קידוד‬ ‫עבר‬ ‫שלא‬‫ידי‬ ‫על‬ ‫הושהה‬ ‫אך‬ , ‫קידוד‬ ‫עבר‬ ‫שלא‬PIPE-LINEPIPE-LINE.. ‫למודול‬ ‫מועבר‬ ‫היוצא‬ ‫המידע‬‫למודול‬ ‫מועבר‬ ‫היוצא‬ ‫המידע‬SERIAL TO PARALLELSERIAL TO PARALLEL‫בביט‬ ‫מלווה‬‫בביט‬ ‫מלווה‬VALIDVALID.. :‫במימוש‬ ‫חשובים‬ ‫עקרונות‬:‫במימוש‬ ‫חשובים‬ ‫עקרונות‬ -‫ב‬ ‫שימוש‬-‫ב‬ ‫שימוש‬ROMROM-‫ה‬ ‫בתוך‬ ‫והתנועה‬ .‫זו‬ ‫אחר‬ ‫זה‬ ‫שמורות‬ ‫הטבלאות‬ ‫שארבעת‬ ‫כך‬ ‫יחיד‬-‫ה‬ ‫בתוך‬ ‫והתנועה‬ .‫זו‬ ‫אחר‬ ‫זה‬ ‫שמורות‬ ‫הטבלאות‬ ‫שארבעת‬ ‫כך‬ ‫יחיד‬ROMROM‫ביחס‬ ‫היא‬‫ביחס‬ ‫היא‬ ‫לארבע‬‫לארבע‬OffsetsOffsets.. -‫ב‬ ‫שורה‬ ‫כל‬ ‫בתחילת‬-‫ב‬ ‫שורה‬ ‫כל‬ ‫בתחילת‬ROMROM-‫ה‬ ‫אורך‬ ‫שמור‬-‫ה‬ ‫אורך‬ ‫שמור‬DATADATA.‫שורה‬ ‫אותה‬ ‫של‬.‫שורה‬ ‫אותה‬ ‫של‬ -‫מה‬ ‫שנקרא‬ ‫המידע‬-‫מה‬ ‫שנקרא‬ ‫המידע‬SUPER_FIFOSUPER_FIFO‫של‬ ‫בלוק‬ ‫קודם‬ ‫כלומר‬ ,‫סקטוריאלית‬ ‫בצורה‬ ‫נקרא‬‫של‬ ‫בלוק‬ ‫קודם‬ ‫כלומר‬ ,‫סקטוריאלית‬ ‫בצורה‬ ‫נקרא‬YY,‫של‬ ‫בלוק‬ ,,‫של‬ ‫בלוק‬ , CbCb‫של‬ ‫בלוק‬‫של‬ ‫בלוק‬CrCr.‫חלילה‬ ‫וחוזר‬.‫חלילה‬ ‫וחוזר‬ 121
  • 122. HUFFMAN_CODE diagramHUFFMAN_CODE diagram PIPE LINE X2 OFFSET [11] CATEGORY[4] OFFSET [11] OFFSET_LENGTH[4] Logic implementation: 10*zeros+category+offs et ZEROS[4] ROM CONTAIN 4 HUFFMAN TABLES The encode result [16] Length of encode data[4] ST_B,EN_B[2] Calc Which table to use offset RD_SECTOR[2] 122
  • 123. ‫הסיגנלים‬ ‫תאור‬‫הסיגנלים‬ ‫תאור‬ ‫ברום‬ ‫המידע‬ ‫נגמר‬ -‫ה‬ ‫המידע‬ ‫מגיע‬1‫מידע‬ ,DC. ‫באמצעות‬ ‫מקודד‬ ‫המידע‬ -‫ב‬ ‫שלוש‬ ‫טבלה‬ROM ‫הבא‬ ‫המידע‬ ‫מטבלה‬ ‫מקודד‬2 -‫ב‬ROM -‫ה‬ ‫קידוד‬ ‫תוצאות‬DC -‫ה‬ ‫קידוד‬ ‫תוצאות‬AC. ‫ניתן‬ ‫מתחת‬ ‫השורות‬ ‫בשני‬ ‫ההפרדה‬ ‫את‬ ‫לראות‬ .‫ואורכו‬ ‫לקידוד‬ VALID_OUT ‫הסיגנלים‬ ‫בשני‬ -‫ה‬ ‫את‬ ‫יש‬ ‫הללו‬ OFFSET -‫אורכו‬ ‫ואת‬ ‫כפונקציה‬ ‫נלקח‬ ‫הקטגוריה‬ ‫של‬ 123
  • 124. ‫שנבחנו‬ ‫אלטרנטיבות‬‫שנבחנו‬ ‫אלטרנטיבות‬ -‫ב‬ ‫שימוש‬-‫ב‬ ‫שימוש‬44.‫טבלה‬ ‫לכל‬ ‫אחד‬ .‫נפרדים‬ ‫רומים‬.‫טבלה‬ ‫לכל‬ ‫אחד‬ .‫נפרדים‬ ‫רומים‬ .‫אין‬ :‫יתרונות‬.‫אין‬ :‫יתרונות‬ .‫מקום‬ ‫בזבוז‬ :‫חסרונות‬.‫מקום‬ ‫בזבוז‬ :‫חסרונות‬ ‫ה‬ ‫ידי‬ ‫על‬ ‫יתנהל‬ ‫לקריאה‬ ‫הסקטורים‬ ‫ניהול‬‫ה‬ ‫ידי‬ ‫על‬ ‫יתנהל‬ ‫לקריאה‬ ‫הסקטורים‬ ‫ניהול‬FIFOFIFO:: ‫למימוש‬ ‫יותר‬ ‫יתרונות:קל‬‫למימוש‬ ‫יותר‬ ‫יתרונות:קל‬ ‫ה‬ ‫של‬ ‫כקליינט‬ ‫מתפקד‬ ‫זה‬ ‫מודול‬ :‫חסרונות‬‫ה‬ ‫של‬ ‫כקליינט‬ ‫מתפקד‬ ‫זה‬ ‫מודול‬ :‫חסרונות‬FIFOFIFO .‫הגיוני‬ ‫יותר‬ ‫זו‬ ‫בתצורה‬ ‫ומימושו‬.‫הגיוני‬ ‫יותר‬ ‫זו‬ ‫בתצורה‬ ‫ומימושו‬ 124
  • 126. SERIAL2PARALLELSERIAL2PARALLEL -‫ה‬ ‫ממודול‬ ‫היוצא‬ ‫המידע‬ ‫את‬ ‫ייקח‬ ‫זה‬ ‫מודול‬ :‫מטרה‬-‫ה‬ ‫ממודול‬ ‫היוצא‬ ‫המידע‬ ‫את‬ ‫ייקח‬ ‫זה‬ ‫מודול‬ :‫מטרה‬ HUFFMAN_CODEHUFFMAN_CODE-‫מ‬ ‫הנע‬ ‫בגודל‬ ‫המגיע‬ ‫מידע‬ --‫מ‬ ‫הנע‬ ‫בגודל‬ ‫המגיע‬ ‫מידע‬ -22‫ועד‬ ‫ביט‬‫ועד‬ ‫ביט‬2626 .‫ביט‬.‫ביט‬ ‫יוצא‬ ‫הזזה.המידע‬ ‫רגיסטר‬ ‫על‬ ‫מולבש‬ ‫זה‬ ‫מידע‬‫יוצא‬ ‫הזזה.המידע‬ ‫רגיסטר‬ ‫על‬ ‫מולבש‬ ‫זה‬ ‫מידע‬‫יש‬ ‫כאשר‬‫יש‬ ‫כאשר‬1616‫ביט‬‫ביט‬ .‫הגיעו‬ ‫דרכו‬ ‫המכסימלי‬ ‫מהבס‬ ‫סינון‬ ‫שעברו‬.‫הגיעו‬ ‫דרכו‬ ‫המכסימלי‬ ‫מהבס‬ ‫סינון‬ ‫שעברו‬ ‫ברגע‬ ‫דגל‬ ‫וירים‬ ‫דרכו‬ ‫שעברו‬ ‫הבלוקים‬ ‫מספר‬ ‫את‬ ‫יספור‬ ‫זה‬ ‫מודול‬‫ברגע‬ ‫דגל‬ ‫וירים‬ ‫דרכו‬ ‫שעברו‬ ‫הבלוקים‬ ‫מספר‬ ‫את‬ ‫יספור‬ ‫זה‬ ‫מודול‬ ‫מאוד‬ ‫וחשובה‬ ‫בהמשך‬ ‫למודולים‬ ‫תשלח‬ ‫זו‬ ‫רגל‬ .‫העבודה‬ ‫שנגמרה‬‫מאוד‬ ‫וחשובה‬ ‫בהמשך‬ ‫למודולים‬ ‫תשלח‬ ‫זו‬ ‫רגל‬ .‫העבודה‬ ‫שנגמרה‬ .‫התמונה‬ ‫של‬ ‫הסופית‬ ‫לסגירתה‬.‫התמונה‬ ‫של‬ ‫הסופית‬ ‫לסגירתה‬ 126
  • 127. SERIAL2PARALLEL diagram 1SERIAL2PARALLEL diagram 1 ‫למודול‬ ‫נכנס‬ ‫הופמן‬ ‫קידוד‬ ‫למודול‬ ‫נכנס‬ ‫הקידוד‬ ‫אורך‬ OFFSET‫למודול‬ ‫נכנס‬ ‫אורך‬OFFSET 50000000000011001 0001111011 7 1100100000000000 00000111101100000000 ‫אורך‬‫משותף‬‫ביצוע‬OR‫הקודמים‬ ‫הבסים‬ ‫בין‬ 11001111101000000000 000000000000000000000000000000001001 ‫חדש‬ ‫מידע‬ ‫למקם‬ ‫ניתן‬ ‫שממנו‬ ‫המקום‬ 00000000000000000000110011111010 1001 ‫באורך‬ ‫מידע‬ ‫כבר‬ ‫נמצא‬ ‫שברגיסטר‬ ‫בדיאגראמה‬ ‫לראות‬ ‫ניתן‬4‫מגיע‬ ‫החדש‬ ‫המידע‬ ‫כניסת‬ ‫ולאחר‬ -‫ל‬ ‫המידע‬ ‫אורך‬15‫שה‬ ‫רק‬ ‫מתבצעת‬ ‫החוצה‬ ‫מידע‬ ‫הוצאת‬ .16‫ביטים‬MSB.‫מלאים‬ ‫המידע‬ ‫כל‬ ‫את‬ ‫המחזיק‬ ‫הזזה‬ ‫רגיסטר‬ ‫החוצה‬ ‫יצא‬ ‫לא‬ ‫שעדיין‬ ‫חדש‬ ‫מידע‬ ‫למקם‬ ‫ניתן‬ ‫שממנו‬ ‫המקום‬ 127
  • 128. SERIAL2PARALLEL diagram 2SERIAL2PARALLEL diagram 2 ‫למודול‬ ‫נכנס‬ ‫הופמן‬ ‫קידוד‬ ‫למודול‬ ‫נכנס‬ ‫הקידוד‬ ‫אורך‬ OFFSET‫למודול‬ ‫נכנס‬ ‫אורך‬OFFSET 50000000000011001 0001111011 7 1100100000000000 00000111101100000000 ‫אורך‬‫משותף‬‫ביצוע‬OR‫הקודמים‬ ‫הבסים‬ ‫בין‬ 11001111101000000000 100111001111101000000000000000000000 ‫המידע‬ ‫כל‬ ‫את‬ ‫המחזיק‬ ‫הזזה‬ ‫רגיסטר‬ ‫החוצה‬ ‫יצא‬ ‫לא‬ ‫שעדיין‬ 1100111110111001 ‫לקובץ‬ ‫לכתיבה‬ ‫מוכנים‬ ‫החוצה‬ ‫שיוצאים‬ ‫הבייטים‬ ‫שני‬JPG 100111001111101110011111010000000000 -‫מ‬ ‫ביותר‬ ‫מלא‬ ‫הזזה‬ ‫רגיסטר‬16‫עולה‬ ‫זו‬ ‫זמן‬ ‫בנקודת‬ ‫שכבר‬ ‫כיוון‬ ,‫החוצה‬ ‫ייקרא‬ ‫זה‬ ‫מידע‬ ‫הבא‬ ‫בסייקל‬ .‫ביטים‬DATA_VALID .‫החוצה‬ 128
  • 129. SERIAL2PARALLEL diagram 3SERIAL2PARALLEL diagram 3 ‫למודול‬ ‫נכנס‬ ‫הופמן‬ ‫קידוד‬ ‫למודול‬ ‫נכנס‬ ‫הקידוד‬ ‫אורך‬ OFFSET‫למודול‬ ‫נכנס‬ ‫אורך‬OFFSET 20000000000000001 0000000001 1 0000000000000000 0100 00100000000000000000 ‫אורך‬‫משותף‬‫ביצוע‬OR‫הקודמים‬ ‫הבסים‬ ‫בין‬ 000000000001100000000000000000000000 100111001111101110011111010000000000 10011111010000000000000000000000 0000 011000000000000000000000 100111110101100000000000000000000000 ‫ימינה‬ ‫הזזה‬ ‫עם‬ ‫להיכתב‬ ‫שצריך‬ ‫החדש‬ ‫המידע‬ ‫את‬ ‫מחזיק‬ ‫זה‬ ‫בס‬ ‫אך‬ ‫הזזה‬ ‫ברגיסטר‬ ‫להישאר‬ ‫שצריך‬ ‫הישן‬ ‫המידע‬ ‫את‬ ‫מחזיק‬ ‫זה‬ ‫בס‬ ‫ביותר‬ ‫העדכני‬ ‫המידע‬ ‫שהוא‬ ‫כיוון‬ ‫שמאלה‬ ‫מוזז‬ ‫הוא‬ ‫ביצוע‬OR‫הקודמים‬ ‫הבסים‬ ‫בין‬ ‫להידרס‬ ‫יכול‬ ‫בשחור‬ ‫המידע‬ -‫בתוכו‬ ‫המידע‬ ‫עדכון‬ ‫לפני‬ ‫ההזזה‬ ‫רגיסטר‬ 10011111010110000000000000000000 0000 ‫העדכון‬ ‫לאחר‬ ‫ההזזה‬ ‫רגיסטר‬ 129
  • 130. ‫מידע‬ ‫להניח‬ ‫ניתן‬ ‫היכן‬ ‫המציין‬ ‫פוינטר‬ ‫למודול‬ ‫מידע‬ ‫נכנס‬ ‫ואורכו‬ ‫הופמן‬ ‫קידוד‬ OFFSET ‫ואורכו‬ OFFSET‫עריכה‬ ‫לאחר‬ ‫.וקידוד‬ ‫אורך‬OFFSET ‫וקידוד‬ ‫במידע‬ ‫מתמלא‬ ‫זה‬ ‫רגיסטר‬ ‫בהתאם‬ ‫מהבסים‬ ‫שנגזר‬ ‫המדויק‬ ‫לגודלם‬ ‫עיבודו‬ ‫ותהליך‬ -‫נכנס‬ ‫מידע‬ ‫של‬ ‫תיאור‬ 130
  • 131. ‫מידע‬ ‫להניח‬ ‫ניתן‬ ‫היכן‬ ‫המציין‬ ‫פוינטר‬ ‫למודול‬ ‫מידע‬ ‫נכנס‬ ‫ואורכו‬ ‫הופמן‬ ‫קידוד‬ OFFSET ‫ואורכו‬ ‫החוצה‬ ‫מידע‬ ‫להעביר‬ ‫ניתן‬ ‫ממנו‬ ‫המיקום‬ ‫את‬ ‫המחזיק‬ ‫פרמטר‬ ‫עיבודו‬ ‫ותהליך‬ -‫נכנס‬ ‫מידע‬ ‫של‬ ‫תיאור‬ ‫אורך‬OFFSET‫וקידוד‬ OFFSET‫עריכה‬ ‫לאחר‬ ‫.וקידוד‬ ‫מוכן‬ ‫החוצה‬ ‫מידע‬ ‫החוצה‬ ‫הנכתב‬ ‫מידע‬‫להיות‬ ‫והופך‬ ‫החוצה‬ ‫נכתב‬ ‫שאינו‬ ‫מידע‬ -‫ב‬ ‫המידע‬MSB‫הנוכחי‬ ‫המידע‬ ‫הוצאת‬ ‫לאחר‬ ‫לאחר‬ ‫להיכתב‬ ‫צריך‬ ‫שנכנס‬ ‫החדש‬ ‫המידע‬ ‫החוצה‬ ‫הכתיבה‬ ‫לאחר‬ ‫שנותרה‬ ‫המידע‬ ‫שארית‬ 131
  • 132. :‫קיצוני‬ ‫תרחיש‬:‫קיצוני‬ ‫תרחיש‬ .‫נדיר‬ ‫מאוד‬ ‫קידוד‬ ‫זהו‬.‫נדיר‬ ‫מאוד‬ ‫קידוד‬ ‫זהו‬ – ‫הנ"ל‬ ‫המידע‬ ‫של‬ ‫רצף‬ ‫כלשהו‬ ‫בלוק‬ ‫עבור‬ ‫ומגיע‬ ‫במידה‬– ‫הנ"ל‬ ‫המידע‬ ‫של‬ ‫רצף‬ ‫כלשהו‬ ‫בלוק‬ ‫עבור‬ ‫ומגיע‬ ‫במידה‬00‫קטגוריה‬ ,‫אפסים‬‫קטגוריה‬ ,‫אפסים‬1010 ‫קידוד‬ ‫ואורך‬‫קידוד‬ ‫ואורך‬1616‫של‬ ‫באורך‬ ‫מידע‬ ‫זה‬ ‫למודול‬ ‫נכנס‬ .‫של‬ ‫באורך‬ ‫מידע‬ ‫זה‬ ‫למודול‬ ‫נכנס‬ .2626‫לנקות‬ ‫מסוגל‬ ‫הוא‬ ‫כאשר‬‫לנקות‬ ‫מסוגל‬ ‫הוא‬ ‫כאשר‬1616‫כל‬‫כל‬ .‫אגירה‬ ‫של‬ ‫מצב‬ ‫להיווצר‬ ‫עלול‬ ‫היה‬ ‫זה‬ ‫במצב‬ .‫סיקל‬.‫אגירה‬ ‫של‬ ‫מצב‬ ‫להיווצר‬ ‫עלול‬ ‫היה‬ ‫זה‬ ‫במצב‬ .‫סיקל‬ .‫מענה‬ ‫קיבל‬ ‫זה‬ ‫קיצוני‬ ‫תרחיש‬ ‫גם‬ ‫אך‬.‫מענה‬ ‫קיבל‬ ‫זה‬ ‫קיצוני‬ ‫תרחיש‬ ‫גם‬ ‫אך‬ ‫מרים‬ ‫הוא‬ ‫אליו‬ ‫מימין‬ ‫ששוכב‬ ‫מידע‬ ‫שיש‬ ‫שברגע‬ ‫אדום‬ ‫קו‬ ‫מוגדר‬ ‫למודול‬‫מרים‬ ‫הוא‬ ‫אליו‬ ‫מימין‬ ‫ששוכב‬ ‫מידע‬ ‫שיש‬ ‫שברגע‬ ‫אדום‬ ‫קו‬ ‫מוגדר‬ ‫למודול‬HALTHALT .‫עליו‬ ‫שנאגר‬ ‫המידע‬ ‫את‬ ‫מרוקן‬ ,‫הנכנס‬ ‫למידע‬.‫עליו‬ ‫שנאגר‬ ‫המידע‬ ‫את‬ ‫מרוקן‬ ,‫הנכנס‬ ‫למידע‬ .‫המידע‬ ‫של‬ ‫מחודשת‬ ‫הזרמה‬ ‫ומאפשר‬.‫המידע‬ ‫של‬ ‫מחודשת‬ ‫הזרמה‬ ‫ומאפשר‬ 132
  • 133. ‫הבלוקים‬ ‫ספירת‬‫הבלוקים‬ ‫ספירת‬ ‫תמונה‬ ‫סיום‬‫תמונה‬ ‫סיום‬ ‫שהסתיימו‬ ‫בלוקים‬ ‫ספירת‬ ‫הנוכחית‬ ‫התמונה‬ ‫של‬ ‫אחרון‬ ‫מידע‬ Data valid‫בגודל‬ -‫שנותרה‬ ‫המידע‬ ‫ששארית‬ ‫מנת‬ ‫על‬ ‫סייקל‬ ‫עוד‬ ‫נמתח‬1‫החוצה‬ ‫יצא‬ ‫בייט‬ 133
  • 134. Writing the jpeg fileWriting the jpeg file 134
  • 135. FLASH_WRITERFLASH_WRITER :‫מטרות‬:‫מטרות‬ 11‫בפורמט‬ ‫התמונה‬ ‫את‬ ‫יכתוב‬ ‫זה‬ ‫מודול‬ .‫בפורמט‬ ‫התמונה‬ ‫את‬ ‫יכתוב‬ ‫זה‬ ‫מודול‬ .JPGJPG-‫ל‬-‫ל‬FLASHFLASH.. 22.‫הקידוד‬ ‫בוצע‬ ‫באמצעותה‬ ‫הקוונטיזציה‬ ‫טבלת‬ ‫את‬ ‫לקובץ‬ ‫יכניס‬ ‫זה‬ ‫.מודול‬.‫הקידוד‬ ‫בוצע‬ ‫באמצעותה‬ ‫הקוונטיזציה‬ ‫טבלת‬ ‫את‬ ‫לקובץ‬ ‫יכניס‬ ‫זה‬ ‫.מודול‬ 33‫הנתונה‬ ‫התמונה‬ ‫את‬ ‫המאפיינים‬ ‫הפרמטרים‬ ‫את‬ ‫ייקרא‬ ‫זה‬ ‫.מודול‬‫הנתונה‬ ‫התמונה‬ ‫את‬ ‫המאפיינים‬ ‫הפרמטרים‬ ‫את‬ ‫ייקרא‬ ‫זה‬ ‫.מודול‬ .‫בפורמט‬ ‫אותם‬ ‫ויישלו‬.‫בפורמט‬ ‫אותם‬ ‫ויישלו‬ 44-‫ב‬ ‫שהוצמד‬ ‫המידע‬ ‫את‬ ‫ייקח‬ ‫זה‬ ‫.מודול‬-‫ב‬ ‫שהוצמד‬ ‫המידע‬ ‫את‬ ‫ייקח‬ ‫זה‬ ‫.מודול‬SERTIAL TO PARALLELSERTIAL TO PARALLEL " ‫בייט‬ ‫בדיקת‬ ‫כדי‬ ‫תוך‬ ‫לקובץ‬ ‫אותו‬ ‫וישפוך‬" ‫בייט‬ ‫בדיקת‬ ‫כדי‬ ‫תוך‬ ‫לקובץ‬ ‫אותו‬ ‫וישפוך‬FFFF" ‫תוספת‬ ‫המחייב‬ "" ‫תוספת‬ ‫המחייב‬ "0000"" .‫אחריו‬.‫אחריו‬ 135
  • 136. ‫המודול‬ ‫עבודת‬ ‫תיאור‬‫המודול‬ ‫עבודת‬ ‫תיאור‬ ‫לרגל‬ ‫מאזין‬ ‫המודול‬‫לרגל‬ ‫מאזין‬ ‫המודול‬SHOOTSHOOT-‫ה‬ ‫של‬-‫ה‬ ‫של‬IMAGERIMAGER– ‫ה‬ ‫של‬ ‫השעון‬ ‫מול‬ ‫עובד‬ ,‫עבודתו‬ ‫בתחילת‬ ‫זה‬ ‫מודול‬ .– ‫ה‬ ‫של‬ ‫השעון‬ ‫מול‬ ‫עובד‬ ,‫עבודתו‬ ‫בתחילת‬ ‫זה‬ ‫מודול‬ . IMAGERIMAGER, ‫המערכת‬ ‫אותה‬ ‫התמונה‬ ‫גודל‬ ‫ואת‬ ,‫המיועד‬ ‫הקובץ‬ ‫שם‬ ‫את‬ ‫קורא‬ .‫המערכת‬ ‫של‬ ‫האיטי‬ ‫השעון‬, ‫המערכת‬ ‫אותה‬ ‫התמונה‬ ‫גודל‬ ‫ואת‬ ,‫המיועד‬ ‫הקובץ‬ ‫שם‬ ‫את‬ ‫קורא‬ .‫המערכת‬ ‫של‬ ‫האיטי‬ ‫השעון‬ .‫לקודד‬ ‫הולכת‬.‫לקודד‬ ‫הולכת‬ -‫ה‬ ‫של‬ ‫כתיבה‬ ‫מתחילה‬ ‫מכן‬ ‫לאחר‬-‫ה‬ ‫של‬ ‫כתיבה‬ ‫מתחילה‬ ‫מכן‬ ‫לאחר‬INFOINFO-‫ה‬ ‫כתיבת‬ .‫המערכת‬ ‫של‬ ‫המהיר‬ ‫השעון‬ ‫עם‬-‫ה‬ ‫כתיבת‬ .‫המערכת‬ ‫של‬ ‫המהיר‬ ‫השעון‬ ‫עם‬INFOINFO‫מצריכה‬‫מצריכה‬ -‫ה‬ ‫מבנה‬ ‫עם‬ ‫עמוקה‬ ‫הכרות‬-‫ה‬ ‫מבנה‬ ‫עם‬ ‫עמוקה‬ ‫הכרות‬JPGJPG.. .‫הקובץ‬ ‫של‬ ‫נעילה‬ ‫מתבצעת‬ ‫האחרון‬ ‫המידע‬ ‫הגעת‬ ‫לאחר‬.‫הקובץ‬ ‫של‬ ‫נעילה‬ ‫מתבצעת‬ ‫האחרון‬ ‫המידע‬ ‫הגעת‬ ‫לאחר‬ :‫במימוש‬ ‫חשובים‬ ‫עקרונות‬:‫במימוש‬ ‫חשובים‬ ‫עקרונות‬ -‫ב‬ ‫שימוש‬-‫ב‬ ‫שימוש‬ROMROM-‫ה‬ ‫כל‬ ‫את‬ ‫המכיל‬ ‫יחיד‬-‫ה‬ ‫כל‬ ‫את‬ ‫המכיל‬ ‫יחיד‬INFOINFO‫לטבלת‬ ‫בהתאם‬ ,‫שייתכנו‬ ‫הקומבינציות‬ ‫בכל‬‫לטבלת‬ ‫בהתאם‬ ,‫שייתכנו‬ ‫הקומבינציות‬ ‫בכל‬ .‫הרלוונטית‬ ‫הקוונטיזציה‬.‫הרלוונטית‬ ‫הקוונטיזציה‬ ": ‫קידוד‬ ‫שעבר‬ ‫בייט‬ ‫שמגיע‬ ‫ברגע‬": ‫קידוד‬ ‫שעבר‬ ‫בייט‬ ‫שמגיע‬ ‫ברגע‬FFFF" ‫להכניס‬ ‫ידאג‬ ‫זה‬ ‫מודול‬ "" ‫להכניס‬ ‫ידאג‬ ‫זה‬ ‫מודול‬ "0000.‫אחריו‬ ".‫אחריו‬ " ‫ייתן‬ ‫זה‬ ‫מודול‬‫ייתן‬ ‫זה‬ ‫מודול‬HALTHALT-‫ל‬-‫ל‬FLASHFLASH.‫לקובץ‬ ‫לכתיבה‬ ‫מוכן‬ ‫מידע‬ ‫לו‬ ‫שאין‬ ‫זמן‬ ‫כל‬.‫לקובץ‬ ‫לכתיבה‬ ‫מוכן‬ ‫מידע‬ ‫לו‬ ‫שאין‬ ‫זמן‬ ‫כל‬ 136
  • 137. ‫עבודה‬ ‫שלבי‬ – ‫כולל‬ ‫מבט‬‫עבודה‬ ‫שלבי‬ – ‫כולל‬ ‫מבט‬ ‫כתיבת‬INFO FLASH_HALT ‫המקודדים‬ ‫הבלוקים‬ ‫כתיבת‬ - ‫קובץ‬ ‫סגירת‬FFD9 ‫תמונה‬ ‫לסגור‬ ‫–ניתן‬ ‫אחרון‬ ‫מידע‬ 137
  • 138. -‫ל‬ ‫האזנה‬ -‫עבודה‬ ‫תחילת‬-‫ל‬ ‫האזנה‬ -‫עבודה‬ ‫תחילת‬IMAGERIMAGER ‫התמונה‬ ‫מימדי‬‫הקובץ‬ ‫שם‬‫שעון‬IMAGER ‫שעון‬FLASH 138
  • 139. -‫ב‬ ‫קובץ‬ ‫יצירת‬-‫ב‬ ‫קובץ‬ ‫יצירת‬FLASHFLASH Halt‫-ל‬FLASH‫למטה‬ ‫יורד‬ -‫ל‬ ‫נכתב‬ ‫התמונה‬ ‫שם‬FLASH 139
  • 140. ‫כתיבת‬‫כתיבת‬INFOINFO - ‫ל‬ ‫דרכו‬ ‫את‬ ‫סיים‬ ‫התמונה‬ ‫שם‬FLASH -‫ל‬ ‫קריאות‬ ‫מתבצעות‬ROM‫המידע‬ . ‫פעם‬ ‫כל‬ ‫בייט‬ ‫בגודל‬ ‫יוצא‬ ‫יש‬ ‫כאשר‬4‫של‬ ‫הרגל‬ ‫בייטים‬HALT-‫ל‬ ‫יורדת‬0.‫לקובץ‬ ‫נכתב‬ ‫הראשון‬ ‫והמידע‬ ‫שהם‬ ‫הבייטים‬ ‫מיקום‬VALID‫בבס‬ 140
  • 141. -‫מ‬ ‫מגיע‬ ‫מקודד‬ ‫מידע‬-‫מ‬ ‫מגיע‬ ‫מקודד‬ ‫מידע‬SERIAL TO PARALLELSERIAL TO PARALLEL -‫מה‬ ‫נכנס‬ ‫מידע‬SERIAL TO PARALLEL VALID BIT -IN VALID BIT -OUT D_OUT ‫לפלאש‬ ‫מה‬ ‫בייטים‬ ‫שני‬ LSB‫נקראים‬ ‫ונכתבים‬ ‫מהבאס‬ ‫בפלאש‬ ‫זאת‬ ‫לעומת‬ ‫פה‬ ‫שלושה‬ ‫נכתבים‬ ‫שהגיע‬ ‫כיוון‬ ‫בייטים‬ ‫מידע‬FF. ‫מוגדר‬ ‫למודול‬ ‫להכניס‬00 ‫אחריהם‬ 141
  • 142. -‫מ‬ ‫מגיע‬ ‫אחרון‬ ‫מידע‬-‫מ‬ ‫מגיע‬ ‫אחרון‬ ‫מידע‬SERIAL TO PARALLELSERIAL TO PARALLEL EOF‫מגיע‬ ‫ואיתו‬ ‫לפלאש‬ INFO‫סגירת‬ ‫של‬ ‫קובץ‬JPG “FFD9” - ‫המקודד‬ ‫המידע‬ ‫באורך‬ ‫האחרון‬ ‫אחד‬ ‫בייט‬ 142
  • 143. -‫ב‬ ‫טיפול‬-‫ב‬ ‫טיפול‬HALTHALT-‫מה‬-‫מה‬FLASHFLASH ‫שמגיע‬ ‫ברגע‬‫שמגיע‬ ‫ברגע‬HALTHALT-‫מה‬-‫מה‬FLASHFLASH‫המערכת‬ ‫כל‬‫המערכת‬ ‫כל‬ -‫ל‬ ‫עד‬-‫ל‬ ‫עד‬SUPER FIFOSUPER FIFO,‫כרגיל‬ ‫לעבוד‬ ‫ממשיכה‬,‫כרגיל‬ ‫לעבוד‬ ‫ממשיכה‬ -‫וה‬-‫וה‬FIFOFIFO‫והקפאת‬ ‫מידע‬ ‫אגירת‬ ‫של‬ ‫למצב‬ ‫נכנס‬‫והקפאת‬ ‫מידע‬ ‫אגירת‬ ‫של‬ ‫למצב‬ ‫נכנס‬ .‫המידע‬ ‫יציאת‬.‫המידע‬ ‫יציאת‬ ‫בשגרה‬ ‫מהמערכת‬ ‫להתרשם‬ ‫ניתן‬ ‫הבאים‬ ‫בשקפים‬‫בשגרה‬ ‫מהמערכת‬ ‫להתרשם‬ ‫ניתן‬ ‫הבאים‬ ‫בשקפים‬ ‫של‬ ‫במצב‬ ‫ומהמערכת‬‫של‬ ‫במצב‬ ‫ומהמערכת‬HALTHALT 143
  • 146. -‫ב‬ ‫אגירה‬-‫ב‬ ‫אגירה‬FIFOFIFO‫בזמן‬‫בזמן‬HALTHALT ‫בשלוש‬ ‫להתבונן‬ ‫ניתן‬BUFFERS‫הללו‬ ‫בכל‬ ‫זמן‬ ‫בכל‬ ‫המידע‬ ‫כמות‬ ‫את‬ ‫המציינים‬ ‫סקטור‬ HALT -‫מה‬FLASH -‫ל‬ ‫עולה‬1 ‫מתחילה‬ ‫להתבצע‬ ‫אגירה‬ HALT -‫מה‬FLASH -‫ל‬ ‫יורד‬0 ‫נשאב‬ ‫מידע‬ ‫מסקטור‬1 ‫ו‬ BUFFER -‫ל‬ ‫יורד‬0 146
  • 148. Debugging: us vs. cristi.cDebugging: us vs. cristi.c ‫סי‬ ‫בשפת‬ ‫קריסטי‬ ‫של‬ ‫בקוד‬ ‫השחלנו‬ ‫דיבוג‬ ‫לצורך‬‫סי‬ ‫בשפת‬ ‫קריסטי‬ ‫של‬ ‫בקוד‬ ‫השחלנו‬ ‫דיבוג‬ ‫לצורך‬ ‫במקומות‬ ‫טקסט‬ ‫קובץ‬ ‫לתוך‬ ‫הדפסות‬‫במקומות‬ ‫טקסט‬ ‫קובץ‬ ‫לתוך‬ ‫הדפסות‬ ‫אותנו‬ ‫שעניינו‬ "‫ה"אסטרטגיים‬‫אותנו‬ ‫שעניינו‬ "‫ה"אסטרטגיים‬..‫עשינו‬ ‫זהה‬ ‫דבר‬‫עשינו‬ ‫זהה‬ ‫דבר‬ ‫למוצאי‬ "‫דיבאג‬ ‫"מודול‬ ‫חיבור‬ ‫ע"י‬ ‫שלנו‬ ‫בפרוייקט‬‫למוצאי‬ "‫דיבאג‬ ‫"מודול‬ ‫חיבור‬ ‫ע"י‬ ‫שלנו‬ ‫בפרוייקט‬ ‫לתוך‬ ‫הביטים‬ ‫את‬ ‫המדפיס‬ ‫המעניינים‬ ‫המודולים‬‫לתוך‬ ‫הביטים‬ ‫את‬ ‫המדפיס‬ ‫המעניינים‬ ‫המודולים‬ ‫הסיגנלים‬ ‫את‬ ‫להשוות‬ ‫לנו‬ ‫אפשר‬ ‫זה‬ ‫דבר‬ .‫קובץ‬‫הסיגנלים‬ ‫את‬ ‫להשוות‬ ‫לנו‬ ‫אפשר‬ ‫זה‬ ‫דבר‬ .‫קובץ‬ ‫אחר‬ ‫מודול‬ ,‫ביט‬ ‫אחר‬ ‫ביט‬ ‫קריסטי‬ ‫של‬ ‫לאלו‬ ‫שלנו‬‫אחר‬ ‫מודול‬ ,‫ביט‬ ‫אחר‬ ‫ביט‬ ‫קריסטי‬ ‫של‬ ‫לאלו‬ ‫שלנו‬ ...‫מודול‬...‫מודול‬ 148
  • 149. Debugging: us vs. cristi.cDebugging: us vs. cristi.c ‫קובץ‬ ‫לתוך‬ ‫הכתיבה‬ ‫מתודות‬ ‫הרחבת‬ -‫ה‬JPEG. -‫ה‬ ‫לקובץ‬ ‫שנכתבים‬ ‫הביטים‬JPEG. .‫טקסט‬ ‫לקובץ‬ ‫שנכתבים‬ ‫הביטים‬ ‫הדפסת‬RGB. 149
  • 150. Debugging: us vs. cristi.cDebugging: us vs. cristi.c -‫ל‬ ‫הכניסה‬ ‫הדפסת‬DCT. ‫הקוונטיזציה‬ ‫מוצא‬ ‫הדפסת‬ .‫מזוגזג‬ ‫הדפסת‬ .zeroes, category, offset 150
  • 151. Debugging: us vs. cristi.cDebugging: us vs. cristi.c ‫קריסטי‬ ‫של‬ ‫הפלטים‬ ‫קובץ‬ :‫הבא‬ ‫באופן‬ ‫נראה‬ :‫הדרים‬ :‫הדרים‬ ‫סוף‬ :‫הקידוד‬ ‫תחילת‬ :‫הראשון‬ ‫הבלוק‬ RGB, RGB….: 151
  • 152. Debugging: us vs. cristi.cDebugging: us vs. cristi.c :‫ההשוואה‬‫אנחנו‬ ‫קריסטי‬ DCT_in zigzag after quantization RLE & DPCM 152
  • 153. SniffingSniffing ‫אחד‬ ‫לכל‬ ‫במקביל‬ ‫המתחבר‬ ‫מודול‬‫אחד‬ ‫לכל‬ ‫במקביל‬ ‫המתחבר‬ ‫מודול‬ ‫במערכת‬ ‫המודולים‬ ‫בין‬ ‫המידע‬ ‫מקווי‬‫במערכת‬ ‫המודולים‬ ‫בין‬ ‫המידע‬ ‫מקווי‬ ‫לקובץ‬ ‫בלוק‬ ‫כל‬ ‫של‬ ‫כתיבה‬ ‫ומבצע‬‫לקובץ‬ ‫בלוק‬ ‫כל‬ ‫של‬ ‫כתיבה‬ ‫ומבצע‬ .‫נפרד‬.‫נפרד‬ 153
  • 154. UtilsUtils :‫שבנינו‬ ‫עזר‬ ‫כלי‬ ‫כמה‬ ‫להלן‬ ‫מבצע‬parsing‫של‬ ‫לפלוטים‬RLE & DPCM ‫לקבלת‬num of zeroes, category and offset. -‫ב‬ ‫מומש‬Excel. ‫ממיר‬bin2hex-‫ו‬hex2bin. -‫ב‬ ‫מומש‬Visual Basic. 154
  • 155. Utils contUtils cont.. .‫עומד‬ ‫וקטור‬ ‫מזגזג‬ ‫של‬ ‫עומד‬ ‫וקטור‬ ‫מציג‬64 ‫של‬ ‫מטריצה‬ ‫בצורת‬8X8. .‫מזוגזג‬ ‫עומד‬ ‫וקטור‬ "‫"מיישר‬ ‫להמרת‬ ‫המתמטית‬ ‫הפעולה‬ ‫את‬ ‫מבצע‬RGB-‫ל‬YCbCr.‫עשרונית‬ ‫נקודה‬ ‫עם‬ -‫ה‬ ‫פעולת‬ ‫את‬ ‫מבצע‬DCT.‫עשרונית‬ ‫נקודה‬ ‫עם‬ ‫מטריצות‬ ‫כפל‬ ‫באמצעות‬ :‫דוגמא‬vec zigzag(vec) v2matrix(zigzag(vec)) 155
  • 156. ‫ביעדים‬ ‫ועמידה‬ ‫דגשים‬‫ביעדים‬ ‫ועמידה‬ ‫דגשים‬ ‫המקורי‬ ‫היעד‬ ‫בתאריך‬ ‫מצגת‬ ‫כולל‬ ‫הפרויקט‬ ‫הגשת‬‫המקורי‬ ‫היעד‬ ‫בתאריך‬ ‫מצגת‬ ‫כולל‬ ‫הפרויקט‬ ‫הגשת‬19.4.0919.4.09.(‫כחודשיים‬ ‫)לפני‬.(‫כחודשיים‬ ‫)לפני‬ ‫עד‬ ‫של‬ ‫תמונה‬ ‫בגודל‬ ‫תמיכה‬‫עד‬ ‫של‬ ‫תמונה‬ ‫בגודל‬ ‫תמיכה‬1024x10241024x1024 ‫מימוש‬‫מימוש‬halthalt‫מה‬ ‫חוזר‬‫מה‬ ‫חוזר‬flashflash‫ל‬‫ל‬8080.‫שעון‬ ‫מחזורי‬.‫שעון‬ ‫מחזורי‬ ‫בשלושה‬ ‫תמיכה‬‫בשלושה‬ ‫תמיכה‬Quality FactorQuality Factor.. .‫ברצף‬ ‫תמונות‬ ‫צילום‬ ‫של‬ ‫בהמרה‬ ‫תמיכה‬.‫ברצף‬ ‫תמונות‬ ‫צילום‬ ‫של‬ ‫בהמרה‬ ‫תמיכה‬ ‫בפורמט‬ ‫אותיות‬ ‫בהדפסת‬ ‫תמיכה‬ ‫–כלל‬ ‫התמונה‬ ‫על‬ ‫תאריך‬ ‫הדפסת‬‫בפורמט‬ ‫אותיות‬ ‫בהדפסת‬ ‫תמיכה‬ ‫–כלל‬ ‫התמונה‬ ‫על‬ ‫תאריך‬ ‫הדפסת‬ASCIIASCII,, .‫בתמונה‬ ‫התאריך‬ ‫מיקום‬ ‫ושינויי‬ ‫ואנכי‬ ‫אופקי‬ ‫וכיווץ‬ ‫למתיחה‬ ‫אפשרות‬.‫בתמונה‬ ‫התאריך‬ ‫מיקום‬ ‫ושינויי‬ ‫ואנכי‬ ‫אופקי‬ ‫וכיווץ‬ ‫למתיחה‬ ‫אפשרות‬ .‫הפרויקט‬ ‫כל‬ ‫לאורך‬ ‫וזיכרון‬ ‫לוגיקה‬ ‫צמצום‬ ‫של‬ ‫תכנון‬ ‫שיקולי‬.‫הפרויקט‬ ‫כל‬ ‫לאורך‬ ‫וזיכרון‬ ‫לוגיקה‬ ‫צמצום‬ ‫של‬ ‫תכנון‬ ‫שיקולי‬ ‫זיכרונות‬ ‫איחוד‬‫זיכרונות‬ ‫איחוד‬ROMROM‫ו‬‫ו‬RAMRAM.‫המסלולים‬ ‫שלושת‬ ‫עבור‬.‫המסלולים‬ ‫שלושת‬ ‫עבור‬ .‫הפרויקט‬ ‫כל‬ ‫של‬ ‫מפורט‬ ‫תיעוד‬ ‫המכילה‬ ‫מושקעת‬ ‫מצגת‬ ‫בניית‬.‫הפרויקט‬ ‫כל‬ ‫של‬ ‫מפורט‬ ‫תיעוד‬ ‫המכילה‬ ‫מושקעת‬ ‫מצגת‬ ‫בניית‬ ‫של‬ ‫מימוש‬‫של‬ ‫מימוש‬FIFOFIFO.‫אחד‬ ‫זיכרון‬ ‫על‬ ‫משולש‬.‫אחד‬ ‫זיכרון‬ ‫על‬ ‫משולש‬ ‫של‬ ‫מושלמת‬ ‫המרה‬ ‫שאפשרו‬ ‫אוטומטיים‬ ‫סקריפטים‬ ‫ע"י‬ ‫הטבלאות‬ ‫כל‬ ‫בנית‬‫של‬ ‫מושלמת‬ ‫המרה‬ ‫שאפשרו‬ ‫אוטומטיים‬ ‫סקריפטים‬ ‫ע"י‬ ‫הטבלאות‬ ‫כל‬ ‫בנית‬ .‫שגיאות‬ ‫ללא‬ ‫התמונה‬.‫שגיאות‬ ‫ללא‬ ‫התמונה‬ .‫בהמשך‬ ‫הפתעה‬.‫בהמשך‬ ‫הפתעה‬ 156
  • 157. .‫המודול‬ ‫בפיתוח‬ ‫מאוד‬ ‫שעזר‬ ‫הקוד‬ ‫על‬ ‫לקריסטי‬ ‫תודה‬.‫המודול‬ ‫בפיתוח‬ ‫מאוד‬ ‫שעזר‬ ‫הקוד‬ ‫על‬ ‫לקריסטי‬ ‫תודה‬ ,‫המרתקות‬ ‫ההרצאות‬ ‫על‬ ‫ניגרי‬ ‫למקס‬ ‫ענקית‬ ‫תודה‬,‫המרתקות‬ ‫ההרצאות‬ ‫על‬ ‫ניגרי‬ ‫למקס‬ ‫ענקית‬ ‫תודה‬ .‫בזכותו‬ ‫שרכשנו‬ ‫הרבה‬ ‫והמקצועיות‬ ‫הידע‬ ‫על‬.‫בזכותו‬ ‫שרכשנו‬ ‫הרבה‬ ‫והמקצועיות‬ ‫הידע‬ ‫על‬ 157 ‫משה‬ ‫חסין‬ (‫)יוני‬ ‫יבגני‬ ,‫ביטון‬ ‫רועי‬ ,‫כהן‬ ‫אלון‬ ‫עג'מי‬ ‫שולמית‬ ,‫הובר‬ ‫אריאלה‬ ,‫שקלר‬