void readResidual ( BitInputStream is , int predictorOrder , int partitionOrder , Header header , int [ ] residual ) throws IOException { //System.out.println("readREsidual Pred="+predictorOrder+" part="+partitionOrder); int sample = 0 ; int partitions = 1 << partitionOrder ; int partitionSamples = partitionOrder > 0 ? header . blockSize >> partitionOrder : header . blockSize - predictorOrder ; contents . ensureSize ( Math . max ( 6 , partitionOrder ) ) ; contents . parameters = new int [ partitions ] ; for ( int partition = 0 ; partition < partitions ; partition ++ ) { int riceParameter = is . readRawUInt ( ENTROPY_CODING_METHOD_PARTITIONED_RICE_PARAMETER_LEN ) ; contents . parameters [ partition ] = riceParameter ; if ( riceParameter < ENTROPY_CODING_METHOD_PARTITIONED_RICE_ESCAPE_PARAMETER ) { int u = ( partitionOrder == 0 || partition > 0 ) ? partitionSamples : partitionSamples - predictorOrder ; is . readRiceSignedBlock ( residual , sample , u , riceParameter ) ; sample += u ; } else { riceParameter = is . readRawUInt ( ENTROPY_CODING_METHOD_PARTITIONED_RICE_RAW_LEN ) ; contents . rawBits [ partition ] = riceParameter ; for ( int u = ( partitionOrder == 0 || partition > 0 ) ? 0 : predictorOrder ; u < partitionSamples ; u ++ , sample ++ ) { residual [ sample ] = is . readRawInt ( riceParameter ) ; } } } }
Read compressed signal residual data .