Exemplo n.º 1
0
void StringModel::WriteModel(ByteWriter* byte_writer,
                             size_t block_index) const {
    for (int i = 0; i < 255; ++i ) {
        int code = CastInt(char_prob_[i], 16);
        byte_writer->Write16Bit(code, block_index);
    } 
    for (int i = 0; i < 63; ++i ) {
        int code = CastInt(length_prob_[i], 8);
        byte_writer->WriteByte(code, block_index);
    }
}
Exemplo n.º 2
0
void TableCategorical::WriteModel(ByteWriter* byte_writer,
                                  size_t block_index) const {
    // Write Model Description Prefix
    byte_writer->WriteByte(predictor_list_.size(), block_index);
    byte_writer->WriteByte(cell_size_, block_index);
    for (size_t i = 0; i < predictor_list_.size(); ++i )
        byte_writer->Write16Bit(predictor_list_[i], block_index);
    byte_writer->Write16Bit(target_range_, block_index);

    // Write Model Parameters
    size_t table_size = dynamic_list_.size();
    for (size_t i = 0; i < table_size; ++i ) {
        std::vector<Prob> prob_segs = dynamic_list_[i].prob;
        for (size_t j = 0; j < prob_segs.size(); ++j ) {
            int code = CastInt(prob_segs[j], cell_size_);
            if (cell_size_ == 16) {
                byte_writer->Write16Bit(code, block_index);
            } else {
                byte_writer->WriteByte(code, block_index);
            }
        }
    }
}
void ColorModel::WriteModel(db_compress::ByteWriter* byte_writer, size_t block_index) const {
    numeric_model_->WriteModel(byte_writer, block_index);
    byte_writer->Write16Bit(CastInt(zero_prob_, 16), block_index);
}