mirror of
				https://github.com/brmlab/osmo-tetra.git
				synced 2025-10-30 23:14:00 +01:00 
			
		
		
		
	add matrix interleave for voice frames (untested)
This commit is contained in:
		
							parent
							
								
									a9885473d2
								
							
						
					
					
						commit
						e3032cd897
					
				
					 2 changed files with 28 additions and 0 deletions
				
			
		|  | @ -57,3 +57,26 @@ void block_deinterleave(uint32_t K, uint32_t a, const uint8_t *in, uint8_t *out) | ||||||
| 		out[i-1] = in[k-1]; | 		out[i-1] = in[k-1]; | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | /* EN 300 395-2 Section 5.5.3 Matrix interleaving (voice */ | ||||||
|  | void matrix_interleave(uint32_t lines, uint32_t columns, | ||||||
|  | 			const uint8_t *in, uint8_t *out) | ||||||
|  | { | ||||||
|  | 	int i, j; | ||||||
|  | 
 | ||||||
|  | 	for (i = 0; i < columns; i++) { | ||||||
|  | 		for (j = 0; j < lines; j++) | ||||||
|  | 			out[i*lines + columns] = in[j*columns + lines]; | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | void matrix_deinterleave(uint32_t lines, uint32_t columns, | ||||||
|  | 			 const uint8_t *in, uint8_t *out) | ||||||
|  | { | ||||||
|  | 	int i, j; | ||||||
|  | 
 | ||||||
|  | 	for (i = 0; i < columns; i++) { | ||||||
|  | 		for (j = 0; j < lines; j++) | ||||||
|  | 			out[j*columns + lines] = in[i*lines + columns]; | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  |  | ||||||
|  | @ -9,4 +9,9 @@ | ||||||
| void block_interleave(uint32_t K, uint32_t a, const uint8_t *in, uint8_t *out); | void block_interleave(uint32_t K, uint32_t a, const uint8_t *in, uint8_t *out); | ||||||
| void block_deinterleave(uint32_t K, uint32_t a, const uint8_t *in, uint8_t *out); | void block_deinterleave(uint32_t K, uint32_t a, const uint8_t *in, uint8_t *out); | ||||||
| 
 | 
 | ||||||
|  | void matrix_interleave(uint32_t lines, uint32_t columns, | ||||||
|  | 			const uint8_t *in, uint8_t *out); | ||||||
|  | void matrix_deinterleave(uint32_t lines, uint32_t columns, | ||||||
|  | 			 const uint8_t *in, uint8_t *out); | ||||||
|  | 
 | ||||||
| #endif /* TETRA_INTERLEAVE_H */ | #endif /* TETRA_INTERLEAVE_H */ | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Harald Welte
						Harald Welte