- Timestamp:
- 10 Sep 2013, 17:27:55 (11 years ago)
- Location:
- branches/SHM-3.1-dev
- Files:
-
- 67 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/SHM-3.1-dev/cfg/per-sequence-svc-avcbase/BQTerrace-1.5x.cfg
r310 r389 8 8 SourceWidth0 : 1280 # Input frame width 9 9 SourceHeight0 : 720 # Input frame height 10 RepFormatIdx0 : 0 # Index of corresponding rep_format() in the VPS 10 11 IntraPeriod0 : 64 # Period of I-Frame ( -1 = only first) 11 12 ConformanceMode0 : 1 # conformance mode … … 16 17 SourceWidth1 : 1920 # Input frame width 17 18 SourceHeight1 : 1080 # Input frame height 19 RepFormatIdx1 : 1 # Index of corresponding rep_format() in the VPS 18 20 IntraPeriod1 : 64 # Period of I-Frame ( -1 = only first) 19 21 ConformanceMode1 : 1 # conformance mode -
branches/SHM-3.1-dev/cfg/per-sequence-svc-avcbase/BQTerrace-2x.cfg
r310 r389 8 8 SourceWidth0 : 960 # Input frame width 9 9 SourceHeight0 : 544 # Input frame height 10 RepFormatIdx0 : 0 # Index of corresponding rep_format() in the VPS 10 11 IntraPeriod0 : 64 # Period of I-Frame ( -1 = only first) 11 12 ConformanceMode0 : 1 # conformance mode … … 16 17 SourceWidth1 : 1920 # Input frame width 17 18 SourceHeight1 : 1080 # Input frame height 19 RepFormatIdx1 : 1 # Index of corresponding rep_format() in the VPS 18 20 IntraPeriod1 : 64 # Period of I-Frame ( -1 = only first) 19 21 ConformanceMode1 : 1 # conformance mode -
branches/SHM-3.1-dev/cfg/per-sequence-svc-avcbase/BQTerrace-SNR.cfg
r365 r389 8 8 SourceWidth0 : 1920 # Input frame width 9 9 SourceHeight0 : 1088 # Input frame height 10 RepFormatIdx0 : 0 # Index of corresponding rep_format() in the VPS 10 11 IntraPeriod0 : 64 # Period of I-Frame ( -1 = only first) 11 12 ConformanceMode0 : 1 # conformance mode … … 16 17 SourceWidth1 : 1920 # Input frame width 17 18 SourceHeight1 : 1080 # Input frame height 19 RepFormatIdx1 : 1 # Index of corresponding rep_format() in the VPS 18 20 IntraPeriod1 : 64 # Period of I-Frame ( -1 = only first) 19 21 ConformanceMode1 : 1 # conformance mode -
branches/SHM-3.1-dev/cfg/per-sequence-svc-avcbase/BasketballDrive-1.5x.cfg
r310 r389 8 8 SourceWidth0 : 1280 # Input frame width 9 9 SourceHeight0 : 720 # Input frame height 10 RepFormatIdx0 : 0 # Index of corresponding rep_format() in the VPS 10 11 IntraPeriod0 : 48 # Period of I-Frame ( -1 = only first) 11 12 ConformanceMode0 : 1 # conformance mode … … 16 17 SourceWidth1 : 1920 # Input frame width 17 18 SourceHeight1 : 1080 # Input frame height 19 RepFormatIdx1 : 1 # Index of corresponding rep_format() in the VPS 18 20 IntraPeriod1 : 48 # Period of I-Frame ( -1 = only first) 19 21 ConformanceMode1 : 1 # conformance mode -
branches/SHM-3.1-dev/cfg/per-sequence-svc-avcbase/BasketballDrive-2x.cfg
r310 r389 8 8 SourceWidth0 : 960 # Input frame width 9 9 SourceHeight0 : 544 # Input frame height 10 RepFormatIdx0 : 0 # Index of corresponding rep_format() in the VPS 10 11 IntraPeriod0 : 48 # Period of I-Frame ( -1 = only first) 11 12 ConformanceMode0 : 1 # conformance mode … … 16 17 SourceWidth1 : 1920 # Input frame width 17 18 SourceHeight1 : 1080 # Input frame height 19 RepFormatIdx1 : 1 # Index of corresponding rep_format() in the VPS 18 20 IntraPeriod1 : 48 # Period of I-Frame ( -1 = only first) 19 21 ConformanceMode1 : 1 # conformance mode -
branches/SHM-3.1-dev/cfg/per-sequence-svc-avcbase/BasketballDrive-SNR.cfg
r365 r389 8 8 SourceWidth0 : 1920 # Input frame width 9 9 SourceHeight0 : 1088 # Input frame height 10 RepFormatIdx0 : 0 # Index of corresponding rep_format() in the VPS 10 11 IntraPeriod0 : 48 # Period of I-Frame ( -1 = only first) 11 12 ConformanceMode0 : 1 # conformance mode … … 16 17 SourceWidth1 : 1920 # Input frame width 17 18 SourceHeight1 : 1080 # Input frame height 19 RepFormatIdx1 : 1 # Index of corresponding rep_format() in the VPS 18 20 IntraPeriod1 : 48 # Period of I-Frame ( -1 = only first) 19 21 ConformanceMode1 : 1 # conformance mode -
branches/SHM-3.1-dev/cfg/per-sequence-svc-avcbase/Cactus-1.5x.cfg
r310 r389 8 8 SourceWidth0 : 1280 # Input frame width 9 9 SourceHeight0 : 720 # Input frame height 10 RepFormatIdx0 : 0 # Index of corresponding rep_format() in the VPS 10 11 IntraPeriod0 : 48 # Period of I-Frame ( -1 = only first) 11 12 ConformanceMode0 : 1 # conformance mode … … 16 17 SourceWidth1 : 1920 # Input frame width 17 18 SourceHeight1 : 1080 # Input frame height 19 RepFormatIdx1 : 1 # Index of corresponding rep_format() in the VPS 18 20 IntraPeriod1 : 48 # Period of I-Frame ( -1 = only first) 19 21 ConformanceMode1 : 1 # conformance mode -
branches/SHM-3.1-dev/cfg/per-sequence-svc-avcbase/Cactus-2x.cfg
r310 r389 8 8 SourceWidth0 : 960 # Input frame width 9 9 SourceHeight0 : 544 # Input frame height 10 RepFormatIdx0 : 0 # Index of corresponding rep_format() in the VPS 10 11 IntraPeriod0 : 48 # Period of I-Frame ( -1 = only first) 11 12 ConformanceMode0 : 1 # conformance mode … … 16 17 SourceWidth1 : 1920 # Input frame width 17 18 SourceHeight1 : 1080 # Input frame height 19 RepFormatIdx1 : 1 # Index of corresponding rep_format() in the VPS 18 20 IntraPeriod1 : 48 # Period of I-Frame ( -1 = only first) 19 21 ConformanceMode1 : 1 # conformance mode -
branches/SHM-3.1-dev/cfg/per-sequence-svc-avcbase/Cactus-SNR.cfg
r365 r389 8 8 SourceWidth0 : 1920 # Input frame width 9 9 SourceHeight0 : 1088 # Input frame height 10 RepFormatIdx0 : 0 # Index of corresponding rep_format() in the VPS 10 11 IntraPeriod0 : 48 # Period of I-Frame ( -1 = only first) 11 12 ConformanceMode0 : 1 # conformance mode … … 16 17 SourceWidth1 : 1920 # Input frame width 17 18 SourceHeight1 : 1080 # Input frame height 19 RepFormatIdx1 : 1 # Index of corresponding rep_format() in the VPS 18 20 IntraPeriod1 : 48 # Period of I-Frame ( -1 = only first) 19 21 ConformanceMode1 : 1 # conformance mode -
branches/SHM-3.1-dev/cfg/per-sequence-svc-avcbase/Kimono-1.5x.cfg
r310 r389 8 8 SourceWidth0 : 1280 # Input frame width 9 9 SourceHeight0 : 720 # Input frame height 10 RepFormatIdx0 : 0 # Index of corresponding rep_format() in the VPS 10 11 IntraPeriod0 : 24 # Period of I-Frame ( -1 = only first) 11 12 ConformanceMode0 : 1 # conformance mode … … 16 17 SourceWidth1 : 1920 # Input frame width 17 18 SourceHeight1 : 1080 # Input frame height 19 RepFormatIdx1 : 1 # Index of corresponding rep_format() in the VPS 18 20 IntraPeriod1 : 24 # Period of I-Frame ( -1 = only first) 19 21 ConformanceMode1 : 1 # conformance mode -
branches/SHM-3.1-dev/cfg/per-sequence-svc-avcbase/Kimono-2x.cfg
r310 r389 8 8 SourceWidth0 : 960 # Input frame width 9 9 SourceHeight0 : 544 # Input frame height 10 RepFormatIdx0 : 0 # Index of corresponding rep_format() in the VPS 10 11 IntraPeriod0 : 24 # Period of I-Frame ( -1 = only first) 11 12 ConformanceMode0 : 1 # conformance mode … … 16 17 SourceWidth1 : 1920 # Input frame width 17 18 SourceHeight1 : 1080 # Input frame height 19 RepFormatIdx1 : 1 # Index of corresponding rep_format() in the VPS 18 20 IntraPeriod1 : 24 # Period of I-Frame ( -1 = only first) 19 21 ConformanceMode1 : 1 # conformance mode -
branches/SHM-3.1-dev/cfg/per-sequence-svc-avcbase/Kimono-SNR.cfg
r365 r389 8 8 SourceWidth0 : 1920 # Input frame width 9 9 SourceHeight0 : 1088 # Input frame height 10 RepFormatIdx0 : 0 # Index of corresponding rep_format() in the VPS 10 11 IntraPeriod0 : 24 # Period of I-Frame ( -1 = only first) 11 12 ConformanceMode0 : 1 # conformance mode … … 16 17 SourceWidth1 : 1920 # Input frame width 17 18 SourceHeight1 : 1080 # Input frame height 19 RepFormatIdx1 : 1 # Index of corresponding rep_format() in the VPS 18 20 IntraPeriod1 : 24 # Period of I-Frame ( -1 = only first) 19 21 ConformanceMode1 : 1 # conformance mode -
branches/SHM-3.1-dev/cfg/per-sequence-svc-avcbase/ParkScene-1.5x.cfg
r310 r389 8 8 SourceWidth0 : 1280 # Input frame width 9 9 SourceHeight0 : 720 # Input frame height 10 RepFormatIdx0 : 0 # Index of corresponding rep_format() in the VPS 10 11 IntraPeriod0 : 24 # Period of I-Frame ( -1 = only first) 11 12 ConformanceMode0 : 1 # conformance mode … … 16 17 SourceWidth1 : 1920 # Input frame width 17 18 SourceHeight1 : 1080 # Input frame height 19 RepFormatIdx1 : 1 # Index of corresponding rep_format() in the VPS 18 20 IntraPeriod1 : 24 # Period of I-Frame ( -1 = only first) 19 21 ConformanceMode1 : 1 # conformance mode -
branches/SHM-3.1-dev/cfg/per-sequence-svc-avcbase/ParkScene-2x.cfg
r310 r389 8 8 SourceWidth0 : 960 # Input frame width 9 9 SourceHeight0 : 544 # Input frame height 10 RepFormatIdx0 : 0 # Index of corresponding rep_format() in the VPS 10 11 IntraPeriod0 : 24 # Period of I-Frame ( -1 = only first) 11 12 ConformanceMode0 : 1 # conformance mode … … 16 17 SourceWidth1 : 1920 # Input frame width 17 18 SourceHeight1 : 1080 # Input frame height 19 RepFormatIdx1 : 1 # Index of corresponding rep_format() in the VPS 18 20 IntraPeriod1 : 24 # Period of I-Frame ( -1 = only first) 19 21 ConformanceMode1 : 1 # conformance mode -
branches/SHM-3.1-dev/cfg/per-sequence-svc-avcbase/ParkScene-SNR.cfg
r365 r389 8 8 SourceWidth0 : 1920 # Input frame width 9 9 SourceHeight0 : 1088 # Input frame height 10 RepFormatIdx0 : 0 # Index of corresponding rep_format() in the VPS 10 11 IntraPeriod0 : 24 # Period of I-Frame ( -1 = only first) 11 12 ConformanceMode0 : 1 # conformance mode … … 16 17 SourceWidth1 : 1920 # Input frame width 17 18 SourceHeight1 : 1080 # Input frame height 19 RepFormatIdx1 : 1 # Index of corresponding rep_format() in the VPS 18 20 IntraPeriod1 : 24 # Period of I-Frame ( -1 = only first) 19 21 ConformanceMode1 : 1 # conformance mode -
branches/SHM-3.1-dev/cfg/per-sequence-svc-avcbase/PeopleOnStreet-2x.cfg
r310 r389 8 8 SourceWidth0 : 1280 # Input frame width 9 9 SourceHeight0 : 800 # Input frame height 10 RepFormatIdx0 : 0 # Index of corresponding rep_format() in the VPS 10 11 IntraPeriod0 : 32 # Period of I-Frame ( -1 = only first) 11 12 ConformanceMode0 : 1 # conformance mode … … 16 17 SourceWidth1 : 2560 # Input frame width 17 18 SourceHeight1 : 1600 # Input frame height 19 RepFormatIdx1 : 1 # Index of corresponding rep_format() in the VPS 18 20 IntraPeriod1 : 32 # Period of I-Frame ( -1 = only first) 19 21 ConformanceMode1 : 1 # conformance mode -
branches/SHM-3.1-dev/cfg/per-sequence-svc-avcbase/PeopleOnStreet-SNR.cfg
r310 r389 8 8 SourceWidth0 : 2560 # Input frame width 9 9 SourceHeight0 : 1600 # Input frame height 10 RepFormatIdx0 : 0 # Index of corresponding rep_format() in the VPS 10 11 IntraPeriod0 : 32 # Period of I-Frame ( -1 = only first) 11 12 ConformanceMode0 : 1 # conformance mode … … 16 17 SourceWidth1 : 2560 # Input frame width 17 18 SourceHeight1 : 1600 # Input frame height 19 RepFormatIdx1 : 0 # Index of corresponding rep_format() in the VPS 18 20 IntraPeriod1 : 32 # Period of I-Frame ( -1 = only first) 19 21 ConformanceMode1 : 1 # conformance mode -
branches/SHM-3.1-dev/cfg/per-sequence-svc-avcbase/Traffic-2x.cfg
r310 r389 8 8 SourceWidth0 : 1280 # Input frame width 9 9 SourceHeight0 : 800 # Input frame height 10 RepFormatIdx0 : 0 # Index of corresponding rep_format() in the VPS 10 11 IntraPeriod0 : 32 # Period of I-Frame ( -1 = only first) 11 12 ConformanceMode0 : 1 # conformance mode … … 16 17 SourceWidth1 : 2560 # Input frame width 17 18 SourceHeight1 : 1600 # Input frame height 19 RepFormatIdx1 : 1 # Index of corresponding rep_format() in the VPS 18 20 IntraPeriod1 : 32 # Period of I-Frame ( -1 = only first) 19 21 ConformanceMode1 : 1 # conformance mode -
branches/SHM-3.1-dev/cfg/per-sequence-svc-avcbase/Traffic-SNR.cfg
r310 r389 8 8 SourceWidth0 : 2560 # Input frame width 9 9 SourceHeight0 : 1600 # Input frame height 10 RepFormatIdx0 : 0 # Index of corresponding rep_format() in the VPS 10 11 IntraPeriod0 : 32 # Period of I-Frame ( -1 = only first) 11 12 ConformanceMode0 : 1 # conformance mode … … 16 17 SourceWidth1 : 2560 # Input frame width 17 18 SourceHeight1 : 1600 # Input frame height 19 RepFormatIdx1 : 0 # Index of corresponding rep_format() in the VPS 18 20 IntraPeriod1 : 32 # Period of I-Frame ( -1 = only first) 19 21 ConformanceMode1 : 1 # conformance mode -
branches/SHM-3.1-dev/cfg/per-sequence-svc/BQTerrace-1.5x.cfg
r310 r389 8 8 SourceWidth0 : 1280 # Input frame width 9 9 SourceHeight0 : 720 # Input frame height 10 RepFormatIdx0 : 0 # Index of corresponding rep_format() in the VPS 10 11 IntraPeriod0 : 64 # Period of I-Frame ( -1 = only first) 11 12 ConformanceMode0 : 1 # conformance mode … … 16 17 SourceWidth1 : 1920 # Input frame width 17 18 SourceHeight1 : 1080 # Input frame height 19 RepFormatIdx1 : 1 # Index of corresponding rep_format() in the VPS 18 20 IntraPeriod1 : 64 # Period of I-Frame ( -1 = only first) 19 21 ConformanceMode1 : 1 # conformance mode -
branches/SHM-3.1-dev/cfg/per-sequence-svc/BQTerrace-2x.cfg
r310 r389 8 8 SourceWidth0 : 960 # Input frame width 9 9 SourceHeight0 : 540 # Input frame height 10 RepFormatIdx0 : 0 # Index of corresponding rep_format() in the VPS 10 11 IntraPeriod0 : 64 # Period of I-Frame ( -1 = only first) 11 12 ConformanceMode0 : 1 # conformance mode … … 16 17 SourceWidth1 : 1920 # Input frame width 17 18 SourceHeight1 : 1080 # Input frame height 19 RepFormatIdx1 : 1 # Index of corresponding rep_format() in the VPS 18 20 IntraPeriod1 : 64 # Period of I-Frame ( -1 = only first) 19 21 ConformanceMode1 : 1 # conformance mode -
branches/SHM-3.1-dev/cfg/per-sequence-svc/BQTerrace-SNR.cfg
r310 r389 8 8 SourceWidth0 : 1920 # Input frame width 9 9 SourceHeight0 : 1080 # Input frame height 10 RepFormatIdx0 : 0 # Index of corresponding rep_format() in the VPS 10 11 IntraPeriod0 : 64 # Period of I-Frame ( -1 = only first) 11 12 ConformanceMode0 : 1 # conformance mode … … 16 17 SourceWidth1 : 1920 # Input frame width 17 18 SourceHeight1 : 1080 # Input frame height 19 RepFormatIdx1 : 0 # Index of corresponding rep_format() in the VPS 18 20 IntraPeriod1 : 64 # Period of I-Frame ( -1 = only first) 19 21 ConformanceMode1 : 1 # conformance mode -
branches/SHM-3.1-dev/cfg/per-sequence-svc/BasketballDrive-1.5x.cfg
r310 r389 8 8 SourceWidth0 : 1280 # Input frame width 9 9 SourceHeight0 : 720 # Input frame height 10 RepFormatIdx0 : 0 # Index of corresponding rep_format() in the VPS 10 11 IntraPeriod0 : 48 # Period of I-Frame ( -1 = only first) 11 12 ConformanceMode0 : 1 # conformance mode … … 16 17 SourceWidth1 : 1920 # Input frame width 17 18 SourceHeight1 : 1080 # Input frame height 19 RepFormatIdx1 : 1 # Index of corresponding rep_format() in the VPS 18 20 IntraPeriod1 : 48 # Period of I-Frame ( -1 = only first) 19 21 ConformanceMode1 : 1 # conformance mode -
branches/SHM-3.1-dev/cfg/per-sequence-svc/BasketballDrive-2x.cfg
r310 r389 8 8 SourceWidth0 : 960 # Input frame width 9 9 SourceHeight0 : 540 # Input frame height 10 RepFormatIdx0 : 0 # Index of corresponding rep_format() in the VPS 10 11 IntraPeriod0 : 48 # Period of I-Frame ( -1 = only first) 11 12 ConformanceMode0 : 1 # conformance mode … … 16 17 SourceWidth1 : 1920 # Input frame width 17 18 SourceHeight1 : 1080 # Input frame height 19 RepFormatIdx1 : 1 # Index of corresponding rep_format() in the VPS 18 20 IntraPeriod1 : 48 # Period of I-Frame ( -1 = only first) 19 21 ConformanceMode1 : 1 # conformance mode -
branches/SHM-3.1-dev/cfg/per-sequence-svc/BasketballDrive-SNR.cfg
r310 r389 8 8 SourceWidth0 : 1920 # Input frame width 9 9 SourceHeight0 : 1080 # Input frame height 10 RepFormatIdx0 : 0 # Index of corresponding rep_format() in the VPS 10 11 IntraPeriod0 : 48 # Period of I-Frame ( -1 = only first) 11 12 ConformanceMode0 : 1 # conformance mode … … 16 17 SourceWidth1 : 1920 # Input frame width 17 18 SourceHeight1 : 1080 # Input frame height 19 RepFormatIdx1 : 0 # Index of corresponding rep_format() in the VPS 18 20 IntraPeriod1 : 48 # Period of I-Frame ( -1 = only first) 19 21 ConformanceMode1 : 1 # conformance mode -
branches/SHM-3.1-dev/cfg/per-sequence-svc/Cactus-1.5x.cfg
r310 r389 8 8 SourceWidth0 : 1280 # Input frame width 9 9 SourceHeight0 : 720 # Input frame height 10 RepFormatIdx0 : 0 # Index of corresponding rep_format() in the VPS 10 11 IntraPeriod0 : 48 # Period of I-Frame ( -1 = only first) 11 12 ConformanceMode0 : 1 # conformance mode … … 16 17 SourceWidth1 : 1920 # Input frame width 17 18 SourceHeight1 : 1080 # Input frame height 19 RepFormatIdx1 : 1 # Index of corresponding rep_format() in the VPS 18 20 IntraPeriod1 : 48 # Period of I-Frame ( -1 = only first) 19 21 ConformanceMode1 : 1 # conformance mode -
branches/SHM-3.1-dev/cfg/per-sequence-svc/Cactus-2x.cfg
r310 r389 8 8 SourceWidth0 : 960 # Input frame width 9 9 SourceHeight0 : 540 # Input frame height 10 RepFormatIdx0 : 0 # Index of corresponding rep_format() in the VPS 10 11 IntraPeriod0 : 48 # Period of I-Frame ( -1 = only first) 11 12 ConformanceMode0 : 1 # conformance mode … … 16 17 SourceWidth1 : 1920 # Input frame width 17 18 SourceHeight1 : 1080 # Input frame height 19 RepFormatIdx1 : 1 # Index of corresponding rep_format() in the VPS 18 20 IntraPeriod1 : 48 # Period of I-Frame ( -1 = only first) 19 21 ConformanceMode1 : 1 # conformance mode -
branches/SHM-3.1-dev/cfg/per-sequence-svc/Cactus-SNR.cfg
r310 r389 8 8 SourceWidth0 : 1920 # Input frame width 9 9 SourceHeight0 : 1080 # Input frame height 10 RepFormatIdx0 : 0 # Index of corresponding rep_format() in the VPS 10 11 IntraPeriod0 : 48 # Period of I-Frame ( -1 = only first) 11 12 ConformanceMode0 : 1 # conformance mode … … 16 17 SourceWidth1 : 1920 # Input frame width 17 18 SourceHeight1 : 1080 # Input frame height 19 RepFormatIdx1 : 0 # Index of corresponding rep_format() in the VPS 18 20 IntraPeriod1 : 48 # Period of I-Frame ( -1 = only first) 19 21 ConformanceMode1 : 1 # conformance mode -
branches/SHM-3.1-dev/cfg/per-sequence-svc/Kimono-1.5x.cfg
r310 r389 8 8 SourceWidth0 : 1280 # Input frame width 9 9 SourceHeight0 : 720 # Input frame height 10 RepFormatIdx0 : 0 # Index of corresponding rep_format() in the VPS 10 11 IntraPeriod0 : 24 # Period of I-Frame ( -1 = only first) 11 12 ConformanceMode0 : 1 # conformance mode … … 16 17 SourceWidth1 : 1920 # Input frame width 17 18 SourceHeight1 : 1080 # Input frame height 19 RepFormatIdx1 : 1 # Index of corresponding rep_format() in the VPS 18 20 IntraPeriod1 : 24 # Period of I-Frame ( -1 = only first) 19 21 ConformanceMode1 : 1 # conformance mode -
branches/SHM-3.1-dev/cfg/per-sequence-svc/Kimono-2x.cfg
r310 r389 8 8 SourceWidth0 : 960 # Input frame width 9 9 SourceHeight0 : 540 # Input frame height 10 RepFormatIdx0 : 0 # Index of corresponding rep_format() in the VPS 10 11 IntraPeriod0 : 24 # Period of I-Frame ( -1 = only first) 11 12 ConformanceMode0 : 1 # conformance mode … … 16 17 SourceWidth1 : 1920 # Input frame width 17 18 SourceHeight1 : 1080 # Input frame height 19 RepFormatIdx1 : 1 # Index of corresponding rep_format() in the VPS 18 20 IntraPeriod1 : 24 # Period of I-Frame ( -1 = only first) 19 21 ConformanceMode1 : 1 # conformance mode -
branches/SHM-3.1-dev/cfg/per-sequence-svc/Kimono-SNR.cfg
r310 r389 8 8 SourceWidth0 : 1920 # Input frame width 9 9 SourceHeight0 : 1080 # Input frame height 10 RepFormatIdx0 : 0 # Index of corresponding rep_format() in the VPS 10 11 IntraPeriod0 : 24 # Period of I-Frame ( -1 = only first) 11 12 ConformanceMode0 : 1 # conformance mode … … 16 17 SourceWidth1 : 1920 # Input frame width 17 18 SourceHeight1 : 1080 # Input frame height 19 RepFormatIdx1 : 0 # Index of corresponding rep_format() in the VPS 18 20 IntraPeriod1 : 24 # Period of I-Frame ( -1 = only first) 19 21 ConformanceMode1 : 1 # conformance mode -
branches/SHM-3.1-dev/cfg/per-sequence-svc/ParkScene-1.5x.cfg
r310 r389 8 8 SourceWidth0 : 1280 # Input frame width 9 9 SourceHeight0 : 720 # Input frame height 10 RepFormatIdx0 : 0 # Index of corresponding rep_format() in the VPS 10 11 IntraPeriod0 : 24 # Period of I-Frame ( -1 = only first) 11 12 ConformanceMode0 : 1 # conformance mode … … 16 17 SourceWidth1 : 1920 # Input frame width 17 18 SourceHeight1 : 1080 # Input frame height 19 RepFormatIdx1 : 1 # Index of corresponding rep_format() in the VPS 18 20 IntraPeriod1 : 24 # Period of I-Frame ( -1 = only first) 19 21 ConformanceMode1 : 1 # conformance mode -
branches/SHM-3.1-dev/cfg/per-sequence-svc/ParkScene-2x.cfg
r310 r389 8 8 SourceWidth0 : 960 # Input frame width 9 9 SourceHeight0 : 540 # Input frame height 10 RepFormatIdx0 : 0 # Index of corresponding rep_format() in the VPS 10 11 IntraPeriod0 : 24 # Period of I-Frame ( -1 = only first) 11 12 ConformanceMode0 : 1 # conformance mode … … 16 17 SourceWidth1 : 1920 # Input frame width 17 18 SourceHeight1 : 1080 # Input frame height 19 RepFormatIdx1 : 1 # Index of corresponding rep_format() in the VPS 18 20 IntraPeriod1 : 24 # Period of I-Frame ( -1 = only first) 19 21 ConformanceMode1 : 1 # conformance mode -
branches/SHM-3.1-dev/cfg/per-sequence-svc/ParkScene-SNR.cfg
r310 r389 8 8 SourceWidth0 : 1920 # Input frame width 9 9 SourceHeight0 : 1080 # Input frame height 10 RepFormatIdx0 : 0 # Index of corresponding rep_format() in the VPS 10 11 IntraPeriod0 : 24 # Period of I-Frame ( -1 = only first) 11 12 ConformanceMode0 : 1 # conformance mode … … 16 17 SourceWidth1 : 1920 # Input frame width 17 18 SourceHeight1 : 1080 # Input frame height 19 RepFormatIdx1 : 0 # Index of corresponding rep_format() in the VPS 18 20 IntraPeriod1 : 24 # Period of I-Frame ( -1 = only first) 19 21 ConformanceMode1 : 1 # conformance mode -
branches/SHM-3.1-dev/cfg/per-sequence-svc/PeopleOnStreet-2x.cfg
r310 r389 8 8 SourceWidth0 : 1280 # Input frame width 9 9 SourceHeight0 : 800 # Input frame height 10 RepFormatIdx0 : 0 # Index of corresponding rep_format() in the VPS 10 11 IntraPeriod0 : 32 # Period of I-Frame ( -1 = only first) 11 12 ConformanceMode0 : 1 # conformance mode … … 16 17 SourceWidth1 : 2560 # Input frame width 17 18 SourceHeight1 : 1600 # Input frame height 19 RepFormatIdx1 : 1 # Index of corresponding rep_format() in the VPS 18 20 IntraPeriod1 : 32 # Period of I-Frame ( -1 = only first) 19 21 ConformanceMode1 : 1 # conformance mode -
branches/SHM-3.1-dev/cfg/per-sequence-svc/PeopleOnStreet-SNR.cfg
r310 r389 8 8 SourceWidth0 : 2560 # Input frame width 9 9 SourceHeight0 : 1600 # Input frame height 10 RepFormatIdx0 : 0 # Index of corresponding rep_format() in the VPS 10 11 IntraPeriod0 : 32 # Period of I-Frame ( -1 = only first) 11 12 ConformanceMode0 : 1 # conformance mode … … 16 17 SourceWidth1 : 2560 # Input frame width 17 18 SourceHeight1 : 1600 # Input frame height 19 RepFormatIdx1 : 0 # Index of corresponding rep_format() in the VPS 18 20 IntraPeriod1 : 32 # Period of I-Frame ( -1 = only first) 19 21 ConformanceMode1 : 1 # conformance mode -
branches/SHM-3.1-dev/cfg/per-sequence-svc/Traffic-2x.cfg
r310 r389 8 8 SourceWidth0 : 1280 # Input frame width 9 9 SourceHeight0 : 800 # Input frame height 10 RepFormatIdx0 : 0 # Index of corresponding rep_format() in the VPS 10 11 IntraPeriod0 : 32 # Period of I-Frame ( -1 = only first) 11 12 ConformanceMode0 : 1 # conformance mode … … 16 17 SourceWidth1 : 2560 # Input frame width 17 18 SourceHeight1 : 1600 # Input frame height 19 RepFormatIdx1 : 1 # Index of corresponding rep_format() in the VPS 18 20 IntraPeriod1 : 32 # Period of I-Frame ( -1 = only first) 19 21 ConformanceMode1 : 1 # conformance mode -
branches/SHM-3.1-dev/cfg/per-sequence-svc/Traffic-SNR.cfg
r310 r389 8 8 SourceWidth0 : 2560 # Input frame width 9 9 SourceHeight0 : 1600 # Input frame height 10 RepFormatIdx0 : 0 # Index of corresponding rep_format() in the VPS 10 11 IntraPeriod0 : 32 # Period of I-Frame ( -1 = only first) 11 12 ConformanceMode0 : 1 # conformance mode … … 16 17 SourceWidth1 : 2560 # Input frame width 17 18 SourceHeight1 : 1600 # Input frame height 19 RepFormatIdx1 : 0 # Index of corresponding rep_format() in the VPS 18 20 IntraPeriod1 : 32 # Period of I-Frame ( -1 = only first) 19 21 ConformanceMode1 : 1 # conformance mode -
branches/SHM-3.1-dev/source/App/TAppDecoder/TAppDecTop.cpp
r374 r389 551 551 const Window &conf = pcPic->getConformanceWindow(); 552 552 const Window &defDisp = m_respectDefDispWindow ? pcPic->getDefDisplayWindow() : Window(); 553 #if REPN_FORMAT_IN_VPS 554 UInt chromaFormatIdc = pcPic->getSlice(0)->getChromaFormatIdc(); 555 Int xScal = TComSPS::getWinUnitX( chromaFormatIdc ), yScal = TComSPS::getWinUnitY( chromaFormatIdc ); 556 m_acTVideoIOYuvReconFile[layerId].write( pcPic->getPicYuvRec(), 557 conf.getWindowLeftOffset() * xScal + defDisp.getWindowLeftOffset(), 558 conf.getWindowRightOffset() * xScal + defDisp.getWindowRightOffset(), 559 conf.getWindowTopOffset() * yScal + defDisp.getWindowTopOffset(), 560 conf.getWindowBottomOffset()* yScal + defDisp.getWindowBottomOffset() ); 561 562 #else 553 563 m_acTVideoIOYuvReconFile[layerId].write( pcPic->getPicYuvRec(), 554 564 conf.getWindowLeftOffset() + defDisp.getWindowLeftOffset(), … … 556 566 conf.getWindowTopOffset() + defDisp.getWindowTopOffset(), 557 567 conf.getWindowBottomOffset() + defDisp.getWindowBottomOffset() ); 568 #endif 558 569 } 559 570 … … 630 641 const Window &conf = pcPic->getConformanceWindow(); 631 642 const Window &defDisp = m_respectDefDispWindow ? pcPic->getDefDisplayWindow() : Window(); 643 #if REPN_FORMAT_IN_VPS 644 UInt chromaFormatIdc = pcPic->getSlice(0)->getChromaFormatIdc(); 645 Int xScal = TComSPS::getWinUnitX( chromaFormatIdc ), yScal = TComSPS::getWinUnitY( chromaFormatIdc ); 646 m_acTVideoIOYuvReconFile[layerId].write( pcPic->getPicYuvRec(), 647 conf.getWindowLeftOffset() *xScal + defDisp.getWindowLeftOffset(), 648 conf.getWindowRightOffset() *xScal + defDisp.getWindowRightOffset(), 649 conf.getWindowTopOffset() *yScal + defDisp.getWindowTopOffset(), 650 conf.getWindowBottomOffset()*yScal + defDisp.getWindowBottomOffset() ); 651 652 #else 632 653 m_acTVideoIOYuvReconFile[layerId].write( pcPic->getPicYuvRec(), 633 654 conf.getWindowLeftOffset() + defDisp.getWindowLeftOffset(), … … 635 656 conf.getWindowTopOffset() + defDisp.getWindowTopOffset(), 636 657 conf.getWindowBottomOffset() + defDisp.getWindowBottomOffset() ); 658 #endif 637 659 } 638 660 -
branches/SHM-3.1-dev/source/App/TAppEncoder/TAppEncCfg.cpp
r377 r389 351 351 Double* cfg_fQP [MAX_LAYERS]; 352 352 353 #if REPN_FORMAT_IN_VPS 354 Int* cfg_repFormatIdx [MAX_LAYERS]; 355 #endif 353 356 Int* cfg_SourceWidth [MAX_LAYERS]; 354 357 Int* cfg_SourceHeight [MAX_LAYERS]; … … 399 402 cfg_ReconFile[layer] = &m_acLayerCfg[layer].m_cReconFile; 400 403 cfg_fQP[layer] = &m_acLayerCfg[layer].m_fQP; 404 #if REPN_FORMAT_IN_VPS 405 cfg_repFormatIdx[layer] = &m_acLayerCfg[layer].m_repFormatIdx; 406 #endif 401 407 cfg_SourceWidth[layer] = &m_acLayerCfg[layer].m_iSourceWidth; 402 408 cfg_SourceHeight[layer] = &m_acLayerCfg[layer].m_iSourceHeight; … … 469 475 ("FrameRate%d,-fr%d", cfg_FrameRate, 0, MAX_LAYERS, "Frame rate for layer %d") 470 476 ("LambdaModifier%d,-LM%d", m_adLambdaModifier, ( double )1.0, MAX_TLAYER, "Lambda modifier for temporal layer %d") 477 #if REPN_FORMAT_IN_VPS 478 ("RepFormatIdx%d", cfg_repFormatIdx, -1, MAX_LAYERS, "Index to the representation format structure used from the VPS") 479 #endif 471 480 #if VPS_EXTN_DIRECT_REF_LAYERS 472 481 #if M0457_PREDICTION_INDICATIONS … … 1127 1136 #endif 1128 1137 m_scalingListFile = cfg_ScalingListFile.empty() ? NULL : strdup(cfg_ScalingListFile.c_str()); 1129 1138 1139 #if REPN_FORMAT_IN_VPS_123 1140 for(Int layer = 0; layer < MAX_LAYERS; layer++) 1141 { 1142 m_acLayerCfg[layer].setSourceHeight( m_repFormatCfg[ m_acLayerCfg[layer].getRepFormatIdx() ].m_picHeightInLumaSamples); 1143 m_acLayerCfg[layer].setSourceWidth ( m_repFormatCfg[ m_acLayerCfg[layer].getRepFormatIdx() ].m_picWidthInLumaSamples ); 1144 } 1145 #endif 1130 1146 /* rules for input, output and internal bitdepths as per help text */ 1131 1147 if (!m_internalBitDepthY) { m_internalBitDepthY = m_inputBitDepthY; } -
branches/SHM-3.1-dev/source/App/TAppEncoder/TAppEncCfg.h
r377 r389 354 354 Int m_adaptiveResolutionChange; ///< Indicate adaptive resolution change frame 355 355 #endif 356 #if REPN_FORMAT_IN_VPS 357 RepFormatCfg m_repFormatCfg[16]; ///< Rep_format structures 358 #endif 356 359 public: 357 360 TAppEncCfg(); … … 381 384 Void cfgStringToArray(Int **arr, string cfgString, Int numEntries, const char* logString); 382 385 #endif 386 #if REPN_FORMAT_IN_VPS 387 RepFormatCfg* getRepFormatCfg(Int i) { return &m_repFormatCfg[i]; } 388 #endif 383 389 #endif 384 390 };// END CLASS DEFINITION TAppEncCfg -
branches/SHM-3.1-dev/source/App/TAppEncoder/TAppEncLayerCfg.cpp
r313 r389 32 32 m_conformanceMode( 0 ), 33 33 m_aidQP(NULL) 34 #if REPN_FORMAT_IN_VPS 35 , m_repFormatIdx (-1) 36 #endif 34 37 { 35 38 m_confLeft = m_confRight = m_confTop = m_confBottom = 0; -
branches/SHM-3.1-dev/source/App/TAppEncoder/TAppEncLayerCfg.h
r345 r389 84 84 GOPEntry m_GOPListLayer[MAX_GOP]; ///< for layer 85 85 #endif 86 #if REPN_FORMAT_IN_VPS 87 Int m_repFormatIdx; 88 #endif 86 89 public: 87 90 TAppEncLayerCfg(); … … 147 150 GOPEntry getGOPEntry(Int i ) {return m_GOPListLayer[i]; } 148 151 #endif 152 #if REPN_FORMAT_IN_VPS 153 Int getRepFormatIdx() { return m_repFormatIdx; } 154 Void setSourceWidth(Int x) {m_iSourceWidth = x; } 155 Void setSourceHeight(Int x) {m_iSourceHeight = x; } 156 #endif 149 157 }; // END CLASS DEFINITION TAppEncLayerCfg 150 158 -
branches/SHM-3.1-dev/source/App/TAppEncoder/TAppEncTop.cpp
r377 r389 90 90 vps->setMaxDecPicBuffering ( m_maxDecPicBuffering[i], i ); 91 91 } 92 92 #if REPN_FORMAT_IN_VPS 93 vps->setRepFormatIdxPresentFlag( true ); // Could be disabled to optimize in some cases. 94 Int maxRepFormatIdx = -1; 95 for(UInt layer=0; layer < m_numLayers; layer++) 96 { 97 assert( m_acLayerCfg[layer].getRepFormatIdx() != -1, "RepFormatIdx not assigned for a layer" ); 98 vps->setVpsRepFormatIdx( layer, m_acLayerCfg[layer].getRepFormatIdx() ); 99 maxRepFormatIdx = std::max( m_acLayerCfg[layer].getRepFormatIdx(), maxRepFormatIdx ); 100 } 101 assert( vps->getVpsRepFormatIdx( 0 ) == 0 ); // Base layer should point to the first one. 102 Int* mapIdxToLayer = new Int[maxRepFormatIdx + 1]; 103 // Check that all the indices from 0 to maxRepFormatIdx are used in the VPS 104 for(Int i = 0; i <= maxRepFormatIdx; i++) 105 { 106 mapIdxToLayer[i] = -1; 107 UInt layer; 108 for(layer=0; layer < m_numLayers; layer++) 109 { 110 if( vps->getVpsRepFormatIdx(layer) == i ) 111 { 112 mapIdxToLayer[i] = layer; 113 break; 114 } 115 } 116 assert( layer != m_numLayers ); // One of the VPS Rep format indices not set 117 } 118 vps->setVpsNumRepFormats( maxRepFormatIdx + 1 ); 119 for(UInt idx=0; idx < vps->getVpsNumRepFormats(); idx++) 120 { 121 RepFormat *repFormat = vps->getVpsRepFormat( idx ); 122 repFormat->setPicWidthVpsInLumaSamples ( m_acLayerCfg[mapIdxToLayer[idx]].getSourceWidth() ); 123 repFormat->setPicHeightVpsInLumaSamples ( m_acLayerCfg[mapIdxToLayer[idx]].getSourceHeight() ); 124 repFormat->setChromaFormatVpsIdc ( 1 ); // Need modification to change for each layer - corresponds to 420 125 repFormat->setSeparateColourPlaneVpsFlag( 0 ); // Need modification to change for each layer 126 repFormat->setBitDepthVpsLuma ( getInternalBitDepthY() ); // Need modification to change for each layer 127 repFormat->setBitDepthVpsChroma ( getInternalBitDepthC() ); // Need modification to change for each layer 128 } 129 delete [] mapIdxToLayer; 130 #endif 93 131 for(UInt layer=0; layer<m_numLayers; layer++) 94 132 { -
branches/SHM-3.1-dev/source/Lib/TLibCommon/TComDataCU.cpp
r378 r389 1273 1273 UInt uiNumPartInCUWidth = m_pcPic->getNumPartInWidth(); 1274 1274 1275 #if REPN_FORMAT_IN_VPS 1276 if( ( m_pcPic->getCU(m_uiCUAddr)->getCUPelX() + g_auiRasterToPelX[uiAbsPartIdxRT] + m_pcPic->getMinCUWidth() ) >= m_pcSlice->getPicWidthInLumaSamples() ) 1277 #else 1275 1278 if( ( m_pcPic->getCU(m_uiCUAddr)->getCUPelX() + g_auiRasterToPelX[uiAbsPartIdxRT] + m_pcPic->getMinCUWidth() ) >= m_pcSlice->getSPS()->getPicWidthInLumaSamples() ) 1279 #endif 1276 1280 { 1277 1281 uiARPartUnitIdx = MAX_UINT; … … 1335 1339 UInt uiAbsZorderCUIdxLB = g_auiZscanToRaster[ m_uiAbsIdxInLCU ] + (m_puhHeight[0] / m_pcPic->getMinCUHeight() - 1)*m_pcPic->getNumPartInWidth(); 1336 1340 UInt uiNumPartInCUWidth = m_pcPic->getNumPartInWidth(); 1337 1341 1342 #if REPN_FORMAT_IN_VPS 1343 if( ( m_pcPic->getCU(m_uiCUAddr)->getCUPelY() + g_auiRasterToPelY[uiAbsPartIdxLB] + m_pcPic->getMinCUHeight() ) >= m_pcSlice->getPicHeightInLumaSamples() ) 1344 #else 1338 1345 if( ( m_pcPic->getCU(m_uiCUAddr)->getCUPelY() + g_auiRasterToPelY[uiAbsPartIdxLB] + m_pcPic->getMinCUHeight() ) >= m_pcSlice->getSPS()->getPicHeightInLumaSamples() ) 1346 #endif 1339 1347 { 1340 1348 uiBLPartUnitIdx = MAX_UINT; … … 1384 1392 UInt uiNumPartInCUWidth = m_pcPic->getNumPartInWidth(); 1385 1393 1394 #if REPN_FORMAT_IN_VPS 1395 if( ( m_pcPic->getCU(m_uiCUAddr)->getCUPelY() + g_auiRasterToPelY[uiAbsPartIdxLB] + (m_pcPic->getPicSym()->getMinCUHeight() * uiPartUnitOffset)) >= m_pcSlice->getPicHeightInLumaSamples()) 1396 #else 1386 1397 if( ( m_pcPic->getCU(m_uiCUAddr)->getCUPelY() + g_auiRasterToPelY[uiAbsPartIdxLB] + (m_pcPic->getPicSym()->getMinCUHeight() * uiPartUnitOffset)) >= m_pcSlice->getSPS()->getPicHeightInLumaSamples()) 1398 #endif 1387 1399 { 1388 1400 uiBLPartUnitIdx = MAX_UINT; … … 1432 1444 UInt uiNumPartInCUWidth = m_pcPic->getNumPartInWidth(); 1433 1445 1446 #if REPN_FORMAT_IN_VPS 1447 if( ( m_pcPic->getCU(m_uiCUAddr)->getCUPelX() + g_auiRasterToPelX[uiAbsPartIdxRT] + (m_pcPic->getPicSym()->getMinCUHeight() * uiPartUnitOffset)) >= m_pcSlice->getPicWidthInLumaSamples() ) 1448 #else 1434 1449 if( ( m_pcPic->getCU(m_uiCUAddr)->getCUPelX() + g_auiRasterToPelX[uiAbsPartIdxRT] + (m_pcPic->getPicSym()->getMinCUHeight() * uiPartUnitOffset)) >= m_pcSlice->getSPS()->getPicWidthInLumaSamples() ) 1450 #endif 1435 1451 { 1436 1452 uiARPartUnitIdx = MAX_UINT; … … 2684 2700 Int uiLCUIdx = -1; 2685 2701 2702 #if REPN_FORMAT_IN_VPS 2703 if ( ( m_pcPic->getCU(m_uiCUAddr)->getCUPelX() + g_auiRasterToPelX[uiAbsPartIdxTmp] + m_pcPic->getMinCUWidth() ) >= m_pcSlice->getPicWidthInLumaSamples() ) // image boundary check 2704 { 2705 } 2706 else if ( ( m_pcPic->getCU(m_uiCUAddr)->getCUPelY() + g_auiRasterToPelY[uiAbsPartIdxTmp] + m_pcPic->getMinCUHeight() ) >= m_pcSlice->getPicHeightInLumaSamples() ) 2707 { 2708 } 2709 #else 2686 2710 if ( ( m_pcPic->getCU(m_uiCUAddr)->getCUPelX() + g_auiRasterToPelX[uiAbsPartIdxTmp] + m_pcPic->getMinCUWidth() ) >= m_pcSlice->getSPS()->getPicWidthInLumaSamples() ) // image boundary check 2687 2711 { … … 2690 2714 { 2691 2715 } 2716 #endif 2692 2717 else 2693 2718 { … … 3020 3045 uiAbsPartIdx = g_auiZscanToRaster[uiPartIdxRB]; 3021 3046 Int uiLCUIdx = -1; 3047 #if REPN_FORMAT_IN_VPS 3048 if ( ( m_pcPic->getCU(m_uiCUAddr)->getCUPelX() + g_auiRasterToPelX[uiAbsPartIdx] + m_pcPic->getMinCUWidth() ) >= m_pcSlice->getPicWidthInLumaSamples() ) // image boundary check 3049 { 3050 } 3051 else if ( ( m_pcPic->getCU(m_uiCUAddr)->getCUPelY() + g_auiRasterToPelY[uiAbsPartIdx] + m_pcPic->getMinCUHeight() ) >= m_pcSlice->getPicHeightInLumaSamples() ) 3052 { 3053 } 3054 #else 3022 3055 if ( ( m_pcPic->getCU(m_uiCUAddr)->getCUPelX() + g_auiRasterToPelX[uiAbsPartIdx] + m_pcPic->getMinCUWidth() ) >= m_pcSlice->getSPS()->getPicWidthInLumaSamples() ) // image boundary check 3023 3056 { … … 3026 3059 { 3027 3060 } 3061 #endif 3028 3062 else 3029 3063 { … … 3095 3129 Int iMvShift = 2; 3096 3130 Int iOffset = 8; 3131 #if REPN_FORMAT_IN_VPS 3132 Int iHorMax = ( m_pcSlice->getPicWidthInLumaSamples() + iOffset - m_uiCUPelX - 1 ) << iMvShift; 3133 #else 3097 3134 Int iHorMax = ( m_pcSlice->getSPS()->getPicWidthInLumaSamples() + iOffset - m_uiCUPelX - 1 ) << iMvShift; 3135 #endif 3098 3136 Int iHorMin = ( -(Int)g_uiMaxCUWidth - iOffset - (Int)m_uiCUPelX + 1 ) << iMvShift; 3099 3137 3138 #if REPN_FORMAT_IN_VPS 3139 Int iVerMax = ( m_pcSlice->getPicHeightInLumaSamples() + iOffset - m_uiCUPelY - 1 ) << iMvShift; 3140 #else 3100 3141 Int iVerMax = ( m_pcSlice->getSPS()->getPicHeightInLumaSamples() + iOffset - m_uiCUPelY - 1 ) << iMvShift; 3142 #endif 3101 3143 Int iVerMin = ( -(Int)g_uiMaxCUHeight - iOffset - (Int)m_uiCUPelY + 1 ) << iMvShift; 3102 3144 -
branches/SHM-3.1-dev/source/Lib/TLibCommon/TComLoopFilter.cpp
r313 r389 180 180 UInt uiLPelX = pcCU->getCUPelX() + g_auiRasterToPelX[ g_auiZscanToRaster[uiAbsZorderIdx] ]; 181 181 UInt uiTPelY = pcCU->getCUPelY() + g_auiRasterToPelY[ g_auiZscanToRaster[uiAbsZorderIdx] ]; 182 #if REPN_FORMAT_IN_VPS 183 if( ( uiLPelX < pcCU->getSlice()->getPicWidthInLumaSamples() ) && ( uiTPelY < pcCU->getSlice()->getPicHeightInLumaSamples() ) ) 184 #else 182 185 if( ( uiLPelX < pcCU->getSlice()->getSPS()->getPicWidthInLumaSamples() ) && ( uiTPelY < pcCU->getSlice()->getSPS()->getPicHeightInLumaSamples() ) ) 186 #endif 183 187 { 184 188 xDeblockCU( pcCU, uiAbsZorderIdx, uiDepth+1, Edge ); -
branches/SHM-3.1-dev/source/Lib/TLibCommon/TComPic.cpp
r377 r389 213 213 UInt maxNumSUInLCU = getNumPartInCU(); 214 214 UInt numLCUInPic = getNumCUsInFrame(); 215 #if REPN_FORMAT_IN_VPS 216 UInt picWidth = getSlice(0)->getPicWidthInLumaSamples(); 217 UInt picHeight = getSlice(0)->getPicHeightInLumaSamples(); 218 #else 215 219 UInt picWidth = getSlice(0)->getSPS()->getPicWidthInLumaSamples(); 216 220 UInt picHeight = getSlice(0)->getSPS()->getPicHeightInLumaSamples(); 221 #endif 217 222 Int numLCUsInPicWidth = getFrameWidthInCU(); 218 223 Int numLCUsInPicHeight= getFrameHeightInCU(); -
branches/SHM-3.1-dev/source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp
r313 r389 1414 1414 UInt uiLPelX = pcCU->getCUPelX() + g_auiRasterToPelX[ g_auiZscanToRaster[uiAbsZorderIdx] ]; 1415 1415 UInt uiTPelY = pcCU->getCUPelY() + g_auiRasterToPelY[ g_auiZscanToRaster[uiAbsZorderIdx] ]; 1416 #if REPN_FORMAT_IN_VPS 1417 if( ( uiLPelX < pcCU->getSlice()->getPicWidthInLumaSamples() ) && ( uiTPelY < pcCU->getSlice()->getPicHeightInLumaSamples() ) ) 1418 #else 1416 1419 if( ( uiLPelX < pcCU->getSlice()->getSPS()->getPicWidthInLumaSamples() ) && ( uiTPelY < pcCU->getSlice()->getSPS()->getPicHeightInLumaSamples() ) ) 1420 #endif 1417 1421 xPCMCURestoration( pcCU, uiAbsZorderIdx, uiDepth+1 ); 1418 1422 } -
branches/SHM-3.1-dev/source/Lib/TLibCommon/TComSlice.cpp
r387 r389 1587 1587 } 1588 1588 1589 #if REPN_FORMAT_IN_VPS 1590 UInt TComSlice::getPicWidthInLumaSamples() 1591 { 1592 TComSPS *sps = getSPS(); 1593 TComVPS *vps = getVPS(); 1594 UInt retVal, layerId = getLayerId(); 1595 if( ( layerId == 0 ) || sps->getUpdateRepFormatFlag() ) 1596 { 1597 retVal = sps->getPicWidthInLumaSamples(); 1598 } 1599 else 1600 { 1601 retVal = vps->getVpsRepFormat( vps->getVpsRepFormatIdx(layerId) )->getPicWidthVpsInLumaSamples(); 1602 } 1603 return retVal; 1604 } 1605 UInt TComSlice::getPicHeightInLumaSamples() 1606 { 1607 TComSPS *sps = getSPS(); 1608 TComVPS *vps = getVPS(); 1609 UInt retVal, layerId = getLayerId(); 1610 if( ( layerId == 0 ) || sps->getUpdateRepFormatFlag() ) 1611 { 1612 retVal = sps->getPicHeightInLumaSamples(); 1613 } 1614 else 1615 { 1616 retVal = vps->getVpsRepFormat( vps->getVpsRepFormatIdx(layerId) )->getPicHeightVpsInLumaSamples(); 1617 } 1618 return retVal; 1619 } 1620 UInt TComSlice::getChromaFormatIdc() 1621 { 1622 TComSPS *sps = getSPS(); 1623 TComVPS *vps = getVPS(); 1624 UInt retVal, layerId = getLayerId(); 1625 if( ( layerId == 0 ) || sps->getUpdateRepFormatFlag() ) 1626 { 1627 retVal = sps->getChromaFormatIdc(); 1628 } 1629 else 1630 { 1631 retVal = vps->getVpsRepFormat( vps->getVpsRepFormatIdx(layerId) )->getChromaFormatVpsIdc(); 1632 } 1633 return retVal; 1634 } 1635 UInt TComSlice::getBitDepthY() 1636 { 1637 TComSPS *sps = getSPS(); 1638 TComVPS *vps = getVPS(); 1639 UInt retVal, layerId = getLayerId(); 1640 if( ( layerId == 0 ) || sps->getUpdateRepFormatFlag() ) 1641 { 1642 retVal = sps->getBitDepthY(); 1643 } 1644 else 1645 { 1646 retVal = vps->getVpsRepFormat( vps->getVpsRepFormatIdx(layerId) )->getBitDepthVpsLuma(); 1647 } 1648 return retVal; 1649 } 1650 UInt TComSlice::getBitDepthC() 1651 { 1652 TComSPS *sps = getSPS(); 1653 TComVPS *vps = getVPS(); 1654 UInt retVal, layerId = getLayerId(); 1655 if( ( layerId == 0 ) || sps->getUpdateRepFormatFlag() ) 1656 { 1657 retVal = sps->getBitDepthC(); 1658 } 1659 else 1660 { 1661 retVal = vps->getVpsRepFormat( vps->getVpsRepFormatIdx(layerId) )->getBitDepthVpsChroma(); 1662 } 1663 return retVal; 1664 } 1665 Int TComSlice::getQpBDOffsetY() 1666 { 1667 return (getBitDepthY() - 8) * 6; 1668 } 1669 Int TComSlice::getQpBDOffsetC() 1670 { 1671 return (getBitDepthC() - 8) * 6; 1672 } 1673 1674 RepFormat::RepFormat() 1675 : m_chromaFormatVpsIdc (0) 1676 , m_separateColourPlaneVpsFlag (false) 1677 , m_picWidthVpsInLumaSamples (0) 1678 , m_picHeightVpsInLumaSamples (0) 1679 , m_bitDepthVpsLuma (0) 1680 , m_bitDepthVpsChroma (0) 1681 {} 1682 #endif 1683 1589 1684 // ------------------------------------------------------------------------------------------------ 1590 1685 // Video parameter set (VPS) … … 1619 1714 , m_picRatePresentVpsFlag (false) 1620 1715 #endif 1716 #if REPN_FORMAT_IN_VPS 1717 , m_repFormatIdxPresentFlag (true) 1718 , m_vpsNumRepFormats (1) 1719 #endif 1621 1720 { 1622 1721 for( Int i = 0; i < MAX_TLAYER; i++) … … 1692 1791 ::memset(m_constPicRateIdc , 0, sizeof(m_constPicRateIdc) ); 1693 1792 ::memset(m_avgPicRate , 0, sizeof(m_avgPicRate) ); 1793 #endif 1794 #if REPN_FORMAT_IN_VPS 1795 ::memset( m_vpsRepFormatIdx, 0, sizeof(m_vpsRepFormatIdx) ); 1694 1796 #endif 1695 1797 } … … 1778 1880 , m_numScaledRefLayerOffsets (0) 1779 1881 #endif 1882 #if REPN_FORMAT_IN_VPS 1883 , m_updateRepFormatFlag (false) 1884 #endif 1780 1885 { 1781 1886 for ( Int i = 0; i < MAX_TLAYER; i++ ) -
branches/SHM-3.1-dev/source/Lib/TLibCommon/TComSlice.h
r386 r389 406 406 }; 407 407 408 #if REPN_FORMAT_IN_VPS 409 class RepFormat 410 { 411 Int m_chromaFormatVpsIdc; 412 Bool m_separateColourPlaneVpsFlag; 413 Int m_picWidthVpsInLumaSamples; 414 Int m_picHeightVpsInLumaSamples; 415 Int m_bitDepthVpsLuma; // coded as minus8 416 Int m_bitDepthVpsChroma; // coded as minus8 417 418 public: 419 RepFormat(); 420 421 Int getChromaFormatVpsIdc() { return m_chromaFormatVpsIdc; } 422 Void setChromaFormatVpsIdc(Int x) { m_chromaFormatVpsIdc = x; } 423 424 Bool getSeparateColourPlaneVpsFlag() { return m_separateColourPlaneVpsFlag; } 425 Void setSeparateColourPlaneVpsFlag(Bool x) { m_separateColourPlaneVpsFlag = x; } 426 427 Int getPicWidthVpsInLumaSamples() { return m_picWidthVpsInLumaSamples; } 428 Void setPicWidthVpsInLumaSamples(Int x) { m_picWidthVpsInLumaSamples = x; } 429 430 Int getPicHeightVpsInLumaSamples() { return m_picHeightVpsInLumaSamples; } 431 Void setPicHeightVpsInLumaSamples(Int x) { m_picHeightVpsInLumaSamples = x; } 432 433 Int getBitDepthVpsLuma() { return m_bitDepthVpsLuma; } 434 Void setBitDepthVpsLuma(Int x) { m_bitDepthVpsLuma = x; } 435 436 Int getBitDepthVpsChroma() { return m_bitDepthVpsChroma; } 437 Void setBitDepthVpsChroma(Int x) { m_bitDepthVpsChroma = x; } 438 }; 439 #endif 408 440 class TComVPS 409 441 { … … 519 551 Int m_avgPicRate [MAX_VPS_LAYER_SETS_PLUS1][MAX_TLAYER]; 520 552 #endif 553 #if REPN_FORMAT_IN_VPS 554 Bool m_repFormatIdxPresentFlag; 555 Int m_vpsNumRepFormats; // coded as minus1 556 RepFormat m_vpsRepFormat[16]; 557 Int m_vpsRepFormatIdx[16]; 558 #endif 521 559 public: 522 560 TComVPS(); … … 727 765 Int getAvgPicRate(Int i, Int j) { return m_avgPicRate[i][j]; } 728 766 Void setAvgPicRate(Int i, Int j, Int x) { m_avgPicRate[i][j] = x; } 767 #endif 768 769 #if REPN_FORMAT_IN_VPS 770 Bool getRepFormatIdxPresentFlag() { return m_repFormatIdxPresentFlag; } 771 Void setRepFormatIdxPresentFlag(Bool x) { m_repFormatIdxPresentFlag = x; } 772 773 Int getVpsNumRepFormats() { return m_vpsNumRepFormats; } 774 Void setVpsNumRepFormats(Int x) { m_vpsNumRepFormats = x; } 775 776 RepFormat* getVpsRepFormat(Int idx) { return &m_vpsRepFormat[idx]; } 777 778 Int getVpsRepFormatIdx(Int idx) { return m_vpsRepFormatIdx[idx]; } 779 Void setVpsRepFormatIdx(Int idx, Int x) { m_vpsRepFormatIdx[idx] = x; } 729 780 #endif 730 781 }; … … 1041 1092 UInt m_numScaledRefLayerOffsets; 1042 1093 Window m_scaledRefLayerWindow[MAX_LAYERS]; 1094 #endif 1095 #if REPN_FORMAT_IN_VPS 1096 Bool m_updateRepFormatFlag; 1043 1097 #endif 1044 1098 public: … … 1200 1254 Window& getScaledRefLayerWindow( Int x ) { return m_scaledRefLayerWindow[x]; } 1201 1255 #endif 1256 #if REPN_FORMAT_IN_VPS 1257 Bool getUpdateRepFormatFlag() { return m_updateRepFormatFlag; } 1258 Void setUpdateRepFormatFlag(Bool x) { m_updateRepFormatFlag = x; } 1259 #endif 1202 1260 }; 1203 1261 … … 1866 1924 #endif //SVC_EXTENSION 1867 1925 1926 #if REPN_FORMAT_IN_VPS 1927 UInt getPicWidthInLumaSamples(); 1928 UInt getPicHeightInLumaSamples(); 1929 UInt getChromaFormatIdc(); 1930 UInt getBitDepthY(); 1931 UInt getBitDepthC(); 1932 Int getQpBDOffsetY(); 1933 Int getQpBDOffsetC(); 1934 #endif 1868 1935 protected: 1869 1936 TComPic* xGetRefPic (TComList<TComPic*>& rcListPic, -
branches/SHM-3.1-dev/source/Lib/TLibCommon/TComTrQuant.cpp
r345 r389 42 42 #include "TComPic.h" 43 43 #include "ContextTables.h" 44 44 #define MAYBE_BUGFIX 1 45 45 typedef struct 46 46 { … … 50 50 Double d64SigCost; 51 51 Double d64SigCost_0; 52 #if MAYBE_BUGFIX 53 Void init() 54 { 55 iNNZbeforePos0 = 0; 56 d64CodedLevelandDist = 0; 57 d64UncodedDist = 0; 58 d64SigCost = 0; 59 d64SigCost_0 = 0; 60 } 61 #endif 52 62 } coeffGroupRDStats; 53 63 … … 1033 1043 1034 1044 Int qpScaled; 1045 #if REPN_FORMAT_IN_VPS 1046 Int qpBDOffset = (eTType == TEXT_LUMA)? pcCU->getSlice()->getQpBDOffsetY() : pcCU->getSlice()->getQpBDOffsetC(); 1047 #else 1035 1048 Int qpBDOffset = (eTType == TEXT_LUMA)? pcCU->getSlice()->getSPS()->getQpBDOffsetY() : pcCU->getSlice()->getSPS()->getQpBDOffsetC(); 1049 #endif 1036 1050 1037 1051 if(eTType == TEXT_LUMA) … … 1581 1595 UInt uiCGPosY = uiCGBlkPos / uiNumBlkSide; 1582 1596 UInt uiCGPosX = uiCGBlkPos - (uiCGPosY * uiNumBlkSide); 1597 #if MAYBE_BUGFIX 1598 rdStats.init(); 1599 #else 1583 1600 ::memset( &rdStats, 0, sizeof (coeffGroupRDStats)); 1584 1601 #endif 1585 1602 const Int patternSigCtx = TComTrQuant::calcPatternSigCtx(uiSigCoeffGroupFlag, uiCGPosX, uiCGPosY, uiWidth, uiHeight); 1586 1603 for (Int iScanPosinCG = uiCGSize-1; iScanPosinCG >= 0; iScanPosinCG--) -
branches/SHM-3.1-dev/source/Lib/TLibCommon/TypeDef.h
r386 r389 48 48 #if SVC_EXTENSION 49 49 #define MAX_LAYERS 2 ///< max number of layers the codec is supposed to handle 50 #define REPN_FORMAT_IN_VPS 1 ///< N0092: Signal represenation format (spatial resolution, bit depth, colour format) in the VPS 50 51 #define TIMING_INFO_NONZERO_LAYERID_SPS 1 ///< N0085: Semantics of vui_timing_info_present_flag to always set that flag to zero for non-zero layer ID SPS 51 52 #define RPL_INIT_N0316_N0082 1 ///< N0316, N0082: initial reference picture list construction -
branches/SHM-3.1-dev/source/Lib/TLibDecoder/TDecCAVLC.cpp
r386 r389 542 542 READ_UVLC( uiCode, "sps_seq_parameter_set_id" ); pcSPS->setSPSId( uiCode ); 543 543 assert(uiCode <= 15); 544 545 READ_UVLC( uiCode, "chroma_format_idc" ); pcSPS->setChromaFormatIdc( uiCode ); 546 assert(uiCode <= 3); 547 // in the first version we only support chroma_format_idc equal to 1 (4:2:0), so separate_colour_plane_flag cannot appear in the bitstream 548 assert (uiCode == 1); 549 if( uiCode == 3 ) 550 { 551 READ_FLAG( uiCode, "separate_colour_plane_flag"); assert(uiCode == 0); 552 } 553 554 READ_UVLC ( uiCode, "pic_width_in_luma_samples" ); pcSPS->setPicWidthInLumaSamples ( uiCode ); 555 READ_UVLC ( uiCode, "pic_height_in_luma_samples" ); pcSPS->setPicHeightInLumaSamples( uiCode ); 544 545 #if REPN_FORMAT_IN_VPS 546 if( pcSPS->getLayerId() > 0 ) 547 { 548 READ_FLAG( uiCode, "update_rep_format_flag" ); 549 pcSPS->setUpdateRepFormatFlag( uiCode ? true : false ); 550 } 551 else 552 { 553 pcSPS->setUpdateRepFormatFlag( true ); 554 } 555 if( pcSPS->getLayerId() == 0 || pcSPS->getUpdateRepFormatFlag() ) 556 { 557 #endif 558 READ_UVLC( uiCode, "chroma_format_idc" ); pcSPS->setChromaFormatIdc( uiCode ); 559 assert(uiCode <= 3); 560 // in the first version we only support chroma_format_idc equal to 1 (4:2:0), so separate_colour_plane_flag cannot appear in the bitstream 561 assert (uiCode == 1); 562 if( uiCode == 3 ) 563 { 564 READ_FLAG( uiCode, "separate_colour_plane_flag"); assert(uiCode == 0); 565 } 566 567 READ_UVLC ( uiCode, "pic_width_in_luma_samples" ); pcSPS->setPicWidthInLumaSamples ( uiCode ); 568 READ_UVLC ( uiCode, "pic_height_in_luma_samples" ); pcSPS->setPicHeightInLumaSamples( uiCode ); 569 #if REPN_FORMAT_IN_VPS 570 } 571 #endif 556 572 READ_FLAG( uiCode, "conformance_window_flag"); 557 573 if (uiCode != 0) 558 574 { 559 575 Window &conf = pcSPS->getConformanceWindow(); 576 #if REPN_FORMAT_IN_VPS 577 READ_UVLC( uiCode, "conf_win_left_offset" ); conf.setWindowLeftOffset ( uiCode ); 578 READ_UVLC( uiCode, "conf_win_right_offset" ); conf.setWindowRightOffset ( uiCode ); 579 READ_UVLC( uiCode, "conf_win_top_offset" ); conf.setWindowTopOffset ( uiCode ); 580 READ_UVLC( uiCode, "conf_win_bottom_offset" ); conf.setWindowBottomOffset( uiCode ); 581 #else 560 582 READ_UVLC( uiCode, "conf_win_left_offset" ); conf.setWindowLeftOffset ( uiCode * TComSPS::getWinUnitX( pcSPS->getChromaFormatIdc() ) ); 561 583 READ_UVLC( uiCode, "conf_win_right_offset" ); conf.setWindowRightOffset ( uiCode * TComSPS::getWinUnitX( pcSPS->getChromaFormatIdc() ) ); 562 584 READ_UVLC( uiCode, "conf_win_top_offset" ); conf.setWindowTopOffset ( uiCode * TComSPS::getWinUnitY( pcSPS->getChromaFormatIdc() ) ); 563 585 READ_UVLC( uiCode, "conf_win_bottom_offset" ); conf.setWindowBottomOffset( uiCode * TComSPS::getWinUnitY( pcSPS->getChromaFormatIdc() ) ); 564 } 565 566 READ_UVLC( uiCode, "bit_depth_luma_minus8" ); 567 assert(uiCode <= 6); 568 pcSPS->setBitDepthY( uiCode + 8 ); 569 pcSPS->setQpBDOffsetY( (Int) (6*uiCode) ); 570 571 READ_UVLC( uiCode, "bit_depth_chroma_minus8" ); 572 assert(uiCode <= 6); 573 pcSPS->setBitDepthC( uiCode + 8 ); 574 pcSPS->setQpBDOffsetC( (Int) (6*uiCode) ); 575 586 #endif 587 } 588 #if REPN_FORMAT_IN_VPS 589 if( pcSPS->getLayerId() == 0 || pcSPS->getUpdateRepFormatFlag() ) 590 { 591 #endif 592 READ_UVLC( uiCode, "bit_depth_luma_minus8" ); 593 assert(uiCode <= 6); 594 pcSPS->setBitDepthY( uiCode + 8 ); 595 pcSPS->setQpBDOffsetY( (Int) (6*uiCode) ); 596 597 READ_UVLC( uiCode, "bit_depth_chroma_minus8" ); 598 assert(uiCode <= 6); 599 pcSPS->setBitDepthC( uiCode + 8 ); 600 pcSPS->setQpBDOffsetC( (Int) (6*uiCode) ); 601 #if REPN_FORMAT_IN_VPS 602 } 603 #endif 576 604 READ_UVLC( uiCode, "log2_max_pic_order_cnt_lsb_minus4" ); pcSPS->setBitsForPOC( 4 + uiCode ); 577 605 assert(uiCode <= 12); … … 1107 1135 #endif 1108 1136 #endif 1137 #if REPN_FORMAT_IN_VPS 1138 READ_FLAG( uiCode, "rep_format_idx_present_flag"); 1139 vps->setRepFormatIdxPresentFlag( uiCode ? true : false ); 1140 1141 if( vps->getRepFormatIdxPresentFlag() ) 1142 { 1143 READ_CODE( 4, uiCode, "vps_num_rep_formats_minus1" ); 1144 vps->setVpsNumRepFormats( uiCode + 1 ); 1145 } 1146 else 1147 { 1148 // default assignment 1149 assert (vps->getMaxLayers() <= 16); // If max_layers_is more than 15, num_rep_formats has to be signaled 1150 vps->setVpsNumRepFormats( vps->getMaxLayers() ); 1151 } 1152 for(Int i = 0; i < vps->getVpsNumRepFormats(); i++) 1153 { 1154 // Read rep_format_structures 1155 parseRepFormat( vps->getVpsRepFormat(i) ); 1156 } 1157 1158 // Default assignment for layer 0 1159 vps->setVpsRepFormatIdx( 0, 0 ); 1160 if( vps->getRepFormatIdxPresentFlag() ) 1161 { 1162 for(Int i = 1; i < vps->getMaxLayers(); i++) 1163 { 1164 if( vps->getVpsNumRepFormats() > 1 ) 1165 { 1166 READ_CODE( 4, uiCode, "vps_rep_format_idx[i]" ); 1167 vps->setVpsRepFormatIdx( i, uiCode ); 1168 } 1169 else 1170 { 1171 // default assignment - only one rep_format() structure 1172 vps->setVpsRepFormatIdx( i, 0 ); 1173 } 1174 } 1175 } 1176 else 1177 { 1178 // default assignment - each layer assigned each rep_format() structure in the order signaled 1179 for(Int i = 1; i < vps->getMaxLayers(); i++) 1180 { 1181 vps->setVpsRepFormatIdx( i, i ); 1182 } 1183 } 1184 #endif 1109 1185 #if JCTVC_M0458_INTERLAYER_RPS_SIG 1110 1111 1186 READ_FLAG(uiCode, "max_one_active_ref_layer_flag" ); 1187 vps->setMaxOneActiveRefLayerFlag(uiCode); 1112 1188 #endif 1113 1189 … … 1163 1239 } 1164 1240 #endif 1165 1241 #if REPN_FORMAT_IN_VPS 1242 Void TDecCavlc::parseRepFormat ( RepFormat *repFormat ) 1243 { 1244 UInt uiCode; 1245 READ_CODE( 2, uiCode, "chroma_format_idc" ); repFormat->setChromaFormatVpsIdc( uiCode ); 1246 1247 if( repFormat->getChromaFormatVpsIdc() == 3 ) 1248 { 1249 READ_FLAG( uiCode, "separate_colour_plane_flag"); repFormat->setSeparateColourPlaneVpsFlag(uiCode ? true : false); 1250 } 1251 1252 READ_CODE ( 16, uiCode, "pic_width_in_luma_samples" ); repFormat->setPicWidthVpsInLumaSamples ( uiCode ); 1253 READ_CODE ( 16, uiCode, "pic_height_in_luma_samples" ); repFormat->setPicHeightVpsInLumaSamples( uiCode ); 1254 1255 READ_CODE( 4, uiCode, "bit_depth_luma_minus8" ); repFormat->setBitDepthVpsLuma ( uiCode + 8 ); 1256 READ_CODE( 4, uiCode, "bit_depth_chroma_minus8" ); repFormat->setBitDepthVpsChroma( uiCode + 8 ); 1257 1258 } 1259 #endif 1166 1260 #if VPS_VUI 1167 1261 Void TDecCavlc::parseVPSVUI(TComVPS *vps) … … 1285 1379 rpcSlice->setDependentSliceSegmentFlag(false); 1286 1380 } 1381 #if REPN_FORMAT_IN_VPS 1382 Int numCTUs = ((rpcSlice->getPicWidthInLumaSamples()+sps->getMaxCUWidth()-1)/sps->getMaxCUWidth())*((rpcSlice->getPicHeightInLumaSamples()+sps->getMaxCUHeight()-1)/sps->getMaxCUHeight()); 1383 #else 1287 1384 Int numCTUs = ((sps->getPicWidthInLumaSamples()+sps->getMaxCUWidth()-1)/sps->getMaxCUWidth())*((sps->getPicHeightInLumaSamples()+sps->getMaxCUHeight()-1)/sps->getMaxCUHeight()); 1385 #endif 1288 1386 Int maxParts = (1<<(sps->getMaxCUDepth()<<1)); 1289 1387 UInt sliceSegmentAddress = 0; … … 1801 1899 rpcSlice->setSliceQp (26 + pps->getPicInitQPMinus26() + iCode); 1802 1900 1901 #if REPN_FORMAT_IN_VPS 1902 assert( rpcSlice->getSliceQp() >= -rpcSlice->getQpBDOffsetY() ); 1903 #else 1803 1904 assert( rpcSlice->getSliceQp() >= -sps->getQpBDOffsetY() ); 1905 #endif 1804 1906 assert( rpcSlice->getSliceQp() <= 51 ); 1805 1907 … … 2132 2234 xReadSvlc( iDQp ); 2133 2235 2236 #if REPN_FORMAT_IN_VPS 2237 Int qpBdOffsetY = pcCU->getSlice()->getQpBDOffsetY(); 2238 #else 2134 2239 Int qpBdOffsetY = pcCU->getSlice()->getSPS()->getQpBDOffsetY(); 2240 #endif 2135 2241 qp = (((Int) pcCU->getRefQP( uiAbsPartIdx ) + iDQp + 52 + 2*qpBdOffsetY )%(52+ qpBdOffsetY)) - qpBdOffsetY; 2136 2242 -
branches/SHM-3.1-dev/source/Lib/TLibDecoder/TDecCAVLC.h
r382 r389 78 78 Void parseVPSVUI ( TComVPS* pcVPS ); 79 79 #endif 80 #if REPN_FORMAT_IN_VPS 81 Void parseRepFormat ( RepFormat *repFormat ); 82 #endif 80 83 #if SPS_SUB_LAYER_INFO 81 84 Void parseSPS ( TComSPS* pcSPS, ParameterSetManagerDecoder *parameterSetManager ); -
branches/SHM-3.1-dev/source/Lib/TLibDecoder/TDecCu.cpp
r345 r389 177 177 TComSlice * pcSlice = pcPic->getSlice(pcPic->getCurrSliceIdx()); 178 178 UInt uiCurNumParts = pcPic->getNumPartInCU() >> (uiDepth<<1); 179 #if REPN_FORMAT_IN_VPS 180 UInt uiWidth = pcSlice->getPicWidthInLumaSamples(); 181 UInt uiHeight = pcSlice->getPicHeightInLumaSamples(); 182 #else 179 183 UInt uiWidth = pcSlice->getSPS()->getPicWidthInLumaSamples(); 180 184 UInt uiHeight = pcSlice->getSPS()->getPicHeightInLumaSamples(); 185 #endif 181 186 UInt uiGranularityWidth = g_uiMaxCUWidth; 182 187 UInt uiPosX = pcCU->getCUPelX() + g_auiRasterToPelX[ g_auiZscanToRaster[uiAbsPartIdx] ]; … … 230 235 TComSlice * pcSlice = pcCU->getPic()->getSlice(pcCU->getPic()->getCurrSliceIdx()); 231 236 Bool bStartInCU = pcCU->getSCUAddr()+uiAbsPartIdx+uiCurNumParts>pcSlice->getSliceSegmentCurStartCUAddr()&&pcCU->getSCUAddr()+uiAbsPartIdx<pcSlice->getSliceSegmentCurStartCUAddr(); 237 #if REPN_FORMAT_IN_VPS 238 if((!bStartInCU) && ( uiRPelX < pcSlice->getPicWidthInLumaSamples() ) && ( uiBPelY < pcSlice->getPicHeightInLumaSamples() ) ) 239 #else 232 240 if((!bStartInCU) && ( uiRPelX < pcSlice->getSPS()->getPicWidthInLumaSamples() ) && ( uiBPelY < pcSlice->getSPS()->getPicHeightInLumaSamples() ) ) 241 #endif 233 242 { 234 243 m_pcEntropyDecoder->decodeSplitFlag( pcCU, uiAbsPartIdx, uiDepth ); … … 256 265 if ( bSubInSlice ) 257 266 { 267 #if REPN_FORMAT_IN_VPS 268 if ( !ruiIsLast && ( uiLPelX < pcCU->getSlice()->getPicWidthInLumaSamples() ) && ( uiTPelY < pcCU->getSlice()->getPicHeightInLumaSamples() ) ) 269 #else 258 270 if ( !ruiIsLast && ( uiLPelX < pcCU->getSlice()->getSPS()->getPicWidthInLumaSamples() ) && ( uiTPelY < pcCU->getSlice()->getSPS()->getPicHeightInLumaSamples() ) ) 271 #endif 259 272 { 260 273 xDecodeCU( pcCU, uiIdx, uiDepth+1, ruiIsLast ); … … 385 398 TComSlice * pcSlice = pcCU->getPic()->getSlice(pcCU->getPic()->getCurrSliceIdx()); 386 399 Bool bStartInCU = pcCU->getSCUAddr()+uiAbsPartIdx+uiCurNumParts>pcSlice->getSliceSegmentCurStartCUAddr()&&pcCU->getSCUAddr()+uiAbsPartIdx<pcSlice->getSliceSegmentCurStartCUAddr(); 400 #if REPN_FORMAT_IN_VPS 401 if(bStartInCU||( uiRPelX >= pcSlice->getPicWidthInLumaSamples() ) || ( uiBPelY >= pcSlice->getPicHeightInLumaSamples() ) ) 402 #else 387 403 if(bStartInCU||( uiRPelX >= pcSlice->getSPS()->getPicWidthInLumaSamples() ) || ( uiBPelY >= pcSlice->getSPS()->getPicHeightInLumaSamples() ) ) 404 #endif 388 405 { 389 406 bBoundary = true; … … 401 418 402 419 Bool binSlice = (pcCU->getSCUAddr()+uiIdx+uiQNumParts>pcSlice->getSliceSegmentCurStartCUAddr())&&(pcCU->getSCUAddr()+uiIdx<pcSlice->getSliceSegmentCurEndCUAddr()); 420 #if REPN_FORMAT_IN_VPS 421 if(binSlice&&( uiLPelX < pcSlice->getPicWidthInLumaSamples() ) && ( uiTPelY < pcSlice->getPicHeightInLumaSamples() ) ) 422 #else 403 423 if(binSlice&&( uiLPelX < pcSlice->getSPS()->getPicWidthInLumaSamples() ) && ( uiTPelY < pcSlice->getSPS()->getPicHeightInLumaSamples() ) ) 424 #endif 404 425 { 405 426 xDecompressCU(pcCU, uiIdx, uiNextDepth ); … … 494 515 495 516 //===== inverse transform ===== 517 #if REPN_FORMAT_IN_VPS 518 m_pcTrQuant->setQPforQuant ( pcCU->getQP(0), TEXT_LUMA, pcCU->getSlice()->getQpBDOffsetY(), 0 ); 519 #else 496 520 m_pcTrQuant->setQPforQuant ( pcCU->getQP(0), TEXT_LUMA, pcCU->getSlice()->getSPS()->getQpBDOffsetY(), 0 ); 521 #endif 497 522 498 523 Int scalingListType = (pcCU->isIntra(uiAbsPartIdx) ? 0 : 3) + g_eTTable[(Int)TEXT_LUMA]; … … 733 758 pResi = m_ppcYuvResi[uiDepth]->getLumaAddr(); 734 759 760 #if REPN_FORMAT_IN_VPS 761 m_pcTrQuant->setQPforQuant( pcCU->getQP( uiAbsPartIdx ), TEXT_LUMA, pcCU->getSlice()->getQpBDOffsetY(), 0 ); 762 #else 735 763 m_pcTrQuant->setQPforQuant( pcCU->getQP( uiAbsPartIdx ), TEXT_LUMA, pcCU->getSlice()->getSPS()->getQpBDOffsetY(), 0 ); 764 #endif 736 765 737 766 m_pcTrQuant->invRecurTransformNxN ( pcCU, 0, TEXT_LUMA, pResi, 0, m_ppcYuvResi[uiDepth]->getStride(), uiWidth, uiHeight, trMode, 0, piCoeff ); -
branches/SHM-3.1-dev/source/Lib/TLibDecoder/TDecSbac.cpp
r345 r389 860 860 { 861 861 UInt uiSign; 862 #if REPN_FORMAT_IN_VPS 863 Int qpBdOffsetY = pcCU->getSlice()->getQpBDOffsetY(); 864 #else 862 865 Int qpBdOffsetY = pcCU->getSlice()->getSPS()->getQpBDOffsetY(); 866 #endif 863 867 m_pcTDecBinIf->decodeBinEP(uiSign); 864 868 iDQp = uiDQp; -
branches/SHM-3.1-dev/source/Lib/TLibDecoder/TDecTop.cpp
r380 r389 139 139 140 140 #if SVC_EXTENSION 141 Void TDecTop::xInitILRP(TComSPS *pcSPS) 142 { 141 #if !REPN_FORMAT_IN_VPS 142 Void TDecTop::xInitILRP(TComSPS *pcSPS 143 #else 144 Void TDecTop::xInitILRP(TComSlice *slice) 145 #endif 146 { 147 #if REPN_FORMAT_IN_VPS 148 TComSPS* pcSPS = slice->getSPS(); 149 Int bitDepthY = slice->getBitDepthY(); 150 Int bitDepthC = slice->getBitDepthC(); 151 Int picWidth = slice->getPicWidthInLumaSamples(); 152 Int picHeight = slice->getPicHeightInLumaSamples(); 153 #endif 143 154 if(m_layerId>0) 144 155 { 156 #if REPN_FORMAT_IN_VPS 157 g_bitDepthY = bitDepthY; 158 g_bitDepthC = bitDepthC; 159 #else 145 160 g_bitDepthY = pcSPS->getBitDepthY(); 146 161 g_bitDepthC = pcSPS->getBitDepthC(); 162 #endif 147 163 g_uiMaxCUWidth = pcSPS->getMaxCUWidth(); 148 164 g_uiMaxCUHeight = pcSPS->getMaxCUHeight(); … … 165 181 166 182 m_cIlpPic[j] = new TComPic; 183 #if REPN_FORMAT_IN_VPS 184 #if SVC_UPSAMPLING 185 m_cIlpPic[j]->create(picWidth, picHeight, g_uiMaxCUWidth, g_uiMaxCUHeight, g_uiMaxCUDepth, conformanceWindow, defaultDisplayWindow, numReorderPics, pcSPS, true); 186 #else 187 m_cIlpPic[j]->create(picWidth, picHeight, g_uiMaxCUWidth, g_uiMaxCUHeight, g_uiMaxCUDepth, conformanceWindow, defaultDisplayWindow, numReorderPics, true); 188 #endif 189 #else 167 190 #if SVC_UPSAMPLING 168 191 m_cIlpPic[j]->create(pcSPS->getPicWidthInLumaSamples(), pcSPS->getPicHeightInLumaSamples(), g_uiMaxCUWidth, g_uiMaxCUHeight, g_uiMaxCUDepth, conformanceWindow, defaultDisplayWindow, numReorderPics, pcSPS, true); 169 192 #else 170 193 m_cIlpPic[j]->create(pcSPS->getPicWidthInLumaSamples(), pcSPS->getPicHeightInLumaSamples(), g_uiMaxCUWidth, g_uiMaxCUHeight, g_uiMaxCUDepth, conformanceWindow, defaultDisplayWindow, numReorderPics, true); 194 #endif 171 195 #endif 172 196 for (Int i=0; i<m_cIlpPic[j]->getPicSym()->getNumberOfCUsInFrame(); i++) … … 178 202 } 179 203 } 204 205 180 206 181 207 Void TDecTop::setILRPic(TComPic *pcPic) … … 271 297 //TComPic* pcPic = *(pcTDecTopBase->getListPic()->begin()); 272 298 TComPicYuv* pcPicYuvRecBase = (*(pcTDecTopBase->getListPic()->begin()))->getPicYuvRec(); 299 #if REPN_FORMAT_IN_VPS 300 if(pcPicYuvRecBase->getWidth() != pcSlice->getPicWidthInLumaSamples() || pcPicYuvRecBase->getHeight() != pcSlice->getPicHeightInLumaSamples() || !zeroOffsets ) 301 #else 273 302 if(pcPicYuvRecBase->getWidth() != pcSlice->getSPS()->getPicWidthInLumaSamples() || pcPicYuvRecBase->getHeight() != pcSlice->getSPS()->getPicHeightInLumaSamples() || !zeroOffsets ) 303 #endif 274 304 { 275 305 rpcPic->setSpatialEnhLayerFlag( i, true ); … … 288 318 #endif 289 319 320 #if REPN_FORMAT_IN_VPS 321 #if SVC_UPSAMPLING 322 rpcPic->create ( pcSlice->getPicWidthInLumaSamples(), pcSlice->getPicHeightInLumaSamples(), g_uiMaxCUWidth, g_uiMaxCUHeight, g_uiMaxCUDepth, 323 conformanceWindow, defaultDisplayWindow, numReorderPics, pcSlice->getSPS(), true); 324 #else 325 rpcPic->create ( pcSlice->getPicWidthInLumaSamples(), pcSlice->getPicHeightInLumaSamples(), g_uiMaxCUWidth, g_uiMaxCUHeight, g_uiMaxCUDepth, 326 conformanceWindow, defaultDisplayWindow, numReorderPics, true); 327 #endif 328 #else 290 329 #if SVC_UPSAMPLING 291 330 rpcPic->create ( pcSlice->getSPS()->getPicWidthInLumaSamples(), pcSlice->getSPS()->getPicHeightInLumaSamples(), g_uiMaxCUWidth, g_uiMaxCUHeight, g_uiMaxCUDepth, … … 295 334 conformanceWindow, defaultDisplayWindow, numReorderPics, true); 296 335 #endif 336 #endif 337 297 338 rpcPic->getPicSym()->allocSaoParam(&m_cSAO); 298 339 m_cListPic.pushBack( rpcPic ); … … 334 375 rpcPic->destroy(); 335 376 377 #if REPN_FORMAT_IN_VPS 378 #if SVC_UPSAMPLING 379 rpcPic->create ( pcSlice->getPicWidthInLumaSamples(), pcSlice->getPicHeightInLumaSamples(), g_uiMaxCUWidth, g_uiMaxCUHeight, g_uiMaxCUDepth, 380 conformanceWindow, defaultDisplayWindow, numReorderPics, pcSlice->getSPS(), true); 381 382 #else 383 rpcPic->create ( pcSlice->getPicWidthInLumaSamples(), pcSlice->getPicHeightInLumaSamples(), g_uiMaxCUWidth, g_uiMaxCUHeight, g_uiMaxCUDepth, 384 conformanceWindow, defaultDisplayWindow, numReorderPics, true); 385 #endif 386 #else 336 387 #if SVC_UPSAMPLING 337 388 rpcPic->create ( pcSlice->getSPS()->getPicWidthInLumaSamples(), pcSlice->getSPS()->getPicHeightInLumaSamples(), g_uiMaxCUWidth, g_uiMaxCUHeight, g_uiMaxCUDepth, … … 341 392 rpcPic->create ( pcSlice->getSPS()->getPicWidthInLumaSamples(), pcSlice->getSPS()->getPicHeightInLumaSamples(), g_uiMaxCUWidth, g_uiMaxCUHeight, g_uiMaxCUDepth, 342 393 conformanceWindow, defaultDisplayWindow, numReorderPics, true); 394 #endif 343 395 #endif 344 396 rpcPic->getPicSym()->allocSaoParam(&m_cSAO); … … 548 600 m_apcSlicePilot->setSPS(sps); 549 601 pps->setSPS(sps); 602 #if REPN_FORMAT_IN_VPS 550 603 pps->setNumSubstreams(pps->getEntropyCodingSyncEnabledFlag() ? ((sps->getPicHeightInLumaSamples() + sps->getMaxCUHeight() - 1) / sps->getMaxCUHeight()) * (pps->getNumColumnsMinus1() + 1) : 1); 604 #else 605 pps->setNumSubstreams(pps->getEntropyCodingSyncEnabledFlag() ? ((sps->getPicHeightInLumaSamples() + sps->getMaxCUHeight() - 1) / sps->getMaxCUHeight()) * (pps->getNumColumnsMinus1() + 1) : 1); 606 #endif 551 607 pps->setMinCuDQPSize( sps->getMaxCUWidth() >> ( pps->getMaxCuDQPDepth()) ); 552 608 609 #if REPN_FORMAT_IN_VPS 610 g_bitDepthY = m_apcSlicePilot->getBitDepthY(); 611 g_bitDepthC = m_apcSlicePilot->getBitDepthC(); 612 #else 553 613 g_bitDepthY = sps->getBitDepthY(); 554 614 g_bitDepthC = sps->getBitDepthC(); 615 #endif 555 616 g_uiMaxCUWidth = sps->getMaxCUWidth(); 556 617 g_uiMaxCUHeight = sps->getMaxCUHeight(); … … 569 630 570 631 m_cSAO.destroy(); 632 #if REPN_FORMAT_IN_VPS 633 m_cSAO.create( m_apcSlicePilot->getPicWidthInLumaSamples(), m_apcSlicePilot->getPicHeightInLumaSamples(), sps->getMaxCUWidth(), sps->getMaxCUHeight() ); 634 #else 571 635 m_cSAO.create( sps->getPicWidthInLumaSamples(), sps->getPicHeightInLumaSamples(), sps->getMaxCUWidth(), sps->getMaxCUHeight() ); 636 #endif 572 637 m_cLoopFilter.create( sps->getMaxCUDepth() ); 573 638 } … … 684 749 // actual decoding starts here 685 750 xActivateParameterSets(); 686 751 #if REPN_FORMAT_IN_VPS 752 // Initialize ILRP if needed, only for the current layer 753 // ILRP intialization should go along with activation of parameters sets, 754 // although activation of parameter sets itself need not be done for each and every slice!!! 755 xInitILRP(m_apcSlicePilot); 756 #endif 687 757 if (m_apcSlicePilot->isNextSlice()) 688 758 { … … 954 1024 const Window &scalEL = pcSlice->getSPS()->getScaledRefLayerWindow(refLayerIdc); 955 1025 1026 956 1027 Int widthBL = pcSlice->getBaseColPic(refLayerIdc)->getPicYuvRec()->getWidth(); 957 1028 Int heightBL = pcSlice->getBaseColPic(refLayerIdc)->getPicYuvRec()->getHeight(); … … 1123 1194 #endif 1124 1195 #if SVC_EXTENSION 1196 #if !REPN_FORMAT_IN_VPS // ILRP can only be initialized at activation 1125 1197 if(m_numLayer>0) 1126 1198 { 1127 1199 xInitILRP(sps); 1128 1200 } 1201 #endif 1129 1202 #endif 1130 1203 } -
branches/SHM-3.1-dev/source/Lib/TLibDecoder/TDecTop.h
r380 r389 211 211 Int getBLHeight() { return m_iBLSourceHeight; } 212 212 #endif 213 #if REPN_FORMAT_IN_VPS 214 Void xInitILRP(TComSlice *slice); 215 #else 213 216 Void xInitILRP(TComSPS *pcSPS); 217 #endif 214 218 Void setILRPic(TComPic *pcPic); 215 219 #endif -
branches/SHM-3.1-dev/source/Lib/TLibEncoder/TEncCavlc.cpp
r386 r389 423 423 #endif 424 424 WRITE_UVLC( pcSPS->getSPSId (), "sps_seq_parameter_set_id" ); 425 WRITE_UVLC( pcSPS->getChromaFormatIdc (), "chroma_format_idc" ); 426 assert(pcSPS->getChromaFormatIdc () == 1); 427 // in the first version chroma_format_idc can only be equal to 1 (4:2:0) 428 if( pcSPS->getChromaFormatIdc () == 3 ) 429 { 430 WRITE_FLAG( 0, "separate_colour_plane_flag"); 431 } 432 433 WRITE_UVLC( pcSPS->getPicWidthInLumaSamples (), "pic_width_in_luma_samples" ); 434 WRITE_UVLC( pcSPS->getPicHeightInLumaSamples(), "pic_height_in_luma_samples" ); 425 #if REPN_FORMAT_IN_VPS 426 if( pcSPS->getLayerId() > 0 ) 427 { 428 WRITE_FLAG( pcSPS->getUpdateRepFormatFlag(), "update_rep_format_flag" ); 429 } 430 if( pcSPS->getLayerId() == 0 || pcSPS->getUpdateRepFormatFlag() ) 431 { 432 #endif 433 WRITE_UVLC( pcSPS->getChromaFormatIdc (), "chroma_format_idc" ); 434 assert(pcSPS->getChromaFormatIdc () == 1); 435 // in the first version chroma_format_idc can only be equal to 1 (4:2:0) 436 if( pcSPS->getChromaFormatIdc () == 3 ) 437 { 438 WRITE_FLAG( 0, "separate_colour_plane_flag"); 439 } 440 441 WRITE_UVLC( pcSPS->getPicWidthInLumaSamples (), "pic_width_in_luma_samples" ); 442 WRITE_UVLC( pcSPS->getPicHeightInLumaSamples(), "pic_height_in_luma_samples" ); 443 #if REPN_FORMAT_IN_VPS 444 } 445 #endif 435 446 Window conf = pcSPS->getConformanceWindow(); 436 447 … … 444 455 } 445 456 446 WRITE_UVLC( pcSPS->getBitDepthY() - 8, "bit_depth_luma_minus8" ); 447 WRITE_UVLC( pcSPS->getBitDepthC() - 8, "bit_depth_chroma_minus8" ); 448 457 #if REPN_FORMAT_IN_VPS 458 if( pcSPS->getLayerId() == 0 || pcSPS->getUpdateRepFormatFlag() ) 459 { 460 assert( pcSPS->getBitDepthY() >= 8 ); 461 assert( pcSPS->getBitDepthC() >= 8 ); 462 #endif 463 WRITE_UVLC( pcSPS->getBitDepthY() - 8, "bit_depth_luma_minus8" ); 464 WRITE_UVLC( pcSPS->getBitDepthC() - 8, "bit_depth_chroma_minus8" ); 465 #if REPN_FORMAT_IN_VPS 466 } 467 #endif 449 468 WRITE_UVLC( pcSPS->getBitsForPOC()-4, "log2_max_pic_order_cnt_lsb_minus4" ); 450 469 … … 863 882 #endif 864 883 #endif 884 885 #if REPN_FORMAT_IN_VPS 886 WRITE_FLAG( vps->getRepFormatIdxPresentFlag(), "rep_format_idx_present_flag"); 887 888 if( vps->getRepFormatIdxPresentFlag() ) 889 { 890 WRITE_CODE( vps->getVpsNumRepFormats() - 1, 4, "vps_num_rep_formats_minus1" ); 891 } 892 for(Int i = 0; i < vps->getVpsNumRepFormats(); i++) 893 { 894 // Read rep_format_structures 895 codeRepFormat( vps->getVpsRepFormat(i) ); 896 } 897 898 if( vps->getRepFormatIdxPresentFlag() ) 899 { 900 for(Int i = 1; i < vps->getMaxLayers(); i++) 901 { 902 if( vps->getVpsNumRepFormats() > 1 ) 903 { 904 WRITE_CODE( vps->getVpsRepFormatIdx(i), 4, "vps_rep_format_idx[i]" ); 905 } 906 } 907 } 908 #endif 909 865 910 #if JCTVC_M0458_INTERLAYER_RPS_SIG 866 911 WRITE_FLAG(vps->getMaxOneActiveRefLayerFlag(), "max_one_active_ref_layer_flag"); … … 909 954 } 910 955 #endif 911 956 #if REPN_FORMAT_IN_VPS 957 Void TEncCavlc::codeRepFormat ( RepFormat *repFormat ) 958 { 959 WRITE_CODE( repFormat->getChromaFormatVpsIdc(), 2, "chroma_format_idc" ); 960 961 if( repFormat->getChromaFormatVpsIdc() == 3 ) 962 { 963 WRITE_FLAG( repFormat->getSeparateColourPlaneVpsFlag(), "separate_colour_plane_flag"); 964 } 965 966 WRITE_CODE ( repFormat->getPicWidthVpsInLumaSamples (), 16, "pic_width_in_luma_samples" ); 967 WRITE_CODE ( repFormat->getPicHeightVpsInLumaSamples(), 16, "pic_height_in_luma_samples" ); 968 969 assert( repFormat->getBitDepthVpsLuma() >= 8 ); 970 assert( repFormat->getBitDepthVpsChroma() >= 8 ); 971 WRITE_CODE( repFormat->getBitDepthVpsLuma() - 8, 4, "bit_depth_luma_minus8" ); 972 WRITE_CODE( repFormat->getBitDepthVpsChroma() - 8, 4, "bit_depth_chroma_minus8" ); 973 974 } 975 #endif 912 976 #if VPS_VUI 913 977 Void TEncCavlc::codeVPSVUI (TComVPS *vps) … … 1052 1116 } 1053 1117 1118 #if REPN_FORMAT_IN_VPS 1119 // in the first version chroma_format_idc is equal to one, thus colour_plane_id will not be present 1120 assert( pcSlice->getChromaFormatIdc() == 1 ); 1121 #else 1054 1122 // in the first version chroma_format_idc is equal to one, thus colour_plane_id will not be present 1055 1123 assert (pcSlice->getSPS()->getChromaFormatIdc() == 1 ); 1124 #endif 1056 1125 // if( separate_colour_plane_flag == 1 ) 1057 1126 // colour_plane_id u(2) … … 1653 1722 Int iDQp = pcCU->getQP( uiAbsPartIdx ) - pcCU->getRefQP( uiAbsPartIdx ); 1654 1723 1724 #if REPN_FORMAT_IN_VPS 1725 Int qpBdOffsetY = pcCU->getSlice()->getQpBDOffsetY(); 1726 #else 1655 1727 Int qpBdOffsetY = pcCU->getSlice()->getSPS()->getQpBDOffsetY(); 1728 #endif 1656 1729 iDQp = (iDQp + 78 + qpBdOffsetY + (qpBdOffsetY/2)) % (52 + qpBdOffsetY) - 26 - (qpBdOffsetY/2); 1657 1730 -
branches/SHM-3.1-dev/source/Lib/TLibEncoder/TEncCavlc.h
r382 r389 90 90 Void codeVPSVUI (TComVPS *vps); 91 91 #endif 92 #if REPN_FORMAT_IN_VPS 93 Void codeRepFormat ( RepFormat *repFormat ); 94 #endif 92 95 Void codeVUI ( TComVUI *pcVUI, TComSPS* pcSPS ); 93 96 Void codeSPS ( TComSPS* pcSPS ); -
branches/SHM-3.1-dev/source/Lib/TLibEncoder/TEncCfg.h
r377 r389 101 101 102 102 std::istringstream &operator>>(std::istringstream &in, GOPEntry &entry); //input 103 104 #if REPN_FORMAT_IN_VPS 105 struct RepFormatCfg 106 { 107 Int m_chromaFormatIdc; 108 Bool m_separateColourPlaneFlag; 109 Int m_picWidthInLumaSamples; 110 Int m_picHeightInLumaSamples; 111 Int m_bitDepthLuma; 112 Int m_bitDepthChroma; 113 RepFormatCfg() 114 : m_chromaFormatIdc (CHROMA_420) 115 , m_separateColourPlaneFlag (0) 116 , m_picWidthInLumaSamples (352) 117 , m_picHeightInLumaSamples (288) 118 , m_bitDepthLuma (8) 119 , m_bitDepthChroma (8) 120 {} 121 }; 122 std::istringstream &operator>>(std::istringstream &in, RepFormatCfg &repFormatCfg); 123 #endif 124 103 125 //! \ingroup TLibEncoder 104 126 //! \{ -
branches/SHM-3.1-dev/source/Lib/TLibEncoder/TEncCu.cpp
r345 r389 412 412 Int iMaxQP; 413 413 Bool isAddLowestQP = false; 414 #if REPN_FORMAT_IN_VPS 415 Int lowestQP = -rpcTempCU->getSlice()->getQpBDOffsetY(); 416 #else 414 417 Int lowestQP = -rpcTempCU->getSlice()->getSPS()->getQpBDOffsetY(); 418 #endif 415 419 416 420 if( (g_uiMaxCUWidth>>uiDepth) >= rpcTempCU->getSlice()->getPPS()->getMinCuDQPSize() ) 417 421 { 418 422 Int idQP = m_pcEncCfg->getMaxDeltaQP(); 423 #if REPN_FORMAT_IN_VPS 419 424 iMinQP = Clip3( -rpcTempCU->getSlice()->getSPS()->getQpBDOffsetY(), MAX_QP, iBaseQP-idQP ); 420 425 iMaxQP = Clip3( -rpcTempCU->getSlice()->getSPS()->getQpBDOffsetY(), MAX_QP, iBaseQP+idQP ); 426 #else 427 iMinQP = Clip3( -rpcTempCU->getSlice()->getSPS()->getQpBDOffsetY(), MAX_QP, iBaseQP-idQP ); 428 iMaxQP = Clip3( -rpcTempCU->getSlice()->getSPS()->getQpBDOffsetY(), MAX_QP, iBaseQP+idQP ); 429 #endif 421 430 if ( (rpcTempCU->getSlice()->getSPS()->getUseLossless()) && (lowestQP < iMinQP) && rpcTempCU->getSlice()->getPPS()->getUseDQP() ) 422 431 { … … 450 459 Bool bSliceStart = pcSlice->getSliceSegmentCurStartCUAddr()>rpcTempCU->getSCUAddr()&&pcSlice->getSliceSegmentCurStartCUAddr()<rpcTempCU->getSCUAddr()+rpcTempCU->getTotalNumPart(); 451 460 Bool bSliceEnd = (pcSlice->getSliceSegmentCurEndCUAddr()>rpcTempCU->getSCUAddr()&&pcSlice->getSliceSegmentCurEndCUAddr()<rpcTempCU->getSCUAddr()+rpcTempCU->getTotalNumPart()); 461 #if REPN_FORMAT_IN_VPS 462 Bool bInsidePicture = ( uiRPelX < rpcBestCU->getSlice()->getPicWidthInLumaSamples() ) && ( uiBPelY < rpcBestCU->getSlice()->getPicHeightInLumaSamples() ); 463 #else 452 464 Bool bInsidePicture = ( uiRPelX < rpcBestCU->getSlice()->getSPS()->getPicWidthInLumaSamples() ) && ( uiBPelY < rpcBestCU->getSlice()->getSPS()->getPicHeightInLumaSamples() ); 465 #endif 453 466 // We need to split, so don't try these modes. 454 467 if(!bSliceEnd && !bSliceStart && bInsidePicture ) … … 827 840 { 828 841 Int idQP = m_pcEncCfg->getMaxDeltaQP(); 842 #if REPN_FORMAT_IN_VPS 843 iMinQP = Clip3( -rpcTempCU->getSlice()->getQpBDOffsetY(), MAX_QP, iBaseQP-idQP ); 844 iMaxQP = Clip3( -rpcTempCU->getSlice()->getQpBDOffsetY(), MAX_QP, iBaseQP+idQP ); 845 #else 829 846 iMinQP = Clip3( -rpcTempCU->getSlice()->getSPS()->getQpBDOffsetY(), MAX_QP, iBaseQP-idQP ); 830 847 iMaxQP = Clip3( -rpcTempCU->getSlice()->getSPS()->getQpBDOffsetY(), MAX_QP, iBaseQP+idQP ); 848 #endif 831 849 if ( (rpcTempCU->getSlice()->getSPS()->getUseLossless()) && (lowestQP < iMinQP) && rpcTempCU->getSlice()->getPPS()->getUseDQP() ) 832 850 { … … 890 908 891 909 Bool bInSlice = pcSubBestPartCU->getSCUAddr()+pcSubBestPartCU->getTotalNumPart()>pcSlice->getSliceSegmentCurStartCUAddr()&&pcSubBestPartCU->getSCUAddr()<pcSlice->getSliceSegmentCurEndCUAddr(); 910 #if REPN_FORMAT_IN_VPS 911 if(bInSlice && ( pcSubBestPartCU->getCUPelX() < pcSlice->getPicWidthInLumaSamples() ) && ( pcSubBestPartCU->getCUPelY() < pcSlice->getPicHeightInLumaSamples() ) ) 912 #else 892 913 if(bInSlice && ( pcSubBestPartCU->getCUPelX() < pcSlice->getSPS()->getPicWidthInLumaSamples() ) && ( pcSubBestPartCU->getCUPelY() < pcSlice->getSPS()->getPicHeightInLumaSamples() ) ) 914 #endif 893 915 { 894 916 if( m_bUseSBACRD ) … … 1038 1060 UInt uiPosX = ( uiExternalAddress % pcPic->getFrameWidthInCU() ) * g_uiMaxCUWidth+ g_auiRasterToPelX[ g_auiZscanToRaster[uiInternalAddress] ]; 1039 1061 UInt uiPosY = ( uiExternalAddress / pcPic->getFrameWidthInCU() ) * g_uiMaxCUHeight+ g_auiRasterToPelY[ g_auiZscanToRaster[uiInternalAddress] ]; 1062 #if REPN_FORMAT_IN_VPS 1063 UInt uiWidth = pcSlice->getPicWidthInLumaSamples(); 1064 UInt uiHeight = pcSlice->getPicHeightInLumaSamples(); 1065 #else 1040 1066 UInt uiWidth = pcSlice->getSPS()->getPicWidthInLumaSamples(); 1041 1067 UInt uiHeight = pcSlice->getSPS()->getPicHeightInLumaSamples(); 1068 #endif 1042 1069 while(uiPosX>=uiWidth||uiPosY>=uiHeight) 1043 1070 { … … 1136 1163 iQpOffset = Int(floor( dQpOffset + 0.49999 )); 1137 1164 } 1165 #if REPN_FORMAT_IN_VPS 1166 return Clip3(-pcCU->getSlice()->getQpBDOffsetY(), MAX_QP, iBaseQp+iQpOffset ); 1167 #else 1138 1168 return Clip3(-pcCU->getSlice()->getSPS()->getQpBDOffsetY(), MAX_QP, iBaseQp+iQpOffset ); 1169 #endif 1139 1170 } 1140 1171 … … 1160 1191 pcSlice->getSliceSegmentCurStartCUAddr() < pcPic->getPicSym()->getInverseCUOrderMap(pcCU->getAddr())*pcCU->getPic()->getNumPartInCU()+uiAbsPartIdx+( pcPic->getNumPartInCU() >> (uiDepth<<1) ); 1161 1192 // We need to split, so don't try these modes. 1193 #if REPN_FORMAT_IN_VPS 1194 if(!bSliceStart&&( uiRPelX < pcSlice->getPicWidthInLumaSamples() ) && ( uiBPelY < pcSlice->getPicHeightInLumaSamples() ) ) 1195 #else 1162 1196 if(!bSliceStart&&( uiRPelX < pcSlice->getSPS()->getPicWidthInLumaSamples() ) && ( uiBPelY < pcSlice->getSPS()->getPicHeightInLumaSamples() ) ) 1197 #endif 1163 1198 { 1164 1199 m_pcEntropyCoder->encodeSplitFlag( pcCU, uiAbsPartIdx, uiDepth ); … … 1181 1216 uiTPelY = pcCU->getCUPelY() + g_auiRasterToPelY[ g_auiZscanToRaster[uiAbsPartIdx] ]; 1182 1217 Bool bInSlice = pcCU->getSCUAddr()+uiAbsPartIdx+uiQNumParts>pcSlice->getSliceSegmentCurStartCUAddr()&&pcCU->getSCUAddr()+uiAbsPartIdx<pcSlice->getSliceSegmentCurEndCUAddr(); 1218 #if REPN_FORMAT_IN_VPS 1219 if(bInSlice&&( uiLPelX < pcSlice->getPicWidthInLumaSamples() ) && ( uiTPelY < pcSlice->getPicHeightInLumaSamples() ) ) 1220 #else 1183 1221 if(bInSlice&&( uiLPelX < pcSlice->getSPS()->getPicWidthInLumaSamples() ) && ( uiTPelY < pcSlice->getSPS()->getPicHeightInLumaSamples() ) ) 1222 #endif 1184 1223 { 1185 1224 xEncodeCU( pcCU, uiAbsPartIdx, uiDepth+1 ); … … 1706 1745 Bool bSliceEnd = pcSlice->getSliceSegmentCurEndCUAddr() > rpcPic->getPicSym()->getInverseCUOrderMap(pcCU->getAddr())*pcCU->getPic()->getNumPartInCU()+uiAbsPartIdx && 1707 1746 pcSlice->getSliceSegmentCurEndCUAddr() < rpcPic->getPicSym()->getInverseCUOrderMap(pcCU->getAddr())*pcCU->getPic()->getNumPartInCU()+uiAbsPartIdx+( pcCU->getPic()->getNumPartInCU() >> (uiDepth<<1) ); 1747 #if REPN_FORMAT_IN_VPS 1748 if(!bSliceEnd && !bSliceStart && ( uiRPelX < pcSlice->getPicWidthInLumaSamples() ) && ( uiBPelY < pcSlice->getPicHeightInLumaSamples() ) ) 1749 #else 1708 1750 if(!bSliceEnd && !bSliceStart && ( uiRPelX < pcSlice->getSPS()->getPicWidthInLumaSamples() ) && ( uiBPelY < pcSlice->getSPS()->getPicHeightInLumaSamples() ) ) 1751 #endif 1709 1752 { 1710 1753 UInt uiAbsPartIdxInRaster = g_auiZscanToRaster[uiAbsPartIdx]; … … 1727 1770 Bool bInSlice = rpcPic->getPicSym()->getInverseCUOrderMap(pcCU->getAddr())*pcCU->getPic()->getNumPartInCU()+uiAbsPartIdx+uiQNumParts > pcSlice->getSliceSegmentCurStartCUAddr() && 1728 1771 rpcPic->getPicSym()->getInverseCUOrderMap(pcCU->getAddr())*pcCU->getPic()->getNumPartInCU()+uiAbsPartIdx < pcSlice->getSliceSegmentCurEndCUAddr(); 1772 #if REPN_FORMAT_IN_VPS 1773 if(bInSlice&&( uiSubCULPelX < pcSlice->getPicWidthInLumaSamples() ) && ( uiSubCUTPelY < pcSlice->getPicHeightInLumaSamples() ) ) 1774 #else 1729 1775 if(bInSlice&&( uiSubCULPelX < pcSlice->getSPS()->getPicWidthInLumaSamples() ) && ( uiSubCUTPelY < pcSlice->getSPS()->getPicHeightInLumaSamples() ) ) 1776 #endif 1730 1777 { 1731 1778 xCopyYuv2Pic( rpcPic, uiCUAddr, uiAbsPartIdx, uiDepth+1, uiSrcDepth, pcCU, uiSubCULPelX, uiSubCUTPelY ); // Copy Yuv data to picture Yuv -
branches/SHM-3.1-dev/source/Lib/TLibEncoder/TEncGOP.cpp
r379 r389 1095 1095 } 1096 1096 1097 #if REPN_FORMAT_IN_VPS 1098 sliceQP = Clip3( -pcSlice->getQpBDOffsetY(), MAX_QP, sliceQP ); 1099 #else 1097 1100 sliceQP = Clip3( -pcSlice->getSPS()->getQpBDOffsetY(), MAX_QP, sliceQP ); 1101 #endif 1098 1102 m_pcRateCtrl->getRCPic()->setPicEstQP( sliceQP ); 1099 1103 … … 1108 1112 UInt uiPosX = ( uiExternalAddress % pcPic->getFrameWidthInCU() ) * g_uiMaxCUWidth+ g_auiRasterToPelX[ g_auiZscanToRaster[uiInternalAddress] ]; 1109 1113 UInt uiPosY = ( uiExternalAddress / pcPic->getFrameWidthInCU() ) * g_uiMaxCUHeight+ g_auiRasterToPelY[ g_auiZscanToRaster[uiInternalAddress] ]; 1114 #if REPN_FORMAT_IN_VPS 1115 UInt uiWidth = pcSlice->getPicWidthInLumaSamples(); 1116 UInt uiHeight = pcSlice->getPicHeightInLumaSamples(); 1117 #else 1110 1118 UInt uiWidth = pcSlice->getSPS()->getPicWidthInLumaSamples(); 1111 1119 UInt uiHeight = pcSlice->getSPS()->getPicHeightInLumaSamples(); 1120 #endif 1112 1121 while(uiPosX>=uiWidth||uiPosY>=uiHeight) 1113 1122 { … … 1656 1665 uiPosX = ( uiExternalAddress % pcPic->getFrameWidthInCU() ) * g_uiMaxCUWidth+ g_auiRasterToPelX[ g_auiZscanToRaster[uiInternalAddress] ]; 1657 1666 uiPosY = ( uiExternalAddress / pcPic->getFrameWidthInCU() ) * g_uiMaxCUHeight+ g_auiRasterToPelY[ g_auiZscanToRaster[uiInternalAddress] ]; 1667 1668 #if REPN_FORMAT_IN_VPS 1669 uiWidth = pcSlice->getPicWidthInLumaSamples(); 1670 uiHeight = pcSlice->getPicHeightInLumaSamples(); 1671 #else 1658 1672 uiWidth = pcSlice->getSPS()->getPicWidthInLumaSamples(); 1659 1673 uiHeight = pcSlice->getSPS()->getPicHeightInLumaSamples(); 1674 #endif 1660 1675 while(uiPosX>=uiWidth||uiPosY>=uiHeight) 1661 1676 { -
branches/SHM-3.1-dev/source/Lib/TLibEncoder/TEncSbac.cpp
r345 r389 804 804 Int iDQp = pcCU->getQP( uiAbsPartIdx ) - pcCU->getRefQP( uiAbsPartIdx ); 805 805 806 #if REPN_FORMAT_IN_VPS 807 Int qpBdOffsetY = pcCU->getSlice()->getQpBDOffsetY(); 808 #else 806 809 Int qpBdOffsetY = pcCU->getSlice()->getSPS()->getQpBDOffsetY(); 810 #endif 807 811 iDQp = (iDQp + 78 + qpBdOffsetY + (qpBdOffsetY/2)) % (52 + qpBdOffsetY) - 26 - (qpBdOffsetY/2); 808 812 -
branches/SHM-3.1-dev/source/Lib/TLibEncoder/TEncSearch.cpp
r345 r389 1104 1104 pcCU ->setTrIdxSubParts ( uiTrDepth, uiAbsPartIdx, uiFullDepth ); 1105 1105 1106 #if REPN_FORMAT_IN_VPS 1107 m_pcTrQuant->setQPforQuant ( pcCU->getQP( 0 ), TEXT_LUMA, pcCU->getSlice()->getQpBDOffsetY(), 0 ); 1108 #else 1106 1109 m_pcTrQuant->setQPforQuant ( pcCU->getQP( 0 ), TEXT_LUMA, pcCU->getSlice()->getSPS()->getQpBDOffsetY(), 0 ); 1110 #endif 1107 1111 1108 1112 #if RDOQ_CHROMA_LAMBDA … … 4610 4614 while((uiWidth>>uiMaxTrMode) < (g_uiMaxCUWidth>>g_uiMaxCUDepth)) uiMaxTrMode--; 4611 4615 4616 #if REPN_FORMAT_IN_VPS 4617 qpMin = bHighPass ? Clip3( -pcCU->getSlice()->getQpBDOffsetY(), MAX_QP, pcCU->getQP(0) - m_iMaxDeltaQP ) : pcCU->getQP( 0 ); 4618 qpMax = bHighPass ? Clip3( -pcCU->getSlice()->getQpBDOffsetY(), MAX_QP, pcCU->getQP(0) + m_iMaxDeltaQP ) : pcCU->getQP( 0 ); 4619 #else 4612 4620 qpMin = bHighPass ? Clip3( -pcCU->getSlice()->getSPS()->getQpBDOffsetY(), MAX_QP, pcCU->getQP(0) - m_iMaxDeltaQP ) : pcCU->getQP( 0 ); 4613 4621 qpMax = bHighPass ? Clip3( -pcCU->getSlice()->getSPS()->getQpBDOffsetY(), MAX_QP, pcCU->getQP(0) + m_iMaxDeltaQP ) : pcCU->getQP( 0 ); 4622 #endif 4614 4623 4615 4624 rpcYuvResi->subtract( pcYuvOrg, pcYuvPred, 0, uiWidth ); … … 4860 4869 } 4861 4870 4871 #if REPN_FORMAT_IN_VPS 4872 m_pcTrQuant->setQPforQuant( pcCU->getQP( 0 ), TEXT_LUMA, pcCU->getSlice()->getQpBDOffsetY(), 0 ); 4873 #else 4862 4874 m_pcTrQuant->setQPforQuant( pcCU->getQP( 0 ), TEXT_LUMA, pcCU->getSlice()->getSPS()->getQpBDOffsetY(), 0 ); 4875 #endif 4863 4876 4864 4877 #if RDOQ_CHROMA_LAMBDA … … 4946 4959 Pel *pcResiCurrY = m_pcQTTempTComYuv[ uiQTTempAccessLayer ].getLumaAddr( absTUPartIdx ); 4947 4960 4961 #if REPN_FORMAT_IN_VPS 4948 4962 m_pcTrQuant->setQPforQuant( pcCU->getQP( 0 ), TEXT_LUMA, pcCU->getSlice()->getSPS()->getQpBDOffsetY(), 0 ); 4963 #else 4964 m_pcTrQuant->setQPforQuant( pcCU->getQP( 0 ), TEXT_LUMA, pcCU->getSlice()->getSPS()->getQpBDOffsetY(), 0 ); 4965 #endif 4949 4966 4950 4967 Int scalingListType = 3 + g_eTTable[(Int)TEXT_LUMA]; … … 5195 5212 } 5196 5213 5214 #if REPN_FORMAT_IN_VPS 5215 m_pcTrQuant->setQPforQuant( pcCU->getQP( 0 ), TEXT_LUMA, pcCU->getSlice()->getQpBDOffsetY(), 0 ); 5216 #else 5197 5217 m_pcTrQuant->setQPforQuant( pcCU->getQP( 0 ), TEXT_LUMA, pcCU->getSlice()->getSPS()->getQpBDOffsetY(), 0 ); 5218 #endif 5198 5219 5199 5220 #if RDOQ_CHROMA_LAMBDA … … 5214 5235 const UInt uiTsSingleBitsY = m_pcEntropyCoder->getNumberOfWrittenBits(); 5215 5236 5237 #if REPN_FORMAT_IN_VPS 5238 m_pcTrQuant->setQPforQuant( pcCU->getQP( 0 ), TEXT_LUMA, pcCU->getSlice()->getQpBDOffsetY(), 0 ); 5239 #else 5216 5240 m_pcTrQuant->setQPforQuant( pcCU->getQP( 0 ), TEXT_LUMA, pcCU->getSlice()->getSPS()->getQpBDOffsetY(), 0 ); 5241 #endif 5217 5242 5218 5243 Int scalingListType = 3 + g_eTTable[(Int)TEXT_LUMA]; -
branches/SHM-3.1-dev/source/Lib/TLibEncoder/TEncSlice.cpp
r377 r389 260 260 if(eSliceType!=I_SLICE) 261 261 { 262 #if REPN_FORMAT_IN_VPS 263 if (!(( m_pcCfg->getMaxDeltaQP() == 0 ) && (dQP == -rpcSlice->getQpBDOffsetY() ) && (rpcSlice->getSPS()->getUseLossless()))) 264 #else 262 265 if (!(( m_pcCfg->getMaxDeltaQP() == 0 ) && (dQP == -rpcSlice->getSPS()->getQpBDOffsetY() ) && (rpcSlice->getSPS()->getUseLossless()))) 266 #endif 263 267 { 264 268 dQP += m_pcCfg->getGOPEntry(iGOPid).m_QPOffset; … … 327 331 } 328 332 333 #if REPN_FORMAT_IN_VPS 334 iQP = max( -rpcSlice->getQpBDOffsetY(), min( MAX_QP, (Int) floor( dQP + 0.5 ) ) ); 335 #else 329 336 iQP = max( -pSPS->getQpBDOffsetY(), min( MAX_QP, (Int) floor( dQP + 0.5 ) ) ); 337 #endif 330 338 331 339 m_pdRdPicLambda[iDQpIdx] = dLambda; … … 412 420 { 413 421 dQP = xGetQPValueAccordingToLambda( dLambda ); 422 #if REPN_FORMAT_IN_VPS 423 iQP = max( -rpcSlice->getQpBDOffsetY(), min( MAX_QP, (Int) floor( dQP + 0.5 ) ) ); 424 #else 414 425 iQP = max( -pSPS->getQpBDOffsetY(), min( MAX_QP, (Int) floor( dQP + 0.5 ) ) ); 426 #endif 415 427 } 416 428 … … 606 618 } 607 619 620 #if REPN_FORMAT_IN_VPS 621 qp = max( -pcSlice->getQpBDOffsetY(), min( MAX_QP, (Int) floor( recalQP + 0.5 ) ) ); 622 #else 608 623 qp = max( -pcSPS->getQpBDOffsetY(), min( MAX_QP, (Int) floor( recalQP + 0.5 ) ) ); 624 #endif 609 625 610 626 m_pdRdPicLambda[deltqQpIdx] = lambda; … … 849 865 pcCU->initCU( rpcPic, uiCUAddr ); 850 866 867 #if REPN_FORMAT_IN_VPS 868 Int height = min( pcSlice->getSPS()->getMaxCUHeight(),pcSlice->getPicHeightInLumaSamples() - uiCUAddr / rpcPic->getFrameWidthInCU() * pcSlice->getSPS()->getMaxCUHeight() ); 869 Int width = min( pcSlice->getSPS()->getMaxCUWidth(), pcSlice->getPicWidthInLumaSamples() - uiCUAddr % rpcPic->getFrameWidthInCU() * pcSlice->getSPS()->getMaxCUWidth() ); 870 #else 851 871 Int height = min( pcSlice->getSPS()->getMaxCUHeight(),pcSlice->getSPS()->getPicHeightInLumaSamples() - uiCUAddr / rpcPic->getFrameWidthInCU() * pcSlice->getSPS()->getMaxCUHeight() ); 852 872 Int width = min( pcSlice->getSPS()->getMaxCUWidth(),pcSlice->getSPS()->getPicWidthInLumaSamples() - uiCUAddr % rpcPic->getFrameWidthInCU() * pcSlice->getSPS()->getMaxCUWidth() ); 873 #endif 853 874 854 875 iSumHad = m_pcCuEncoder->updateLCUDataISlice(pcCU, uiCUAddr, width, height); … … 1148 1169 #endif 1149 1170 1171 #if REPN_FORMAT_IN_VPS 1172 estQP = Clip3( -pcSlice->getQpBDOffsetY(), MAX_QP, estQP ); 1173 #else 1150 1174 estQP = Clip3( -pcSlice->getSPS()->getQpBDOffsetY(), MAX_QP, estQP ); 1175 #endif 1151 1176 1152 1177 m_pcRdCost->setLambda(estLambda); … … 1176 1201 #if !M0036_RC_IMPROVEMENT 1177 1202 UInt SAD = m_pcCuEncoder->getLCUPredictionSAD(); 1203 #if REPN_FORMAT_IN_VPS 1204 Int height = min( pcSlice->getSPS()->getMaxCUHeight(),pcSlice->getPicHeightInLumaSamples() - uiCUAddr / rpcPic->getFrameWidthInCU() * pcSlice->getSPS()->getMaxCUHeight() ); 1205 Int width = min( pcSlice->getSPS()->getMaxCUWidth(),pcSlice->>getPicWidthInLumaSamples() - uiCUAddr % rpcPic->getFrameWidthInCU() * pcSlice->getSPS()->getMaxCUWidth() ); 1206 #else 1178 1207 Int height = min( pcSlice->getSPS()->getMaxCUHeight(),pcSlice->getSPS()->getPicHeightInLumaSamples() - uiCUAddr / rpcPic->getFrameWidthInCU() * pcSlice->getSPS()->getMaxCUHeight() ); 1179 1208 Int width = min( pcSlice->getSPS()->getMaxCUWidth(),pcSlice->getSPS()->getPicWidthInLumaSamples() - uiCUAddr % rpcPic->getFrameWidthInCU() * pcSlice->getSPS()->getMaxCUWidth() ); 1209 #endif 1180 1210 Double MAD = (Double)SAD / (Double)(height * width); 1181 1211 MAD = MAD * MAD; … … 1253 1283 #if !M0036_RC_IMPROVEMENT 1254 1284 UInt SAD = m_pcCuEncoder->getLCUPredictionSAD(); 1285 #if REPN_FORMAT_IN_VPS 1286 Int height = min( pcSlice->getSPS()->getMaxCUHeight(),pcSlice->getPicHeightInLumaSamples() - uiCUAddr / rpcPic->getFrameWidthInCU() * pcSlice->getSPS()->getMaxCUHeight() ); 1287 Int width = min( pcSlice->getSPS()->getMaxCUWidth(),pcSlice->getPicWidthInLumaSamples() - uiCUAddr % rpcPic->getFrameWidthInCU() * pcSlice->getSPS()->getMaxCUWidth() ); 1288 #else 1255 1289 Int height = min( pcSlice->getSPS()->getMaxCUHeight(),pcSlice->getSPS()->getPicHeightInLumaSamples() - uiCUAddr / rpcPic->getFrameWidthInCU() * pcSlice->getSPS()->getMaxCUHeight() ); 1256 1290 Int width = min( pcSlice->getSPS()->getMaxCUWidth(),pcSlice->getSPS()->getPicWidthInLumaSamples() - uiCUAddr % rpcPic->getFrameWidthInCU() * pcSlice->getSPS()->getMaxCUWidth() ); 1291 #endif 1257 1292 Double MAD = (Double)SAD / (Double)(height * width); 1258 1293 MAD = MAD * MAD; … … 1919 1954 UInt uiPosX = ( uiExternalAddress % rpcPic->getFrameWidthInCU() ) * g_uiMaxCUWidth+ g_auiRasterToPelX[ g_auiZscanToRaster[uiInternalAddress] ]; 1920 1955 UInt uiPosY = ( uiExternalAddress / rpcPic->getFrameWidthInCU() ) * g_uiMaxCUHeight+ g_auiRasterToPelY[ g_auiZscanToRaster[uiInternalAddress] ]; 1956 #if REPN_FORMAT_IN_VPS 1957 UInt uiWidth = pcSlice->getPicWidthInLumaSamples(); 1958 UInt uiHeight = pcSlice->getPicHeightInLumaSamples(); 1959 #else 1921 1960 UInt uiWidth = pcSlice->getSPS()->getPicWidthInLumaSamples(); 1922 1961 UInt uiHeight = pcSlice->getSPS()->getPicHeightInLumaSamples(); 1962 #endif 1923 1963 while((uiPosX>=uiWidth||uiPosY>=uiHeight)&&!(uiPosX>=uiWidth&&uiPosY>=uiHeight)) 1924 1964 { … … 1942 1982 uiPosX = ( uiExternalAddress % rpcPic->getFrameWidthInCU() ) * g_uiMaxCUWidth+ g_auiRasterToPelX[ g_auiZscanToRaster[uiInternalAddress] ]; 1943 1983 uiPosY = ( uiExternalAddress / rpcPic->getFrameWidthInCU() ) * g_uiMaxCUHeight+ g_auiRasterToPelY[ g_auiZscanToRaster[uiInternalAddress] ]; 1984 #if REPN_FORMAT_IN_VPS 1985 uiWidth = pcSlice->getPicWidthInLumaSamples(); 1986 uiHeight = pcSlice->getPicHeightInLumaSamples(); 1987 #else 1944 1988 uiWidth = pcSlice->getSPS()->getPicWidthInLumaSamples(); 1945 1989 uiHeight = pcSlice->getSPS()->getPicHeightInLumaSamples(); 1990 #endif 1946 1991 while((uiPosX>=uiWidth||uiPosY>=uiHeight)&&!(uiPosX>=uiWidth&&uiPosY>=uiHeight)) 1947 1992 { -
branches/SHM-3.1-dev/source/Lib/TLibEncoder/TEncTop.cpp
r377 r389 679 679 } 680 680 681 #if REPN_FORMAT_IN_VPS 682 m_cSPS.setBitDepthY( m_cVPS.getVpsRepFormat( m_cVPS.getVpsRepFormatIdx( m_layerId ) )->getBitDepthVpsLuma() ); 683 m_cSPS.setBitDepthC( m_cVPS.getVpsRepFormat( m_cVPS.getVpsRepFormatIdx( m_layerId ) )->getBitDepthVpsChroma() ); 684 685 m_cSPS.setQpBDOffsetY ( 6*(m_cVPS.getVpsRepFormat( m_cVPS.getVpsRepFormatIdx( m_layerId ) )->getBitDepthVpsLuma() - 8) ); 686 m_cSPS.setQpBDOffsetC ( 6*(m_cVPS.getVpsRepFormat( m_cVPS.getVpsRepFormatIdx( m_layerId ) )->getBitDepthVpsChroma() - 8) ); 687 #else 681 688 m_cSPS.setBitDepthY( g_bitDepthY ); 682 689 m_cSPS.setBitDepthC( g_bitDepthC ); … … 684 691 m_cSPS.setQpBDOffsetY ( 6*(g_bitDepthY - 8) ); 685 692 m_cSPS.setQpBDOffsetC ( 6*(g_bitDepthC - 8) ); 693 #endif 686 694 687 695 m_cSPS.setUseSAO( m_bUseSAO ); … … 745 753 Bool bUseDQP = (getMaxCuDQPDepth() > 0)? true : false; 746 754 755 #if REPN_FORMAT_IN_VPS 756 Int lowestQP; 757 if( m_layerId == 0 || m_cSPS.getUpdateRepFormatFlag() ) 758 { 759 lowestQP = - m_cSPS.getQpBDOffsetY(); 760 } 761 else 762 { 763 lowestQP = - (m_cVPS.getVpsRepFormat( m_cVPS.getVpsRepFormatIdx( m_layerId ) )->getBitDepthVpsLuma() - 8) * 6; 764 } 765 #else 747 766 Int lowestQP = - m_cSPS.getQpBDOffsetY(); 767 #endif 748 768 749 769 if(getUseLossless()) … … 1212 1232 1213 1233 #if SVC_EXTENSION 1234 #if !REPN_FORMAT_IN_VPS 1214 1235 Void TEncTop::xInitILRP() 1215 1236 { … … 1245 1266 } 1246 1267 } 1247 1268 #else 1269 Void TEncTop::xInitILRP() 1270 { 1271 RepFormat *repFormat = m_cVPS.getVpsRepFormat( m_cVPS.getVpsRepFormatIdx( m_layerId ) ); 1272 Int bitDepthY,bitDepthC,picWidth,picHeight; 1273 1274 if( m_cSPS.getUpdateRepFormatFlag() ) 1275 { 1276 bitDepthY = m_cSPS.getBitDepthY(); 1277 bitDepthC = m_cSPS.getBitDepthC(); 1278 picWidth = m_cSPS.getPicWidthInLumaSamples(); 1279 picHeight = m_cSPS.getPicHeightInLumaSamples(); 1280 } 1281 else 1282 { 1283 bitDepthY = repFormat->getBitDepthVpsLuma(); 1284 bitDepthC = repFormat->getBitDepthVpsChroma(); 1285 picWidth = repFormat->getPicWidthVpsInLumaSamples(); 1286 picHeight = repFormat->getPicHeightVpsInLumaSamples(); 1287 } 1288 1289 if(m_layerId > 0) 1290 { 1291 g_bitDepthY = bitDepthY; 1292 g_bitDepthC = bitDepthC; 1293 g_uiMaxCUWidth = m_cSPS.getMaxCUWidth(); 1294 g_uiMaxCUHeight = m_cSPS.getMaxCUHeight(); 1295 g_uiMaxCUDepth = m_cSPS.getMaxCUDepth(); 1296 g_uiAddCUDepth = max (0, m_cSPS.getLog2MinCodingBlockSize() - (Int)m_cSPS.getQuadtreeTULog2MinSize() ); 1297 1298 Int numReorderPics[MAX_TLAYER]; 1299 Window &conformanceWindow = m_cSPS.getConformanceWindow(); 1300 Window defaultDisplayWindow = m_cSPS.getVuiParametersPresentFlag() ? m_cSPS.getVuiParameters()->getDefaultDisplayWindow() : Window(); 1301 1302 if (m_cIlpPic[0] == NULL) 1303 { 1304 for (Int j=0; j < MAX_LAYERS /*MAX_NUM_REF*/; j++) // consider to set to NumDirectRefLayers[LayerIdInVps[nuh_layer_id]] 1305 { 1306 m_cIlpPic[j] = new TComPic; 1307 #if SVC_UPSAMPLING 1308 m_cIlpPic[j]->create(picWidth, picHeight, g_uiMaxCUWidth, g_uiMaxCUHeight, g_uiMaxCUDepth, conformanceWindow, defaultDisplayWindow, numReorderPics, &m_cSPS, true); 1309 #else 1310 m_cIlpPic[j]->create(m_iSourceWidth, m_iSourceHeight, g_uiMaxCUWidth, g_uiMaxCUHeight, g_uiMaxCUDepth, conformanceWindow, defaultDisplayWindow, numReorderPics, true); 1311 #endif 1312 for (Int i=0; i<m_cIlpPic[j]->getPicSym()->getNumberOfCUsInFrame(); i++) 1313 { 1314 m_cIlpPic[j]->getPicSym()->getCU(i)->initCU(m_cIlpPic[j], i); 1315 } 1316 } 1317 } 1318 } 1319 } 1320 #endif 1248 1321 Void TEncTop::setILRPic(TComPic *pcPic) 1249 1322 {
Note: See TracChangeset for help on using the changeset viewer.