linear decoder