2011-07-07 08:21:25 +00:00
|
|
|
/*
|
Hi Tina,
I have uploaded this patch for your review. I have done an extensive test to be sure that removing of tables does not create any problem.
The test file, is called test_lpc.c which requires a hack to standard iSAC. The test computes LPC coefficients, then encodes and decodes with old and new (size-reduced) tables. It compares the results is all steps. I have ran the test over large set of files, more then 51 hours of audio, and there was no error.
I tried to do no formatting so the review to be easier, but I know it can be a tricky CL. Hopefully, the test file helps you to be more confident on the CL.
Thanks,... Turaj
In this change list the LPC tables associated with mode 1 & 2 are remoded, and necessary cahnges are made to other files.
The only model allowed is model number 0. Therefore, this CL breaks compatibility with iSAC released prior to 2.4.3. To avoid changing the bit-stream, we still keep the model number in the bit-stream.
entropy_coding.c is cleaned up, especially encoding of LAR had KLT transform of LPC gains which are removed now.
Review URL: https://webrtc-codereview.appspot.com/548004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2186 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-05-07 20:36:22 +00:00
|
|
|
* Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
|
2011-07-07 08:21:25 +00:00
|
|
|
*
|
|
|
|
|
* Use of this source code is governed by a BSD-style license
|
|
|
|
|
* that can be found in the LICENSE file in the root of the source
|
|
|
|
|
* tree. An additional intellectual property rights grant can be found
|
|
|
|
|
* in the file PATENTS. All contributing project authors may
|
|
|
|
|
* be found in the AUTHORS file in the root of the source tree.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* decode_B.c
|
|
|
|
|
*
|
|
|
|
|
* This file contains definition of funtions for decoding.
|
|
|
|
|
* Decoding of lower-band, including normal-decoding and RCU decoding.
|
|
|
|
|
* Decoding of upper-band, including 8-12 kHz, when the bandwidth is
|
|
|
|
|
* 0-12 kHz, and 8-16 kHz, when the bandwidth is 0-16 kHz.
|
|
|
|
|
*
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
#include <stdio.h>
|
|
|
|
|
#include <stdlib.h>
|
|
|
|
|
#include <string.h>
|
|
|
|
|
|
2018-02-01 14:12:55 +01:00
|
|
|
#include "modules/audio_coding/codecs/isac/main/source/codec.h"
|
|
|
|
|
#include "modules/audio_coding/codecs/isac/main/source/entropy_coding.h"
|
|
|
|
|
#include "modules/audio_coding/codecs/isac/main/source/pitch_estimator.h"
|
|
|
|
|
#include "modules/audio_coding/codecs/isac/main/source/bandwidth_estimator.h"
|
|
|
|
|
#include "modules/audio_coding/codecs/isac/main/source/structs.h"
|
|
|
|
|
#include "modules/audio_coding/codecs/isac/main/source/settings.h"
|
2018-04-27 04:31:53 +02:00
|
|
|
#include "modules/audio_coding/codecs/isac/main/source/pitch_filter.h"
|
2011-07-07 08:21:25 +00:00
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* function to decode the bitstream
|
|
|
|
|
* returns the total number of bytes in the stream
|
|
|
|
|
*/
|
2015-06-16 00:02:34 +02:00
|
|
|
int WebRtcIsac_DecodeLb(const TransformTables* transform_tables,
|
|
|
|
|
float* signal_out, ISACLBDecStruct* ISACdecLB_obj,
|
2013-04-09 00:28:06 +00:00
|
|
|
int16_t* current_framesamples,
|
|
|
|
|
int16_t isRCUPayload) {
|
Hi Tina,
I have uploaded this patch for your review. I have done an extensive test to be sure that removing of tables does not create any problem.
The test file, is called test_lpc.c which requires a hack to standard iSAC. The test computes LPC coefficients, then encodes and decodes with old and new (size-reduced) tables. It compares the results is all steps. I have ran the test over large set of files, more then 51 hours of audio, and there was no error.
I tried to do no formatting so the review to be easier, but I know it can be a tricky CL. Hopefully, the test file helps you to be more confident on the CL.
Thanks,... Turaj
In this change list the LPC tables associated with mode 1 & 2 are remoded, and necessary cahnges are made to other files.
The only model allowed is model number 0. Therefore, this CL breaks compatibility with iSAC released prior to 2.4.3. To avoid changing the bit-stream, we still keep the model number in the bit-stream.
entropy_coding.c is cleaned up, especially encoding of LAR had KLT transform of LPC gains which are removed now.
Review URL: https://webrtc-codereview.appspot.com/548004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2186 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-05-07 20:36:22 +00:00
|
|
|
int k;
|
2011-07-07 08:21:25 +00:00
|
|
|
int len, err;
|
2013-04-09 00:28:06 +00:00
|
|
|
int16_t bandwidthInd;
|
2011-07-07 08:21:25 +00:00
|
|
|
|
|
|
|
|
float LP_dec_float[FRAMESAMPLES_HALF];
|
|
|
|
|
float HP_dec_float[FRAMESAMPLES_HALF];
|
|
|
|
|
|
|
|
|
|
double LPw[FRAMESAMPLES_HALF];
|
|
|
|
|
double HPw[FRAMESAMPLES_HALF];
|
|
|
|
|
double LPw_pf[FRAMESAMPLES_HALF];
|
|
|
|
|
|
This CL contains some refactoring. Spectrum coding is main place that is affected. Therefore, I have bit-exactness test, test_spectrum_
coding.c, to be sure about the changelist. You can go through the test to be sure the changes are tested. However, I don't intend to commi
t the test, as it would be a source of confusion and requires hack to iSAC to be able to run the test. It is basically a one-time test.
The part which not covered in this test is where we limit payload for super-wideband bit-stream. I'll add a test for that as well.
I kept format changes at minimum in all files except isac.c, which was in bad shape, and coding changes were minimum. I'm planning to uplo
ad following patches to this CL where I try to address formatting issues. But I don't intend to change variable names, for the moment.
The refactoring is not yet finished, so you would find part of the code which could be cleaned up, especially KLT transforms in entropy_co
ding.c
Review URL: https://webrtc-codereview.appspot.com/580004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2359 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-06-04 20:04:58 +00:00
|
|
|
double lo_filt_coef[(ORDERLO + 1)*SUBFRAMES];
|
|
|
|
|
double hi_filt_coef[(ORDERHI + 1)*SUBFRAMES];
|
2011-07-07 08:21:25 +00:00
|
|
|
|
|
|
|
|
double real_f[FRAMESAMPLES_HALF];
|
|
|
|
|
double imag_f[FRAMESAMPLES_HALF];
|
|
|
|
|
|
|
|
|
|
double PitchLags[4];
|
|
|
|
|
double PitchGains[4];
|
|
|
|
|
double AvgPitchGain;
|
2013-04-09 00:28:06 +00:00
|
|
|
int16_t PitchGains_Q12[4];
|
|
|
|
|
int16_t AvgPitchGain_Q12;
|
2011-07-07 08:21:25 +00:00
|
|
|
|
|
|
|
|
float gain;
|
|
|
|
|
|
|
|
|
|
int frame_nb; /* counter */
|
This CL contains some refactoring. Spectrum coding is main place that is affected. Therefore, I have bit-exactness test, test_spectrum_
coding.c, to be sure about the changelist. You can go through the test to be sure the changes are tested. However, I don't intend to commi
t the test, as it would be a source of confusion and requires hack to iSAC to be able to run the test. It is basically a one-time test.
The part which not covered in this test is where we limit payload for super-wideband bit-stream. I'll add a test for that as well.
I kept format changes at minimum in all files except isac.c, which was in bad shape, and coding changes were minimum. I'm planning to uplo
ad following patches to this CL where I try to address formatting issues. But I don't intend to change variable names, for the moment.
The refactoring is not yet finished, so you would find part of the code which could be cleaned up, especially KLT transforms in entropy_co
ding.c
Review URL: https://webrtc-codereview.appspot.com/580004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2359 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-06-04 20:04:58 +00:00
|
|
|
int frame_mode; /* 0 30ms, 1 for 60ms */
|
|
|
|
|
/* Processed_samples: 480 (30, 60 ms). Cannot take other values. */
|
2011-07-07 08:21:25 +00:00
|
|
|
|
This CL contains some refactoring. Spectrum coding is main place that is affected. Therefore, I have bit-exactness test, test_spectrum_
coding.c, to be sure about the changelist. You can go through the test to be sure the changes are tested. However, I don't intend to commi
t the test, as it would be a source of confusion and requires hack to iSAC to be able to run the test. It is basically a one-time test.
The part which not covered in this test is where we limit payload for super-wideband bit-stream. I'll add a test for that as well.
I kept format changes at minimum in all files except isac.c, which was in bad shape, and coding changes were minimum. I'm planning to uplo
ad following patches to this CL where I try to address formatting issues. But I don't intend to change variable names, for the moment.
The refactoring is not yet finished, so you would find part of the code which could be cleaned up, especially KLT transforms in entropy_co
ding.c
Review URL: https://webrtc-codereview.appspot.com/580004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2359 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-06-04 20:04:58 +00:00
|
|
|
WebRtcIsac_ResetBitstream(&(ISACdecLB_obj->bitstr_obj));
|
2011-07-07 08:21:25 +00:00
|
|
|
|
|
|
|
|
len = 0;
|
|
|
|
|
|
This CL contains some refactoring. Spectrum coding is main place that is affected. Therefore, I have bit-exactness test, test_spectrum_
coding.c, to be sure about the changelist. You can go through the test to be sure the changes are tested. However, I don't intend to commi
t the test, as it would be a source of confusion and requires hack to iSAC to be able to run the test. It is basically a one-time test.
The part which not covered in this test is where we limit payload for super-wideband bit-stream. I'll add a test for that as well.
I kept format changes at minimum in all files except isac.c, which was in bad shape, and coding changes were minimum. I'm planning to uplo
ad following patches to this CL where I try to address formatting issues. But I don't intend to change variable names, for the moment.
The refactoring is not yet finished, so you would find part of the code which could be cleaned up, especially KLT transforms in entropy_co
ding.c
Review URL: https://webrtc-codereview.appspot.com/580004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2359 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-06-04 20:04:58 +00:00
|
|
|
/* Decode framelength and BW estimation - not used,
|
2011-07-07 08:21:25 +00:00
|
|
|
only for stream pointer*/
|
|
|
|
|
err = WebRtcIsac_DecodeFrameLen(&ISACdecLB_obj->bitstr_obj,
|
|
|
|
|
current_framesamples);
|
This CL contains some refactoring. Spectrum coding is main place that is affected. Therefore, I have bit-exactness test, test_spectrum_
coding.c, to be sure about the changelist. You can go through the test to be sure the changes are tested. However, I don't intend to commi
t the test, as it would be a source of confusion and requires hack to iSAC to be able to run the test. It is basically a one-time test.
The part which not covered in this test is where we limit payload for super-wideband bit-stream. I'll add a test for that as well.
I kept format changes at minimum in all files except isac.c, which was in bad shape, and coding changes were minimum. I'm planning to uplo
ad following patches to this CL where I try to address formatting issues. But I don't intend to change variable names, for the moment.
The refactoring is not yet finished, so you would find part of the code which could be cleaned up, especially KLT transforms in entropy_co
ding.c
Review URL: https://webrtc-codereview.appspot.com/580004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2359 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-06-04 20:04:58 +00:00
|
|
|
if (err < 0) {
|
2011-07-07 08:21:25 +00:00
|
|
|
return err;
|
|
|
|
|
}
|
|
|
|
|
|
This CL contains some refactoring. Spectrum coding is main place that is affected. Therefore, I have bit-exactness test, test_spectrum_
coding.c, to be sure about the changelist. You can go through the test to be sure the changes are tested. However, I don't intend to commi
t the test, as it would be a source of confusion and requires hack to iSAC to be able to run the test. It is basically a one-time test.
The part which not covered in this test is where we limit payload for super-wideband bit-stream. I'll add a test for that as well.
I kept format changes at minimum in all files except isac.c, which was in bad shape, and coding changes were minimum. I'm planning to uplo
ad following patches to this CL where I try to address formatting issues. But I don't intend to change variable names, for the moment.
The refactoring is not yet finished, so you would find part of the code which could be cleaned up, especially KLT transforms in entropy_co
ding.c
Review URL: https://webrtc-codereview.appspot.com/580004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2359 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-06-04 20:04:58 +00:00
|
|
|
/* Frame_mode:
|
|
|
|
|
* 0: indicates 30 ms frame (480 samples)
|
|
|
|
|
* 1: indicates 60 ms frame (960 samples) */
|
|
|
|
|
frame_mode = *current_framesamples / MAX_FRAMESAMPLES;
|
2011-07-07 08:21:25 +00:00
|
|
|
|
|
|
|
|
err = WebRtcIsac_DecodeSendBW(&ISACdecLB_obj->bitstr_obj, &bandwidthInd);
|
This CL contains some refactoring. Spectrum coding is main place that is affected. Therefore, I have bit-exactness test, test_spectrum_
coding.c, to be sure about the changelist. You can go through the test to be sure the changes are tested. However, I don't intend to commi
t the test, as it would be a source of confusion and requires hack to iSAC to be able to run the test. It is basically a one-time test.
The part which not covered in this test is where we limit payload for super-wideband bit-stream. I'll add a test for that as well.
I kept format changes at minimum in all files except isac.c, which was in bad shape, and coding changes were minimum. I'm planning to uplo
ad following patches to this CL where I try to address formatting issues. But I don't intend to change variable names, for the moment.
The refactoring is not yet finished, so you would find part of the code which could be cleaned up, especially KLT transforms in entropy_co
ding.c
Review URL: https://webrtc-codereview.appspot.com/580004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2359 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-06-04 20:04:58 +00:00
|
|
|
if (err < 0) {
|
2011-07-07 08:21:25 +00:00
|
|
|
return err;
|
|
|
|
|
}
|
|
|
|
|
|
This CL contains some refactoring. Spectrum coding is main place that is affected. Therefore, I have bit-exactness test, test_spectrum_
coding.c, to be sure about the changelist. You can go through the test to be sure the changes are tested. However, I don't intend to commi
t the test, as it would be a source of confusion and requires hack to iSAC to be able to run the test. It is basically a one-time test.
The part which not covered in this test is where we limit payload for super-wideband bit-stream. I'll add a test for that as well.
I kept format changes at minimum in all files except isac.c, which was in bad shape, and coding changes were minimum. I'm planning to uplo
ad following patches to this CL where I try to address formatting issues. But I don't intend to change variable names, for the moment.
The refactoring is not yet finished, so you would find part of the code which could be cleaned up, especially KLT transforms in entropy_co
ding.c
Review URL: https://webrtc-codereview.appspot.com/580004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2359 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-06-04 20:04:58 +00:00
|
|
|
/* One loop if it's one frame (20 or 30ms), 2 loops if 2 frames
|
|
|
|
|
bundled together (60ms). */
|
2011-07-07 08:21:25 +00:00
|
|
|
for (frame_nb = 0; frame_nb <= frame_mode; frame_nb++) {
|
This CL contains some refactoring. Spectrum coding is main place that is affected. Therefore, I have bit-exactness test, test_spectrum_
coding.c, to be sure about the changelist. You can go through the test to be sure the changes are tested. However, I don't intend to commi
t the test, as it would be a source of confusion and requires hack to iSAC to be able to run the test. It is basically a one-time test.
The part which not covered in this test is where we limit payload for super-wideband bit-stream. I'll add a test for that as well.
I kept format changes at minimum in all files except isac.c, which was in bad shape, and coding changes were minimum. I'm planning to uplo
ad following patches to this CL where I try to address formatting issues. But I don't intend to change variable names, for the moment.
The refactoring is not yet finished, so you would find part of the code which could be cleaned up, especially KLT transforms in entropy_co
ding.c
Review URL: https://webrtc-codereview.appspot.com/580004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2359 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-06-04 20:04:58 +00:00
|
|
|
/* Decode & de-quantize pitch parameters */
|
|
|
|
|
err = WebRtcIsac_DecodePitchGain(&ISACdecLB_obj->bitstr_obj,
|
2011-07-07 08:21:25 +00:00
|
|
|
PitchGains_Q12);
|
This CL contains some refactoring. Spectrum coding is main place that is affected. Therefore, I have bit-exactness test, test_spectrum_
coding.c, to be sure about the changelist. You can go through the test to be sure the changes are tested. However, I don't intend to commi
t the test, as it would be a source of confusion and requires hack to iSAC to be able to run the test. It is basically a one-time test.
The part which not covered in this test is where we limit payload for super-wideband bit-stream. I'll add a test for that as well.
I kept format changes at minimum in all files except isac.c, which was in bad shape, and coding changes were minimum. I'm planning to uplo
ad following patches to this CL where I try to address formatting issues. But I don't intend to change variable names, for the moment.
The refactoring is not yet finished, so you would find part of the code which could be cleaned up, especially KLT transforms in entropy_co
ding.c
Review URL: https://webrtc-codereview.appspot.com/580004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2359 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-06-04 20:04:58 +00:00
|
|
|
if (err < 0) {
|
2011-07-07 08:21:25 +00:00
|
|
|
return err;
|
|
|
|
|
}
|
|
|
|
|
|
This CL contains some refactoring. Spectrum coding is main place that is affected. Therefore, I have bit-exactness test, test_spectrum_
coding.c, to be sure about the changelist. You can go through the test to be sure the changes are tested. However, I don't intend to commi
t the test, as it would be a source of confusion and requires hack to iSAC to be able to run the test. It is basically a one-time test.
The part which not covered in this test is where we limit payload for super-wideband bit-stream. I'll add a test for that as well.
I kept format changes at minimum in all files except isac.c, which was in bad shape, and coding changes were minimum. I'm planning to uplo
ad following patches to this CL where I try to address formatting issues. But I don't intend to change variable names, for the moment.
The refactoring is not yet finished, so you would find part of the code which could be cleaned up, especially KLT transforms in entropy_co
ding.c
Review URL: https://webrtc-codereview.appspot.com/580004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2359 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-06-04 20:04:58 +00:00
|
|
|
err = WebRtcIsac_DecodePitchLag(&ISACdecLB_obj->bitstr_obj, PitchGains_Q12,
|
|
|
|
|
PitchLags);
|
|
|
|
|
if (err < 0) {
|
2011-07-07 08:21:25 +00:00
|
|
|
return err;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
AvgPitchGain_Q12 = (PitchGains_Q12[0] + PitchGains_Q12[1] +
|
This CL contains some refactoring. Spectrum coding is main place that is affected. Therefore, I have bit-exactness test, test_spectrum_
coding.c, to be sure about the changelist. You can go through the test to be sure the changes are tested. However, I don't intend to commi
t the test, as it would be a source of confusion and requires hack to iSAC to be able to run the test. It is basically a one-time test.
The part which not covered in this test is where we limit payload for super-wideband bit-stream. I'll add a test for that as well.
I kept format changes at minimum in all files except isac.c, which was in bad shape, and coding changes were minimum. I'm planning to uplo
ad following patches to this CL where I try to address formatting issues. But I don't intend to change variable names, for the moment.
The refactoring is not yet finished, so you would find part of the code which could be cleaned up, especially KLT transforms in entropy_co
ding.c
Review URL: https://webrtc-codereview.appspot.com/580004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2359 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-06-04 20:04:58 +00:00
|
|
|
PitchGains_Q12[2] + PitchGains_Q12[3]) >> 2;
|
2011-07-07 08:21:25 +00:00
|
|
|
|
This CL contains some refactoring. Spectrum coding is main place that is affected. Therefore, I have bit-exactness test, test_spectrum_
coding.c, to be sure about the changelist. You can go through the test to be sure the changes are tested. However, I don't intend to commi
t the test, as it would be a source of confusion and requires hack to iSAC to be able to run the test. It is basically a one-time test.
The part which not covered in this test is where we limit payload for super-wideband bit-stream. I'll add a test for that as well.
I kept format changes at minimum in all files except isac.c, which was in bad shape, and coding changes were minimum. I'm planning to uplo
ad following patches to this CL where I try to address formatting issues. But I don't intend to change variable names, for the moment.
The refactoring is not yet finished, so you would find part of the code which could be cleaned up, especially KLT transforms in entropy_co
ding.c
Review URL: https://webrtc-codereview.appspot.com/580004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2359 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-06-04 20:04:58 +00:00
|
|
|
/* Decode & de-quantize filter coefficients. */
|
|
|
|
|
err = WebRtcIsac_DecodeLpc(&ISACdecLB_obj->bitstr_obj, lo_filt_coef,
|
|
|
|
|
hi_filt_coef);
|
|
|
|
|
if (err < 0) {
|
2011-07-07 08:21:25 +00:00
|
|
|
return err;
|
|
|
|
|
}
|
This CL contains some refactoring. Spectrum coding is main place that is affected. Therefore, I have bit-exactness test, test_spectrum_
coding.c, to be sure about the changelist. You can go through the test to be sure the changes are tested. However, I don't intend to commi
t the test, as it would be a source of confusion and requires hack to iSAC to be able to run the test. It is basically a one-time test.
The part which not covered in this test is where we limit payload for super-wideband bit-stream. I'll add a test for that as well.
I kept format changes at minimum in all files except isac.c, which was in bad shape, and coding changes were minimum. I'm planning to uplo
ad following patches to this CL where I try to address formatting issues. But I don't intend to change variable names, for the moment.
The refactoring is not yet finished, so you would find part of the code which could be cleaned up, especially KLT transforms in entropy_co
ding.c
Review URL: https://webrtc-codereview.appspot.com/580004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2359 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-06-04 20:04:58 +00:00
|
|
|
/* Decode & de-quantize spectrum. */
|
|
|
|
|
len = WebRtcIsac_DecodeSpec(&ISACdecLB_obj->bitstr_obj, AvgPitchGain_Q12,
|
|
|
|
|
kIsacLowerBand, real_f, imag_f);
|
|
|
|
|
if (len < 0) {
|
2011-07-07 08:21:25 +00:00
|
|
|
return len;
|
|
|
|
|
}
|
|
|
|
|
|
This CL contains some refactoring. Spectrum coding is main place that is affected. Therefore, I have bit-exactness test, test_spectrum_
coding.c, to be sure about the changelist. You can go through the test to be sure the changes are tested. However, I don't intend to commi
t the test, as it would be a source of confusion and requires hack to iSAC to be able to run the test. It is basically a one-time test.
The part which not covered in this test is where we limit payload for super-wideband bit-stream. I'll add a test for that as well.
I kept format changes at minimum in all files except isac.c, which was in bad shape, and coding changes were minimum. I'm planning to uplo
ad following patches to this CL where I try to address formatting issues. But I don't intend to change variable names, for the moment.
The refactoring is not yet finished, so you would find part of the code which could be cleaned up, especially KLT transforms in entropy_co
ding.c
Review URL: https://webrtc-codereview.appspot.com/580004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2359 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-06-04 20:04:58 +00:00
|
|
|
/* Inverse transform. */
|
2015-06-16 00:02:34 +02:00
|
|
|
WebRtcIsac_Spec2time(transform_tables, real_f, imag_f, LPw, HPw,
|
This CL contains some refactoring. Spectrum coding is main place that is affected. Therefore, I have bit-exactness test, test_spectrum_
coding.c, to be sure about the changelist. You can go through the test to be sure the changes are tested. However, I don't intend to commi
t the test, as it would be a source of confusion and requires hack to iSAC to be able to run the test. It is basically a one-time test.
The part which not covered in this test is where we limit payload for super-wideband bit-stream. I'll add a test for that as well.
I kept format changes at minimum in all files except isac.c, which was in bad shape, and coding changes were minimum. I'm planning to uplo
ad following patches to this CL where I try to address formatting issues. But I don't intend to change variable names, for the moment.
The refactoring is not yet finished, so you would find part of the code which could be cleaned up, especially KLT transforms in entropy_co
ding.c
Review URL: https://webrtc-codereview.appspot.com/580004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2359 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-06-04 20:04:58 +00:00
|
|
|
&ISACdecLB_obj->fftstr_obj);
|
2011-07-07 08:21:25 +00:00
|
|
|
|
This CL contains some refactoring. Spectrum coding is main place that is affected. Therefore, I have bit-exactness test, test_spectrum_
coding.c, to be sure about the changelist. You can go through the test to be sure the changes are tested. However, I don't intend to commi
t the test, as it would be a source of confusion and requires hack to iSAC to be able to run the test. It is basically a one-time test.
The part which not covered in this test is where we limit payload for super-wideband bit-stream. I'll add a test for that as well.
I kept format changes at minimum in all files except isac.c, which was in bad shape, and coding changes were minimum. I'm planning to uplo
ad following patches to this CL where I try to address formatting issues. But I don't intend to change variable names, for the moment.
The refactoring is not yet finished, so you would find part of the code which could be cleaned up, especially KLT transforms in entropy_co
ding.c
Review URL: https://webrtc-codereview.appspot.com/580004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2359 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-06-04 20:04:58 +00:00
|
|
|
/* Convert PitchGains back to float for pitchfilter_post */
|
2011-07-07 08:21:25 +00:00
|
|
|
for (k = 0; k < 4; k++) {
|
This CL contains some refactoring. Spectrum coding is main place that is affected. Therefore, I have bit-exactness test, test_spectrum_
coding.c, to be sure about the changelist. You can go through the test to be sure the changes are tested. However, I don't intend to commi
t the test, as it would be a source of confusion and requires hack to iSAC to be able to run the test. It is basically a one-time test.
The part which not covered in this test is where we limit payload for super-wideband bit-stream. I'll add a test for that as well.
I kept format changes at minimum in all files except isac.c, which was in bad shape, and coding changes were minimum. I'm planning to uplo
ad following patches to this CL where I try to address formatting issues. But I don't intend to change variable names, for the moment.
The refactoring is not yet finished, so you would find part of the code which could be cleaned up, especially KLT transforms in entropy_co
ding.c
Review URL: https://webrtc-codereview.appspot.com/580004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2359 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-06-04 20:04:58 +00:00
|
|
|
PitchGains[k] = ((float)PitchGains_Q12[k]) / 4096;
|
2011-07-07 08:21:25 +00:00
|
|
|
}
|
This CL contains some refactoring. Spectrum coding is main place that is affected. Therefore, I have bit-exactness test, test_spectrum_
coding.c, to be sure about the changelist. You can go through the test to be sure the changes are tested. However, I don't intend to commi
t the test, as it would be a source of confusion and requires hack to iSAC to be able to run the test. It is basically a one-time test.
The part which not covered in this test is where we limit payload for super-wideband bit-stream. I'll add a test for that as well.
I kept format changes at minimum in all files except isac.c, which was in bad shape, and coding changes were minimum. I'm planning to uplo
ad following patches to this CL where I try to address formatting issues. But I don't intend to change variable names, for the moment.
The refactoring is not yet finished, so you would find part of the code which could be cleaned up, especially KLT transforms in entropy_co
ding.c
Review URL: https://webrtc-codereview.appspot.com/580004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2359 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-06-04 20:04:58 +00:00
|
|
|
if (isRCUPayload) {
|
2011-07-07 08:21:25 +00:00
|
|
|
for (k = 0; k < 240; k++) {
|
|
|
|
|
LPw[k] *= RCU_TRANSCODING_SCALE_INVERSE;
|
|
|
|
|
HPw[k] *= RCU_TRANSCODING_SCALE_INVERSE;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
This CL contains some refactoring. Spectrum coding is main place that is affected. Therefore, I have bit-exactness test, test_spectrum_
coding.c, to be sure about the changelist. You can go through the test to be sure the changes are tested. However, I don't intend to commi
t the test, as it would be a source of confusion and requires hack to iSAC to be able to run the test. It is basically a one-time test.
The part which not covered in this test is where we limit payload for super-wideband bit-stream. I'll add a test for that as well.
I kept format changes at minimum in all files except isac.c, which was in bad shape, and coding changes were minimum. I'm planning to uplo
ad following patches to this CL where I try to address formatting issues. But I don't intend to change variable names, for the moment.
The refactoring is not yet finished, so you would find part of the code which could be cleaned up, especially KLT transforms in entropy_co
ding.c
Review URL: https://webrtc-codereview.appspot.com/580004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2359 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-06-04 20:04:58 +00:00
|
|
|
/* Inverse pitch filter. */
|
|
|
|
|
WebRtcIsac_PitchfilterPost(LPw, LPw_pf, &ISACdecLB_obj->pitchfiltstr_obj,
|
|
|
|
|
PitchLags, PitchGains);
|
|
|
|
|
/* Convert AvgPitchGain back to float for computation of gain. */
|
|
|
|
|
AvgPitchGain = ((float)AvgPitchGain_Q12) / 4096;
|
2011-07-07 08:21:25 +00:00
|
|
|
gain = 1.0f - 0.45f * (float)AvgPitchGain;
|
|
|
|
|
|
|
|
|
|
for (k = 0; k < FRAMESAMPLES_HALF; k++) {
|
This CL contains some refactoring. Spectrum coding is main place that is affected. Therefore, I have bit-exactness test, test_spectrum_
coding.c, to be sure about the changelist. You can go through the test to be sure the changes are tested. However, I don't intend to commi
t the test, as it would be a source of confusion and requires hack to iSAC to be able to run the test. It is basically a one-time test.
The part which not covered in this test is where we limit payload for super-wideband bit-stream. I'll add a test for that as well.
I kept format changes at minimum in all files except isac.c, which was in bad shape, and coding changes were minimum. I'm planning to uplo
ad following patches to this CL where I try to address formatting issues. But I don't intend to change variable names, for the moment.
The refactoring is not yet finished, so you would find part of the code which could be cleaned up, especially KLT transforms in entropy_co
ding.c
Review URL: https://webrtc-codereview.appspot.com/580004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2359 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-06-04 20:04:58 +00:00
|
|
|
/* Reduce gain to compensate for pitch enhancer. */
|
|
|
|
|
LPw_pf[k] *= gain;
|
2011-07-07 08:21:25 +00:00
|
|
|
}
|
|
|
|
|
|
This CL contains some refactoring. Spectrum coding is main place that is affected. Therefore, I have bit-exactness test, test_spectrum_
coding.c, to be sure about the changelist. You can go through the test to be sure the changes are tested. However, I don't intend to commi
t the test, as it would be a source of confusion and requires hack to iSAC to be able to run the test. It is basically a one-time test.
The part which not covered in this test is where we limit payload for super-wideband bit-stream. I'll add a test for that as well.
I kept format changes at minimum in all files except isac.c, which was in bad shape, and coding changes were minimum. I'm planning to uplo
ad following patches to this CL where I try to address formatting issues. But I don't intend to change variable names, for the moment.
The refactoring is not yet finished, so you would find part of the code which could be cleaned up, especially KLT transforms in entropy_co
ding.c
Review URL: https://webrtc-codereview.appspot.com/580004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2359 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-06-04 20:04:58 +00:00
|
|
|
if (isRCUPayload) {
|
2011-07-07 08:21:25 +00:00
|
|
|
for (k = 0; k < FRAMESAMPLES_HALF; k++) {
|
This CL contains some refactoring. Spectrum coding is main place that is affected. Therefore, I have bit-exactness test, test_spectrum_
coding.c, to be sure about the changelist. You can go through the test to be sure the changes are tested. However, I don't intend to commi
t the test, as it would be a source of confusion and requires hack to iSAC to be able to run the test. It is basically a one-time test.
The part which not covered in this test is where we limit payload for super-wideband bit-stream. I'll add a test for that as well.
I kept format changes at minimum in all files except isac.c, which was in bad shape, and coding changes were minimum. I'm planning to uplo
ad following patches to this CL where I try to address formatting issues. But I don't intend to change variable names, for the moment.
The refactoring is not yet finished, so you would find part of the code which could be cleaned up, especially KLT transforms in entropy_co
ding.c
Review URL: https://webrtc-codereview.appspot.com/580004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2359 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-06-04 20:04:58 +00:00
|
|
|
/* Compensation for transcoding gain changes. */
|
2011-07-07 08:21:25 +00:00
|
|
|
LPw_pf[k] *= RCU_TRANSCODING_SCALE;
|
This CL contains some refactoring. Spectrum coding is main place that is affected. Therefore, I have bit-exactness test, test_spectrum_
coding.c, to be sure about the changelist. You can go through the test to be sure the changes are tested. However, I don't intend to commi
t the test, as it would be a source of confusion and requires hack to iSAC to be able to run the test. It is basically a one-time test.
The part which not covered in this test is where we limit payload for super-wideband bit-stream. I'll add a test for that as well.
I kept format changes at minimum in all files except isac.c, which was in bad shape, and coding changes were minimum. I'm planning to uplo
ad following patches to this CL where I try to address formatting issues. But I don't intend to change variable names, for the moment.
The refactoring is not yet finished, so you would find part of the code which could be cleaned up, especially KLT transforms in entropy_co
ding.c
Review URL: https://webrtc-codereview.appspot.com/580004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2359 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-06-04 20:04:58 +00:00
|
|
|
HPw[k] *= RCU_TRANSCODING_SCALE;
|
2011-07-07 08:21:25 +00:00
|
|
|
}
|
|
|
|
|
}
|
This CL contains some refactoring. Spectrum coding is main place that is affected. Therefore, I have bit-exactness test, test_spectrum_
coding.c, to be sure about the changelist. You can go through the test to be sure the changes are tested. However, I don't intend to commi
t the test, as it would be a source of confusion and requires hack to iSAC to be able to run the test. It is basically a one-time test.
The part which not covered in this test is where we limit payload for super-wideband bit-stream. I'll add a test for that as well.
I kept format changes at minimum in all files except isac.c, which was in bad shape, and coding changes were minimum. I'm planning to uplo
ad following patches to this CL where I try to address formatting issues. But I don't intend to change variable names, for the moment.
The refactoring is not yet finished, so you would find part of the code which could be cleaned up, especially KLT transforms in entropy_co
ding.c
Review URL: https://webrtc-codereview.appspot.com/580004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2359 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-06-04 20:04:58 +00:00
|
|
|
/* Perceptual post-filtering (using normalized lattice filter). */
|
Hi Tina,
I have uploaded this patch for your review. I have done an extensive test to be sure that removing of tables does not create any problem.
The test file, is called test_lpc.c which requires a hack to standard iSAC. The test computes LPC coefficients, then encodes and decodes with old and new (size-reduced) tables. It compares the results is all steps. I have ran the test over large set of files, more then 51 hours of audio, and there was no error.
I tried to do no formatting so the review to be easier, but I know it can be a tricky CL. Hopefully, the test file helps you to be more confident on the CL.
Thanks,... Turaj
In this change list the LPC tables associated with mode 1 & 2 are remoded, and necessary cahnges are made to other files.
The only model allowed is model number 0. Therefore, this CL breaks compatibility with iSAC released prior to 2.4.3. To avoid changing the bit-stream, we still keep the model number in the bit-stream.
entropy_coding.c is cleaned up, especially encoding of LAR had KLT transform of LPC gains which are removed now.
Review URL: https://webrtc-codereview.appspot.com/548004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2186 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-05-07 20:36:22 +00:00
|
|
|
WebRtcIsac_NormLatticeFilterAr(
|
|
|
|
|
ORDERLO, ISACdecLB_obj->maskfiltstr_obj.PostStateLoF,
|
|
|
|
|
(ISACdecLB_obj->maskfiltstr_obj).PostStateLoG, LPw_pf, lo_filt_coef,
|
|
|
|
|
LP_dec_float);
|
|
|
|
|
WebRtcIsac_NormLatticeFilterAr(
|
|
|
|
|
ORDERHI, ISACdecLB_obj->maskfiltstr_obj.PostStateHiF,
|
|
|
|
|
(ISACdecLB_obj->maskfiltstr_obj).PostStateHiG, HPw, hi_filt_coef,
|
|
|
|
|
HP_dec_float);
|
2011-07-07 08:21:25 +00:00
|
|
|
|
This CL contains some refactoring. Spectrum coding is main place that is affected. Therefore, I have bit-exactness test, test_spectrum_
coding.c, to be sure about the changelist. You can go through the test to be sure the changes are tested. However, I don't intend to commi
t the test, as it would be a source of confusion and requires hack to iSAC to be able to run the test. It is basically a one-time test.
The part which not covered in this test is where we limit payload for super-wideband bit-stream. I'll add a test for that as well.
I kept format changes at minimum in all files except isac.c, which was in bad shape, and coding changes were minimum. I'm planning to uplo
ad following patches to this CL where I try to address formatting issues. But I don't intend to change variable names, for the moment.
The refactoring is not yet finished, so you would find part of the code which could be cleaned up, especially KLT transforms in entropy_co
ding.c
Review URL: https://webrtc-codereview.appspot.com/580004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2359 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-06-04 20:04:58 +00:00
|
|
|
/* Recombine the 2 bands. */
|
Hi Tina,
I have uploaded this patch for your review. I have done an extensive test to be sure that removing of tables does not create any problem.
The test file, is called test_lpc.c which requires a hack to standard iSAC. The test computes LPC coefficients, then encodes and decodes with old and new (size-reduced) tables. It compares the results is all steps. I have ran the test over large set of files, more then 51 hours of audio, and there was no error.
I tried to do no formatting so the review to be easier, but I know it can be a tricky CL. Hopefully, the test file helps you to be more confident on the CL.
Thanks,... Turaj
In this change list the LPC tables associated with mode 1 & 2 are remoded, and necessary cahnges are made to other files.
The only model allowed is model number 0. Therefore, this CL breaks compatibility with iSAC released prior to 2.4.3. To avoid changing the bit-stream, we still keep the model number in the bit-stream.
entropy_coding.c is cleaned up, especially encoding of LAR had KLT transform of LPC gains which are removed now.
Review URL: https://webrtc-codereview.appspot.com/548004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2186 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-05-07 20:36:22 +00:00
|
|
|
WebRtcIsac_FilterAndCombineFloat(LP_dec_float, HP_dec_float,
|
This CL contains some refactoring. Spectrum coding is main place that is affected. Therefore, I have bit-exactness test, test_spectrum_
coding.c, to be sure about the changelist. You can go through the test to be sure the changes are tested. However, I don't intend to commi
t the test, as it would be a source of confusion and requires hack to iSAC to be able to run the test. It is basically a one-time test.
The part which not covered in this test is where we limit payload for super-wideband bit-stream. I'll add a test for that as well.
I kept format changes at minimum in all files except isac.c, which was in bad shape, and coding changes were minimum. I'm planning to uplo
ad following patches to this CL where I try to address formatting issues. But I don't intend to change variable names, for the moment.
The refactoring is not yet finished, so you would find part of the code which could be cleaned up, especially KLT transforms in entropy_co
ding.c
Review URL: https://webrtc-codereview.appspot.com/580004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2359 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-06-04 20:04:58 +00:00
|
|
|
signal_out + frame_nb * FRAMESAMPLES,
|
Hi Tina,
I have uploaded this patch for your review. I have done an extensive test to be sure that removing of tables does not create any problem.
The test file, is called test_lpc.c which requires a hack to standard iSAC. The test computes LPC coefficients, then encodes and decodes with old and new (size-reduced) tables. It compares the results is all steps. I have ran the test over large set of files, more then 51 hours of audio, and there was no error.
I tried to do no formatting so the review to be easier, but I know it can be a tricky CL. Hopefully, the test file helps you to be more confident on the CL.
Thanks,... Turaj
In this change list the LPC tables associated with mode 1 & 2 are remoded, and necessary cahnges are made to other files.
The only model allowed is model number 0. Therefore, this CL breaks compatibility with iSAC released prior to 2.4.3. To avoid changing the bit-stream, we still keep the model number in the bit-stream.
entropy_coding.c is cleaned up, especially encoding of LAR had KLT transform of LPC gains which are removed now.
Review URL: https://webrtc-codereview.appspot.com/548004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2186 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-05-07 20:36:22 +00:00
|
|
|
&ISACdecLB_obj->postfiltbankstr_obj);
|
2011-07-07 08:21:25 +00:00
|
|
|
}
|
|
|
|
|
return len;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* This decode function is called when the codec is operating in 16 kHz
|
|
|
|
|
* bandwidth to decode the upperband, i.e. 8-16 kHz.
|
|
|
|
|
*
|
|
|
|
|
* Contrary to lower-band, the upper-band (8-16 kHz) is not split in
|
|
|
|
|
* frequency, but split to 12 sub-frames, i.e. twice as lower-band.
|
|
|
|
|
*/
|
2015-06-16 00:02:34 +02:00
|
|
|
int WebRtcIsac_DecodeUb16(const TransformTables* transform_tables,
|
|
|
|
|
float* signal_out, ISACUBDecStruct* ISACdecUB_obj,
|
2013-04-09 00:28:06 +00:00
|
|
|
int16_t isRCUPayload) {
|
2011-07-07 08:21:25 +00:00
|
|
|
int len, err;
|
|
|
|
|
|
|
|
|
|
double halfFrameFirst[FRAMESAMPLES_HALF];
|
|
|
|
|
double halfFrameSecond[FRAMESAMPLES_HALF];
|
|
|
|
|
|
This CL contains some refactoring. Spectrum coding is main place that is affected. Therefore, I have bit-exactness test, test_spectrum_
coding.c, to be sure about the changelist. You can go through the test to be sure the changes are tested. However, I don't intend to commi
t the test, as it would be a source of confusion and requires hack to iSAC to be able to run the test. It is basically a one-time test.
The part which not covered in this test is where we limit payload for super-wideband bit-stream. I'll add a test for that as well.
I kept format changes at minimum in all files except isac.c, which was in bad shape, and coding changes were minimum. I'm planning to uplo
ad following patches to this CL where I try to address formatting issues. But I don't intend to change variable names, for the moment.
The refactoring is not yet finished, so you would find part of the code which could be cleaned up, especially KLT transforms in entropy_co
ding.c
Review URL: https://webrtc-codereview.appspot.com/580004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2359 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-06-04 20:04:58 +00:00
|
|
|
double percepFilterParam[(UB_LPC_ORDER + 1) * (SUBFRAMES << 1) +
|
|
|
|
|
(UB_LPC_ORDER + 1)];
|
2011-07-07 08:21:25 +00:00
|
|
|
|
|
|
|
|
double real_f[FRAMESAMPLES_HALF];
|
|
|
|
|
double imag_f[FRAMESAMPLES_HALF];
|
2013-04-09 00:28:06 +00:00
|
|
|
const int16_t kAveragePitchGain = 0; /* No pitch-gain for upper-band. */
|
2011-07-07 08:21:25 +00:00
|
|
|
len = 0;
|
|
|
|
|
|
This CL contains some refactoring. Spectrum coding is main place that is affected. Therefore, I have bit-exactness test, test_spectrum_
coding.c, to be sure about the changelist. You can go through the test to be sure the changes are tested. However, I don't intend to commi
t the test, as it would be a source of confusion and requires hack to iSAC to be able to run the test. It is basically a one-time test.
The part which not covered in this test is where we limit payload for super-wideband bit-stream. I'll add a test for that as well.
I kept format changes at minimum in all files except isac.c, which was in bad shape, and coding changes were minimum. I'm planning to uplo
ad following patches to this CL where I try to address formatting issues. But I don't intend to change variable names, for the moment.
The refactoring is not yet finished, so you would find part of the code which could be cleaned up, especially KLT transforms in entropy_co
ding.c
Review URL: https://webrtc-codereview.appspot.com/580004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2359 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-06-04 20:04:58 +00:00
|
|
|
/* Decode & de-quantize filter coefficients. */
|
2011-07-07 08:21:25 +00:00
|
|
|
memset(percepFilterParam, 0, sizeof(percepFilterParam));
|
|
|
|
|
err = WebRtcIsac_DecodeInterpolLpcUb(&ISACdecUB_obj->bitstr_obj,
|
|
|
|
|
percepFilterParam, isac16kHz);
|
This CL contains some refactoring. Spectrum coding is main place that is affected. Therefore, I have bit-exactness test, test_spectrum_
coding.c, to be sure about the changelist. You can go through the test to be sure the changes are tested. However, I don't intend to commi
t the test, as it would be a source of confusion and requires hack to iSAC to be able to run the test. It is basically a one-time test.
The part which not covered in this test is where we limit payload for super-wideband bit-stream. I'll add a test for that as well.
I kept format changes at minimum in all files except isac.c, which was in bad shape, and coding changes were minimum. I'm planning to uplo
ad following patches to this CL where I try to address formatting issues. But I don't intend to change variable names, for the moment.
The refactoring is not yet finished, so you would find part of the code which could be cleaned up, especially KLT transforms in entropy_co
ding.c
Review URL: https://webrtc-codereview.appspot.com/580004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2359 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-06-04 20:04:58 +00:00
|
|
|
if (err < 0) {
|
2011-07-07 08:21:25 +00:00
|
|
|
return err;
|
|
|
|
|
}
|
|
|
|
|
|
This CL contains some refactoring. Spectrum coding is main place that is affected. Therefore, I have bit-exactness test, test_spectrum_
coding.c, to be sure about the changelist. You can go through the test to be sure the changes are tested. However, I don't intend to commi
t the test, as it would be a source of confusion and requires hack to iSAC to be able to run the test. It is basically a one-time test.
The part which not covered in this test is where we limit payload for super-wideband bit-stream. I'll add a test for that as well.
I kept format changes at minimum in all files except isac.c, which was in bad shape, and coding changes were minimum. I'm planning to uplo
ad following patches to this CL where I try to address formatting issues. But I don't intend to change variable names, for the moment.
The refactoring is not yet finished, so you would find part of the code which could be cleaned up, especially KLT transforms in entropy_co
ding.c
Review URL: https://webrtc-codereview.appspot.com/580004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2359 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-06-04 20:04:58 +00:00
|
|
|
/* Decode & de-quantize spectrum. */
|
|
|
|
|
len = WebRtcIsac_DecodeSpec(&ISACdecUB_obj->bitstr_obj, kAveragePitchGain,
|
|
|
|
|
kIsacUpperBand16, real_f, imag_f);
|
|
|
|
|
if (len < 0) {
|
2011-07-07 08:21:25 +00:00
|
|
|
return len;
|
|
|
|
|
}
|
This CL contains some refactoring. Spectrum coding is main place that is affected. Therefore, I have bit-exactness test, test_spectrum_
coding.c, to be sure about the changelist. You can go through the test to be sure the changes are tested. However, I don't intend to commi
t the test, as it would be a source of confusion and requires hack to iSAC to be able to run the test. It is basically a one-time test.
The part which not covered in this test is where we limit payload for super-wideband bit-stream. I'll add a test for that as well.
I kept format changes at minimum in all files except isac.c, which was in bad shape, and coding changes were minimum. I'm planning to uplo
ad following patches to this CL where I try to address formatting issues. But I don't intend to change variable names, for the moment.
The refactoring is not yet finished, so you would find part of the code which could be cleaned up, especially KLT transforms in entropy_co
ding.c
Review URL: https://webrtc-codereview.appspot.com/580004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2359 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-06-04 20:04:58 +00:00
|
|
|
if (isRCUPayload) {
|
2011-07-07 08:21:25 +00:00
|
|
|
int n;
|
This CL contains some refactoring. Spectrum coding is main place that is affected. Therefore, I have bit-exactness test, test_spectrum_
coding.c, to be sure about the changelist. You can go through the test to be sure the changes are tested. However, I don't intend to commi
t the test, as it would be a source of confusion and requires hack to iSAC to be able to run the test. It is basically a one-time test.
The part which not covered in this test is where we limit payload for super-wideband bit-stream. I'll add a test for that as well.
I kept format changes at minimum in all files except isac.c, which was in bad shape, and coding changes were minimum. I'm planning to uplo
ad following patches to this CL where I try to address formatting issues. But I don't intend to change variable names, for the moment.
The refactoring is not yet finished, so you would find part of the code which could be cleaned up, especially KLT transforms in entropy_co
ding.c
Review URL: https://webrtc-codereview.appspot.com/580004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2359 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-06-04 20:04:58 +00:00
|
|
|
for (n = 0; n < 240; n++) {
|
2011-07-07 08:21:25 +00:00
|
|
|
real_f[n] *= RCU_TRANSCODING_SCALE_UB_INVERSE;
|
|
|
|
|
imag_f[n] *= RCU_TRANSCODING_SCALE_UB_INVERSE;
|
|
|
|
|
}
|
|
|
|
|
}
|
This CL contains some refactoring. Spectrum coding is main place that is affected. Therefore, I have bit-exactness test, test_spectrum_
coding.c, to be sure about the changelist. You can go through the test to be sure the changes are tested. However, I don't intend to commi
t the test, as it would be a source of confusion and requires hack to iSAC to be able to run the test. It is basically a one-time test.
The part which not covered in this test is where we limit payload for super-wideband bit-stream. I'll add a test for that as well.
I kept format changes at minimum in all files except isac.c, which was in bad shape, and coding changes were minimum. I'm planning to uplo
ad following patches to this CL where I try to address formatting issues. But I don't intend to change variable names, for the moment.
The refactoring is not yet finished, so you would find part of the code which could be cleaned up, especially KLT transforms in entropy_co
ding.c
Review URL: https://webrtc-codereview.appspot.com/580004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2359 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-06-04 20:04:58 +00:00
|
|
|
/* Inverse transform. */
|
2015-06-16 00:02:34 +02:00
|
|
|
WebRtcIsac_Spec2time(transform_tables,
|
|
|
|
|
real_f, imag_f, halfFrameFirst, halfFrameSecond,
|
This CL contains some refactoring. Spectrum coding is main place that is affected. Therefore, I have bit-exactness test, test_spectrum_
coding.c, to be sure about the changelist. You can go through the test to be sure the changes are tested. However, I don't intend to commi
t the test, as it would be a source of confusion and requires hack to iSAC to be able to run the test. It is basically a one-time test.
The part which not covered in this test is where we limit payload for super-wideband bit-stream. I'll add a test for that as well.
I kept format changes at minimum in all files except isac.c, which was in bad shape, and coding changes were minimum. I'm planning to uplo
ad following patches to this CL where I try to address formatting issues. But I don't intend to change variable names, for the moment.
The refactoring is not yet finished, so you would find part of the code which could be cleaned up, especially KLT transforms in entropy_co
ding.c
Review URL: https://webrtc-codereview.appspot.com/580004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2359 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-06-04 20:04:58 +00:00
|
|
|
&ISACdecUB_obj->fftstr_obj);
|
2011-07-07 08:21:25 +00:00
|
|
|
|
This CL contains some refactoring. Spectrum coding is main place that is affected. Therefore, I have bit-exactness test, test_spectrum_
coding.c, to be sure about the changelist. You can go through the test to be sure the changes are tested. However, I don't intend to commi
t the test, as it would be a source of confusion and requires hack to iSAC to be able to run the test. It is basically a one-time test.
The part which not covered in this test is where we limit payload for super-wideband bit-stream. I'll add a test for that as well.
I kept format changes at minimum in all files except isac.c, which was in bad shape, and coding changes were minimum. I'm planning to uplo
ad following patches to this CL where I try to address formatting issues. But I don't intend to change variable names, for the moment.
The refactoring is not yet finished, so you would find part of the code which could be cleaned up, especially KLT transforms in entropy_co
ding.c
Review URL: https://webrtc-codereview.appspot.com/580004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2359 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-06-04 20:04:58 +00:00
|
|
|
/* Perceptual post-filtering (using normalized lattice filter). */
|
Hi Tina,
I have uploaded this patch for your review. I have done an extensive test to be sure that removing of tables does not create any problem.
The test file, is called test_lpc.c which requires a hack to standard iSAC. The test computes LPC coefficients, then encodes and decodes with old and new (size-reduced) tables. It compares the results is all steps. I have ran the test over large set of files, more then 51 hours of audio, and there was no error.
I tried to do no formatting so the review to be easier, but I know it can be a tricky CL. Hopefully, the test file helps you to be more confident on the CL.
Thanks,... Turaj
In this change list the LPC tables associated with mode 1 & 2 are remoded, and necessary cahnges are made to other files.
The only model allowed is model number 0. Therefore, this CL breaks compatibility with iSAC released prior to 2.4.3. To avoid changing the bit-stream, we still keep the model number in the bit-stream.
entropy_coding.c is cleaned up, especially encoding of LAR had KLT transform of LPC gains which are removed now.
Review URL: https://webrtc-codereview.appspot.com/548004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2186 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-05-07 20:36:22 +00:00
|
|
|
WebRtcIsac_NormLatticeFilterAr(
|
|
|
|
|
UB_LPC_ORDER, ISACdecUB_obj->maskfiltstr_obj.PostStateLoF,
|
|
|
|
|
(ISACdecUB_obj->maskfiltstr_obj).PostStateLoG, halfFrameFirst,
|
This CL contains some refactoring. Spectrum coding is main place that is affected. Therefore, I have bit-exactness test, test_spectrum_
coding.c, to be sure about the changelist. You can go through the test to be sure the changes are tested. However, I don't intend to commi
t the test, as it would be a source of confusion and requires hack to iSAC to be able to run the test. It is basically a one-time test.
The part which not covered in this test is where we limit payload for super-wideband bit-stream. I'll add a test for that as well.
I kept format changes at minimum in all files except isac.c, which was in bad shape, and coding changes were minimum. I'm planning to uplo
ad following patches to this CL where I try to address formatting issues. But I don't intend to change variable names, for the moment.
The refactoring is not yet finished, so you would find part of the code which could be cleaned up, especially KLT transforms in entropy_co
ding.c
Review URL: https://webrtc-codereview.appspot.com/580004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2359 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-06-04 20:04:58 +00:00
|
|
|
&percepFilterParam[(UB_LPC_ORDER + 1)], signal_out);
|
2011-07-07 08:21:25 +00:00
|
|
|
|
Hi Tina,
I have uploaded this patch for your review. I have done an extensive test to be sure that removing of tables does not create any problem.
The test file, is called test_lpc.c which requires a hack to standard iSAC. The test computes LPC coefficients, then encodes and decodes with old and new (size-reduced) tables. It compares the results is all steps. I have ran the test over large set of files, more then 51 hours of audio, and there was no error.
I tried to do no formatting so the review to be easier, but I know it can be a tricky CL. Hopefully, the test file helps you to be more confident on the CL.
Thanks,... Turaj
In this change list the LPC tables associated with mode 1 & 2 are remoded, and necessary cahnges are made to other files.
The only model allowed is model number 0. Therefore, this CL breaks compatibility with iSAC released prior to 2.4.3. To avoid changing the bit-stream, we still keep the model number in the bit-stream.
entropy_coding.c is cleaned up, especially encoding of LAR had KLT transform of LPC gains which are removed now.
Review URL: https://webrtc-codereview.appspot.com/548004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2186 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-05-07 20:36:22 +00:00
|
|
|
WebRtcIsac_NormLatticeFilterAr(
|
|
|
|
|
UB_LPC_ORDER, ISACdecUB_obj->maskfiltstr_obj.PostStateLoF,
|
|
|
|
|
(ISACdecUB_obj->maskfiltstr_obj).PostStateLoG, halfFrameSecond,
|
This CL contains some refactoring. Spectrum coding is main place that is affected. Therefore, I have bit-exactness test, test_spectrum_
coding.c, to be sure about the changelist. You can go through the test to be sure the changes are tested. However, I don't intend to commi
t the test, as it would be a source of confusion and requires hack to iSAC to be able to run the test. It is basically a one-time test.
The part which not covered in this test is where we limit payload for super-wideband bit-stream. I'll add a test for that as well.
I kept format changes at minimum in all files except isac.c, which was in bad shape, and coding changes were minimum. I'm planning to uplo
ad following patches to this CL where I try to address formatting issues. But I don't intend to change variable names, for the moment.
The refactoring is not yet finished, so you would find part of the code which could be cleaned up, especially KLT transforms in entropy_co
ding.c
Review URL: https://webrtc-codereview.appspot.com/580004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2359 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-06-04 20:04:58 +00:00
|
|
|
&percepFilterParam[(UB_LPC_ORDER + 1) * SUBFRAMES + (UB_LPC_ORDER + 1)],
|
Hi Tina,
I have uploaded this patch for your review. I have done an extensive test to be sure that removing of tables does not create any problem.
The test file, is called test_lpc.c which requires a hack to standard iSAC. The test computes LPC coefficients, then encodes and decodes with old and new (size-reduced) tables. It compares the results is all steps. I have ran the test over large set of files, more then 51 hours of audio, and there was no error.
I tried to do no formatting so the review to be easier, but I know it can be a tricky CL. Hopefully, the test file helps you to be more confident on the CL.
Thanks,... Turaj
In this change list the LPC tables associated with mode 1 & 2 are remoded, and necessary cahnges are made to other files.
The only model allowed is model number 0. Therefore, this CL breaks compatibility with iSAC released prior to 2.4.3. To avoid changing the bit-stream, we still keep the model number in the bit-stream.
entropy_coding.c is cleaned up, especially encoding of LAR had KLT transform of LPC gains which are removed now.
Review URL: https://webrtc-codereview.appspot.com/548004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2186 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-05-07 20:36:22 +00:00
|
|
|
&signal_out[FRAMESAMPLES_HALF]);
|
2011-07-07 08:21:25 +00:00
|
|
|
|
|
|
|
|
return len;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* This decode function is called when the codec operates at 0-12 kHz
|
|
|
|
|
* bandwidth to decode the upperband, i.e. 8-12 kHz.
|
|
|
|
|
*
|
|
|
|
|
* At the encoder the upper-band is split into two band, 8-12 kHz & 12-16
|
|
|
|
|
* kHz, and only 8-12 kHz is encoded. At the decoder, 8-12 kHz band is
|
|
|
|
|
* reconstructed and 12-16 kHz replaced with zeros. Then two bands
|
|
|
|
|
* are combined, to reconstruct the upperband 8-16 kHz.
|
|
|
|
|
*/
|
2015-06-16 00:02:34 +02:00
|
|
|
int WebRtcIsac_DecodeUb12(const TransformTables* transform_tables,
|
|
|
|
|
float* signal_out, ISACUBDecStruct* ISACdecUB_obj,
|
|
|
|
|
int16_t isRCUPayload) {
|
2011-07-07 08:21:25 +00:00
|
|
|
int len, err;
|
|
|
|
|
|
|
|
|
|
float LP_dec_float[FRAMESAMPLES_HALF];
|
|
|
|
|
float HP_dec_float[FRAMESAMPLES_HALF];
|
|
|
|
|
|
|
|
|
|
double LPw[FRAMESAMPLES_HALF];
|
|
|
|
|
double HPw[FRAMESAMPLES_HALF];
|
|
|
|
|
|
This CL contains some refactoring. Spectrum coding is main place that is affected. Therefore, I have bit-exactness test, test_spectrum_
coding.c, to be sure about the changelist. You can go through the test to be sure the changes are tested. However, I don't intend to commi
t the test, as it would be a source of confusion and requires hack to iSAC to be able to run the test. It is basically a one-time test.
The part which not covered in this test is where we limit payload for super-wideband bit-stream. I'll add a test for that as well.
I kept format changes at minimum in all files except isac.c, which was in bad shape, and coding changes were minimum. I'm planning to uplo
ad following patches to this CL where I try to address formatting issues. But I don't intend to change variable names, for the moment.
The refactoring is not yet finished, so you would find part of the code which could be cleaned up, especially KLT transforms in entropy_co
ding.c
Review URL: https://webrtc-codereview.appspot.com/580004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2359 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-06-04 20:04:58 +00:00
|
|
|
double percepFilterParam[(UB_LPC_ORDER + 1)*SUBFRAMES];
|
2011-07-07 08:21:25 +00:00
|
|
|
|
|
|
|
|
double real_f[FRAMESAMPLES_HALF];
|
|
|
|
|
double imag_f[FRAMESAMPLES_HALF];
|
2013-04-09 00:28:06 +00:00
|
|
|
const int16_t kAveragePitchGain = 0; /* No pitch-gain for upper-band. */
|
2011-07-07 08:21:25 +00:00
|
|
|
len = 0;
|
|
|
|
|
|
This CL contains some refactoring. Spectrum coding is main place that is affected. Therefore, I have bit-exactness test, test_spectrum_
coding.c, to be sure about the changelist. You can go through the test to be sure the changes are tested. However, I don't intend to commi
t the test, as it would be a source of confusion and requires hack to iSAC to be able to run the test. It is basically a one-time test.
The part which not covered in this test is where we limit payload for super-wideband bit-stream. I'll add a test for that as well.
I kept format changes at minimum in all files except isac.c, which was in bad shape, and coding changes were minimum. I'm planning to uplo
ad following patches to this CL where I try to address formatting issues. But I don't intend to change variable names, for the moment.
The refactoring is not yet finished, so you would find part of the code which could be cleaned up, especially KLT transforms in entropy_co
ding.c
Review URL: https://webrtc-codereview.appspot.com/580004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2359 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-06-04 20:04:58 +00:00
|
|
|
/* Decode & dequantize filter coefficients. */
|
2011-07-07 08:21:25 +00:00
|
|
|
err = WebRtcIsac_DecodeInterpolLpcUb(&ISACdecUB_obj->bitstr_obj,
|
|
|
|
|
percepFilterParam, isac12kHz);
|
This CL contains some refactoring. Spectrum coding is main place that is affected. Therefore, I have bit-exactness test, test_spectrum_
coding.c, to be sure about the changelist. You can go through the test to be sure the changes are tested. However, I don't intend to commi
t the test, as it would be a source of confusion and requires hack to iSAC to be able to run the test. It is basically a one-time test.
The part which not covered in this test is where we limit payload for super-wideband bit-stream. I'll add a test for that as well.
I kept format changes at minimum in all files except isac.c, which was in bad shape, and coding changes were minimum. I'm planning to uplo
ad following patches to this CL where I try to address formatting issues. But I don't intend to change variable names, for the moment.
The refactoring is not yet finished, so you would find part of the code which could be cleaned up, especially KLT transforms in entropy_co
ding.c
Review URL: https://webrtc-codereview.appspot.com/580004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2359 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-06-04 20:04:58 +00:00
|
|
|
if (err < 0) {
|
2011-07-07 08:21:25 +00:00
|
|
|
return err;
|
|
|
|
|
}
|
|
|
|
|
|
This CL contains some refactoring. Spectrum coding is main place that is affected. Therefore, I have bit-exactness test, test_spectrum_
coding.c, to be sure about the changelist. You can go through the test to be sure the changes are tested. However, I don't intend to commi
t the test, as it would be a source of confusion and requires hack to iSAC to be able to run the test. It is basically a one-time test.
The part which not covered in this test is where we limit payload for super-wideband bit-stream. I'll add a test for that as well.
I kept format changes at minimum in all files except isac.c, which was in bad shape, and coding changes were minimum. I'm planning to uplo
ad following patches to this CL where I try to address formatting issues. But I don't intend to change variable names, for the moment.
The refactoring is not yet finished, so you would find part of the code which could be cleaned up, especially KLT transforms in entropy_co
ding.c
Review URL: https://webrtc-codereview.appspot.com/580004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2359 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-06-04 20:04:58 +00:00
|
|
|
/* Decode & de-quantize spectrum. */
|
|
|
|
|
len = WebRtcIsac_DecodeSpec(&ISACdecUB_obj->bitstr_obj, kAveragePitchGain,
|
|
|
|
|
kIsacUpperBand12, real_f, imag_f);
|
|
|
|
|
if (len < 0) {
|
2011-07-07 08:21:25 +00:00
|
|
|
return len;
|
|
|
|
|
}
|
|
|
|
|
|
This CL contains some refactoring. Spectrum coding is main place that is affected. Therefore, I have bit-exactness test, test_spectrum_
coding.c, to be sure about the changelist. You can go through the test to be sure the changes are tested. However, I don't intend to commi
t the test, as it would be a source of confusion and requires hack to iSAC to be able to run the test. It is basically a one-time test.
The part which not covered in this test is where we limit payload for super-wideband bit-stream. I'll add a test for that as well.
I kept format changes at minimum in all files except isac.c, which was in bad shape, and coding changes were minimum. I'm planning to uplo
ad following patches to this CL where I try to address formatting issues. But I don't intend to change variable names, for the moment.
The refactoring is not yet finished, so you would find part of the code which could be cleaned up, especially KLT transforms in entropy_co
ding.c
Review URL: https://webrtc-codereview.appspot.com/580004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2359 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-06-04 20:04:58 +00:00
|
|
|
if (isRCUPayload) {
|
2011-07-07 08:21:25 +00:00
|
|
|
int n;
|
This CL contains some refactoring. Spectrum coding is main place that is affected. Therefore, I have bit-exactness test, test_spectrum_
coding.c, to be sure about the changelist. You can go through the test to be sure the changes are tested. However, I don't intend to commi
t the test, as it would be a source of confusion and requires hack to iSAC to be able to run the test. It is basically a one-time test.
The part which not covered in this test is where we limit payload for super-wideband bit-stream. I'll add a test for that as well.
I kept format changes at minimum in all files except isac.c, which was in bad shape, and coding changes were minimum. I'm planning to uplo
ad following patches to this CL where I try to address formatting issues. But I don't intend to change variable names, for the moment.
The refactoring is not yet finished, so you would find part of the code which could be cleaned up, especially KLT transforms in entropy_co
ding.c
Review URL: https://webrtc-codereview.appspot.com/580004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2359 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-06-04 20:04:58 +00:00
|
|
|
for (n = 0; n < 240; n++) {
|
2011-07-07 08:21:25 +00:00
|
|
|
real_f[n] *= RCU_TRANSCODING_SCALE_UB_INVERSE;
|
|
|
|
|
imag_f[n] *= RCU_TRANSCODING_SCALE_UB_INVERSE;
|
|
|
|
|
}
|
|
|
|
|
}
|
This CL contains some refactoring. Spectrum coding is main place that is affected. Therefore, I have bit-exactness test, test_spectrum_
coding.c, to be sure about the changelist. You can go through the test to be sure the changes are tested. However, I don't intend to commi
t the test, as it would be a source of confusion and requires hack to iSAC to be able to run the test. It is basically a one-time test.
The part which not covered in this test is where we limit payload for super-wideband bit-stream. I'll add a test for that as well.
I kept format changes at minimum in all files except isac.c, which was in bad shape, and coding changes were minimum. I'm planning to uplo
ad following patches to this CL where I try to address formatting issues. But I don't intend to change variable names, for the moment.
The refactoring is not yet finished, so you would find part of the code which could be cleaned up, especially KLT transforms in entropy_co
ding.c
Review URL: https://webrtc-codereview.appspot.com/580004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2359 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-06-04 20:04:58 +00:00
|
|
|
/* Inverse transform. */
|
2015-06-16 00:02:34 +02:00
|
|
|
WebRtcIsac_Spec2time(transform_tables,
|
|
|
|
|
real_f, imag_f, LPw, HPw, &ISACdecUB_obj->fftstr_obj);
|
2011-07-07 08:21:25 +00:00
|
|
|
/* perceptual post-filtering (using normalized lattice filter) */
|
|
|
|
|
WebRtcIsac_NormLatticeFilterAr(UB_LPC_ORDER,
|
Hi Tina,
I have uploaded this patch for your review. I have done an extensive test to be sure that removing of tables does not create any problem.
The test file, is called test_lpc.c which requires a hack to standard iSAC. The test computes LPC coefficients, then encodes and decodes with old and new (size-reduced) tables. It compares the results is all steps. I have ran the test over large set of files, more then 51 hours of audio, and there was no error.
I tried to do no formatting so the review to be easier, but I know it can be a tricky CL. Hopefully, the test file helps you to be more confident on the CL.
Thanks,... Turaj
In this change list the LPC tables associated with mode 1 & 2 are remoded, and necessary cahnges are made to other files.
The only model allowed is model number 0. Therefore, this CL breaks compatibility with iSAC released prior to 2.4.3. To avoid changing the bit-stream, we still keep the model number in the bit-stream.
entropy_coding.c is cleaned up, especially encoding of LAR had KLT transform of LPC gains which are removed now.
Review URL: https://webrtc-codereview.appspot.com/548004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2186 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-05-07 20:36:22 +00:00
|
|
|
ISACdecUB_obj->maskfiltstr_obj.PostStateLoF,
|
|
|
|
|
(ISACdecUB_obj->maskfiltstr_obj).PostStateLoG,
|
|
|
|
|
LPw, percepFilterParam, LP_dec_float);
|
This CL contains some refactoring. Spectrum coding is main place that is affected. Therefore, I have bit-exactness test, test_spectrum_
coding.c, to be sure about the changelist. You can go through the test to be sure the changes are tested. However, I don't intend to commi
t the test, as it would be a source of confusion and requires hack to iSAC to be able to run the test. It is basically a one-time test.
The part which not covered in this test is where we limit payload for super-wideband bit-stream. I'll add a test for that as well.
I kept format changes at minimum in all files except isac.c, which was in bad shape, and coding changes were minimum. I'm planning to uplo
ad following patches to this CL where I try to address formatting issues. But I don't intend to change variable names, for the moment.
The refactoring is not yet finished, so you would find part of the code which could be cleaned up, especially KLT transforms in entropy_co
ding.c
Review URL: https://webrtc-codereview.appspot.com/580004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2359 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-06-04 20:04:58 +00:00
|
|
|
/* Zero for 12-16 kHz. */
|
2011-07-07 08:21:25 +00:00
|
|
|
memset(HP_dec_float, 0, sizeof(float) * (FRAMESAMPLES_HALF));
|
This CL contains some refactoring. Spectrum coding is main place that is affected. Therefore, I have bit-exactness test, test_spectrum_
coding.c, to be sure about the changelist. You can go through the test to be sure the changes are tested. However, I don't intend to commi
t the test, as it would be a source of confusion and requires hack to iSAC to be able to run the test. It is basically a one-time test.
The part which not covered in this test is where we limit payload for super-wideband bit-stream. I'll add a test for that as well.
I kept format changes at minimum in all files except isac.c, which was in bad shape, and coding changes were minimum. I'm planning to uplo
ad following patches to this CL where I try to address formatting issues. But I don't intend to change variable names, for the moment.
The refactoring is not yet finished, so you would find part of the code which could be cleaned up, especially KLT transforms in entropy_co
ding.c
Review URL: https://webrtc-codereview.appspot.com/580004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2359 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-06-04 20:04:58 +00:00
|
|
|
/* Recombine the 2 bands. */
|
2011-07-07 08:21:25 +00:00
|
|
|
WebRtcIsac_FilterAndCombineFloat(HP_dec_float, LP_dec_float, signal_out,
|
|
|
|
|
&ISACdecUB_obj->postfiltbankstr_obj);
|
|
|
|
|
return len;
|
|
|
|
|
}
|