software encoding