Note that back porch and front porch refer to the relative positions to SYNC pulse, instead of active data.
Therefore, when it comes to the image, the upper or left margin is resulted by back porch, instead of front porch.
Below are a few example timing parameters.
{
.hpixels = 800, .hfp= 137, .hsw= 4, .hbp= 44,
.vlines = 480, .vfp= 64, .vsw= 2, .vbp= 76,
}
horDisplayPeriod =720 horPulseStart = 816 horPulseEnd = 856 horTotal = 880 |
vertDisplayPeriod = 480 vertPulseStart = 512 vertPulseEnd = 515 vertTotal = 525 |
horDisplayPeriod | 720 | ||
horPulseStart | horFrontPorch | 800 | 80 |
horPulseEnd | horSyncPulseWidth | 840 | 40 |
horTotal | horBackPorch | 864 | 24 |
vertDisplayPeriod | 480 | ||
vertPulseStart | vertFrontPorch | 520 | 40 |
vertPulseEnd | vertSyncPulseWidth | 523 | 3 |
vertTotal | vertBackPorch | 533 | 10 |
Notes:
(1) When it comes to “total”, it usually contains syncPulseWidth. For instance, horTotal = HorDisplayPeriod + horFrontPorch + horBackPorch + horSyncPulseWidth. However, syncPulseWidth is usually eliminated when calculating the image raw size! The main reason: HSYNC pulse is carried on HSYNC line, to the data/pixel line!
(2) the position 0 locates at the start of active/display image. Using the last HORIZONTAL timing params as an example,
840 (864)0 720 800 840
|–backporch–|—— active pixel data —- —|–frontporch–| — hsync –|