mirror of
				https://github.com/brmlab/osmo-tetra.git
				synced 2025-10-31 23:43:58 +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]; | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| /* 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_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 */ | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Harald Welte
						Harald Welte