wmbench — image watermarking benchmark

Quality vs. extraction rate

One point per algorithm. X = extraction rate (fraction of images where the extracted watermark ID exactly equals the embedded one); Y = the selected quality metric.






Timing (CPU) — trustmark_Q_40: embed 0.081s / extract 0.019s · trustmark_Q_61: embed 0.083s / extract 0.018s · trustmark_Q_68: embed 0.083s / extract 0.019s · trustmark_Q_75: embed 0.083s / extract 0.018s · trustmark_Q_100: embed 0.084s / extract 0.018s · trustmark_P_40: embed 0.076s / extract 0.018s · trustmark_P_61: embed 0.076s / extract 0.018s · trustmark_P_68: embed 0.077s / extract 0.018s · trustmark_P_75: embed 0.075s / extract 0.017s · trustmark_P_100: embed 0.075s / extract 0.017s · trustmark_B_40: embed 0.088s / extract 0.020s · trustmark_B_61: embed 0.085s / extract 0.019s · trustmark_B_68: embed 0.084s / extract 0.018s · trustmark_B_75: embed 0.085s / extract 0.019s · trustmark_B_100: embed 0.085s / extract 0.019s · trustmark_C_40: embed 0.087s / extract 0.012s · trustmark_C_61: embed 0.086s / extract 0.012s · trustmark_C_68: embed 0.085s / extract 0.012s · trustmark_C_75: embed 0.083s / extract 0.011s · trustmark_C_100: embed 0.084s / extract 0.011s · pixelseal_sw0.2: embed 0.231s / extract 0.318s · pixelseal_sw0.4: embed 0.224s / extract 0.282s · wam_sw2.0: embed 0.152s / extract 0.137s · wam_sw1.0: embed 0.168s / extract 0.137s

Watermarking algorithm settings

Configuration each algorithm ran with (all CPU).

AlgorithmSettings used
trustmark_Q_40 model_type = Q · device = cpu · ecc = BCH_SUPER · payload_bits = 40 · wm_strength = 1.0
trustmark_Q_61 model_type = Q · device = cpu · ecc = BCH_5 · payload_bits = 61 · wm_strength = 1.0
trustmark_Q_68 model_type = Q · device = cpu · ecc = BCH_4 · payload_bits = 68 · wm_strength = 1.0
trustmark_Q_75 model_type = Q · device = cpu · ecc = BCH_3 · payload_bits = 75 · wm_strength = 1.0
trustmark_Q_100 model_type = Q · device = cpu · ecc = NONE · payload_bits = 100 · wm_strength = 1.0
trustmark_P_40 model_type = P · device = cpu · ecc = BCH_SUPER · payload_bits = 40 · wm_strength = 1.0
trustmark_P_61 model_type = P · device = cpu · ecc = BCH_5 · payload_bits = 61 · wm_strength = 1.0
trustmark_P_68 model_type = P · device = cpu · ecc = BCH_4 · payload_bits = 68 · wm_strength = 1.0
trustmark_P_75 model_type = P · device = cpu · ecc = BCH_3 · payload_bits = 75 · wm_strength = 1.0
trustmark_P_100 model_type = P · device = cpu · ecc = NONE · payload_bits = 100 · wm_strength = 1.0
trustmark_B_40 model_type = B · device = cpu · ecc = BCH_SUPER · payload_bits = 40 · wm_strength = 1.0
trustmark_B_61 model_type = B · device = cpu · ecc = BCH_5 · payload_bits = 61 · wm_strength = 1.0
trustmark_B_68 model_type = B · device = cpu · ecc = BCH_4 · payload_bits = 68 · wm_strength = 1.0
trustmark_B_75 model_type = B · device = cpu · ecc = BCH_3 · payload_bits = 75 · wm_strength = 1.0
trustmark_B_100 model_type = B · device = cpu · ecc = NONE · payload_bits = 100 · wm_strength = 1.0
trustmark_C_40 model_type = C · device = cpu · ecc = BCH_SUPER · payload_bits = 40 · wm_strength = 1.0
trustmark_C_61 model_type = C · device = cpu · ecc = BCH_5 · payload_bits = 61 · wm_strength = 1.0
trustmark_C_68 model_type = C · device = cpu · ecc = BCH_4 · payload_bits = 68 · wm_strength = 1.0
trustmark_C_75 model_type = C · device = cpu · ecc = BCH_3 · payload_bits = 75 · wm_strength = 1.0
trustmark_C_100 model_type = C · device = cpu · ecc = NONE · payload_bits = 100 · wm_strength = 1.0
pixelseal_sw0.2 model = pixelseal · device = cpu · payload_bits = 256 · scaling_w = 0.2 · scaling_mult = 1.0
pixelseal_sw0.4 model = pixelseal · device = cpu · payload_bits = 256 · scaling_w = 0.4 · scaling_mult = 2.0
wam_sw2.0 checkpoint = checkpoint.pth · device = cpu · payload_bits = 32 · img_size = 256 · scaling_w = 2.0
wam_sw1.0 checkpoint = checkpoint.pth · device = cpu · payload_bits = 32 · img_size = 256 · scaling_w = 1.0

Image viewer



Distortion preview

Each distortion applied to the source image currently open in the viewer above (view-only).