|
#ifndef STC_ML_H |
|
#define STC_ML_H |
|
|
|
#include <limits> |
|
#include "common.h" |
|
#include "stc_embed_c.h" |
|
#include "stc_extract_c.h" |
|
|
|
typedef unsigned int uint; |
|
typedef unsigned char u8; |
|
|
|
const float F_INF = std::numeric_limits<float>::infinity(); |
|
const float D_INF = std::numeric_limits<double>::infinity(); |
|
|
|
|
|
|
|
|
|
|
|
float stc_pm1_pls_embed(uint cover_length, int* cover, float* costs, uint message_length, u8* message, |
|
uint stc_constraint_height, float wet_cost, |
|
int* stego, uint* num_msg_bits, uint &max_trials, float* coding_loss = 0); |
|
|
|
float stc_pm1_dls_embed(uint cover_length, int* cover, float* costs, uint message_length, u8* message, float target_distortion, |
|
uint stc_constraint_height, float expected_coding_loss, float wet_cost, |
|
int* stego, uint* num_msg_bits, uint &max_trials, float* coding_loss = 0); |
|
|
|
|
|
|
|
float stc_pm2_pls_embed(uint cover_length, int* cover, float* costs, uint message_length, u8* message, |
|
uint stc_constraint_height, float wet_cost, |
|
int* stego, uint* num_msg_bits, uint &max_trials, float* coding_loss = 0); |
|
|
|
float stc_pm2_dls_embed(uint cover_length, int* cover, float* costs, uint message_length, u8* message, float target_distortion, |
|
uint stc_constraint_height, float expected_coding_loss, float wet_cost, |
|
int* stego, uint* num_msg_bits, uint &max_trials, float* coding_loss = 0); |
|
|
|
|
|
|
|
float stc_ml1_embed(uint cover_length, int* cover, short* direction, float* costs, uint message_length, u8* message, float target_distortion, |
|
uint stc_constraint_height, float expected_coding_loss, |
|
int* stego, uint* num_msg_bits, uint &max_trials, float* coding_loss = 0); |
|
|
|
float stc_ml2_embed(uint cover_length, float* costs, int* stego_values, uint message_length, u8* message, float target_distortion, |
|
uint stc_constraint_height, float expected_coding_loss, |
|
int* stego, uint* num_msg_bits, uint &max_trials, float* coding_loss = 0); |
|
|
|
float stc_ml3_embed(uint cover_length, float* costs, int* stego_values, uint message_length, u8* message, float target_distortion, |
|
uint stc_constraint_height, float expected_coding_loss, |
|
int* stego, uint* num_msg_bits, uint &max_trials, float* coding_loss = 0); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void stc_ml_extract(uint stego_length, int* stego, uint num_of_layers, uint* num_msg_bits, |
|
uint stc_constraint_height, |
|
u8* message); |
|
|
|
#endif |
|
|