亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? bch_encoder.c

?? 鎂光的ECC編碼方案和解碼方案
?? C
字號:
/*******************************************************************************
*
*    File Name:  bch_encoder.c
*     Revision:  1.0
*         Date:  August, 2006
*        Email:  nandsupport@micron.com
*      Company:  Micron Technology, Inc.
*
*  Description:  Micron NAND BCH Encoder
*
*   References: 
* 		  1. Error Control Coding, Lin & Costello, 2nd Ed., 2004
* 		  2. Error Control Codes, Blahut, 1983
**
*   Disclaimer   This software code and all associated documentation, comments or other 
*  of Warranty:  information (collectively "Software") is provided "AS IS" without 
*                warranty of any kind. MICRON TECHNOLOGY, INC. ("MTI") EXPRESSLY 
*                DISCLAIMS ALL WARRANTIES EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED 
*                TO, NONINFRINGEMENT OF THIRD PARTY RIGHTS, AND ANY IMPLIED WARRANTIES 
*                OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE. MTI DOES NOT 
*                WARRANT THAT THE SOFTWARE WILL MEET YOUR REQUIREMENTS, OR THAT THE 
*                OPERATION OF THE SOFTWARE WILL BE UNINTERRUPTED OR ERROR-FREE. 
*                FURTHERMORE, MTI DOES NOT MAKE ANY REPRESENTATIONS REGARDING THE USE OR 
*                THE RESULTS OF THE USE OF THE SOFTWARE IN TERMS OF ITS CORRECTNESS, 
*                ACCURACY, RELIABILITY, OR OTHERWISE. THE ENTIRE RISK ARISING OUT OF USE 
*                OR PERFORMANCE OF THE SOFTWARE REMAINS WITH YOU. IN NO EVENT SHALL MTI, 
*                ITS AFFILIATED COMPANIES OR THEIR SUPPLIERS BE LIABLE FOR ANY DIRECT, 
*                INDIRECT, CONSEQUENTIAL, INCIDENTAL, OR SPECIAL DAMAGES (INCLUDING, 
*                WITHOUT LIMITATION, DAMAGES FOR LOSS OF PROFITS, BUSINESS INTERRUPTION, 
*                OR LOSS OF INFORMATION) ARISING OUT OF YOUR USE OF OR INABILITY TO USE 
*                THE SOFTWARE, EVEN IF MTI HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH 
*                DAMAGES. Because some jurisdictions prohibit the exclusion or 
*                limitation of liability for consequential or incidental damages, the 
*                above limitation may not apply to you.
*
*                Copyright 2006 Micron Technology, Inc. All rights reserved.
*
* Rev  Author			Date		Changes
* ---  ---------------	----------	-------------------------------
* 1.0  ZS		08/07/2006	Initial release
* 
* 
/*******************************************************************************/


#include "BCH_Global.c"

int bb[rr_max] ;		// Parity checks

void parallel_encode_bch()
/* Parallel computation of n - k parity check bits.
 * Use lookahead matrix T_G_R.
 * The incoming streams are fed into registers from the right hand
 */
{	int i, j, iii, Temp, bb_temp[rr_max] ;
	int loop_count ;
	
	// Determine the number of loops required for parallelism.  
	loop_count = ceil(kk_shorten / (double)Parallel) ;	
	
	// Serial to parallel data conversion
	for (i = 0; i < Parallel; i++)
	{	for (j = 0; j < loop_count; j++)
		{	if (i + j * Parallel < kk_shorten)
				data_p[i][j] = data[i + j * Parallel];
			else
				data_p[i][j] = 0;
		}
	}
	
	// Initialize the parity bits.
	for (i = 0; i < rr; i++)
		bb[i] = 0;
	
	// Compute parity checks
	// S(t) = T_G_R [ S(t-1) + M(t) ]
	// Ref: Parallel CRC, Shieh, 2001
	for (iii = loop_count - 1; iii >= 0; iii--)
	{	for (i = 0; i < rr; i++)
			bb_temp[i] = bb[i] ;
		for (i = Parallel - 1; i >= 0; i--)
			bb_temp[rr - Parallel + i] = bb_temp[rr - Parallel + i] ^ data_p[i][iii];
		
		for (i = 0; i < rr; i++)
		{	Temp = 0;
			for (j = 0; j < rr; j++)
				Temp = Temp ^ (bb_temp[j] * T_G_R[i][j]);
			bb[i] = Temp;
		}
	}
	
}

int main(int argc,  char** argv)
{	int i ;
	int Help ;
	int Input_kk ;				// Input indicator
	int in_count, in_v, in_codeword;	// Input statistics
	char in_char;
	
	fprintf(stderr, "# Binary BCH encoder.  Use -h for details.\n\n");
	
	Verbose = 0;
	Input_kk = 0;
	Help = 0;
	mm = df_m;
	tt = df_t;
	Parallel = df_p;
	for (i = 1; i < argc;i++) 
	{	if (argv[i][0] == '-') 
		{	switch (argv[i][1]) 
			{	case 'm': mm = atoi(argv[++i]);
					if (mm > mm_max)
						Help = 1;
					break;
				case 't': tt = atoi(argv[++i]);
					break;
				case 'p': Parallel = atoi(argv[++i]);
					break;
				case 'k': kk_shorten = atoi(argv[++i]);
					if (kk_shorten % 4 != 0)
					{	fprintf(stderr, "### k must divide 4.\n\n");
						Help = 1;
					}
					Input_kk = 1;
					break;
				case 'v': Verbose = 1;
					break;
				default: Help = 1;
			}
		}
		else 
			Help = 1;
	}
	
	if (Help == 1)
	{	fprintf(stdout,"# Usage %s:  BCH encoder\n", argv[0]);
		fprintf(stdout,"    -h:  This help message\n");
		fprintf(stdout,"    -m <field>:  Galois field, GF, for code.  Code length is 2^<field>-1.\n");
		fprintf(stdout,"         The default value is %d for a code length %d.  If the parameter is\n", df_m, (int)pow(2,df_m) - 1);
		fprintf(stdout,"         set to 0, the program will estimate the value based upon the values\n");
		fprintf(stdout,"         chosen for k and t.\n");
		fprintf(stdout,"    -t <correct>:  Correction power of the code.  Default = %d\n",df_t);
		fprintf(stdout,"    -k <data bits>:  Number of data bits to be encoded. Must divide 4.\n");
		fprintf(stdout,"         The default value is the maximum supported by the code which\n");
		fprintf(stdout,"         depends upon the field (-m) and the correction (-t) chosen.\n");
		fprintf(stdout,"    -p <parallel>:  Parallelism in encoder.  Does not effect results but\n");
		fprintf(stdout,"         does change the algorithm used to generate them.  Default = %d\n", df_p);
		fprintf(stdout,"    -v   Verbose mode.  Output detailed information, such as encoded codeword,\n");
		fprintf(stdout,"         received codeword and decoded codeword.  Default disabled. \n");
		fprintf(stdout,"    <stdin>:  character string to encode in hex format.  All other \n");
		fprintf(stdout,"          characters are ignored.  Comments are enclosed in brackets:  { }.\n");
		fprintf(stdout,"          The hex values are converted to binary and taken <data bits> \n");
		fprintf(stdout,"          at a time.\n");
		fprintf(stdout,"    <stdout>:  resulting encoded character string in hex format.\n");
		fprintf(stdout,"    <stderr>:  information about the encode process as well as error messages.\n");
	}
	else
	{	nn = (int)pow(2, mm) - 1 ;
		nn_shorten = nn ;
		
		// generate the Galois Field GF(2**mm)
		generate_gf() ;
		
		// Compute the generator polynomial and lookahead matrix for BCH code
		gen_poly() ;
		
		// Check if code is shortened
		if (Input_kk == 1)
			nn_shorten = kk_shorten + rr ;
		else
		{	kk_shorten = nn_shorten - rr ;
			// Make the shortened length divide 4
			kk_shorten = kk_shorten - kk_shorten % 4 ;
			nn_shorten = kk_shorten + rr ;
		}
		
		fprintf(stdout, "{# (m = %d, n = %d, k = %d, t = %d) Binary BCH code.}\n", mm, nn_shorten, kk_shorten, tt) ;
		
		// Read in data stream
		in_count = 0;
		in_codeword = 0;
		
		in_char = getchar();
		while (in_char != EOF) 
		{	if (in_char=='{') 
			{	while ((in_char != EOF) && ((char)in_char != '}'))
					in_char = getchar();
			}
			in_v = hextoint(in_char);		
			if (in_v != -1)
			{	for (i = 3; i >= 0; i--) 
				{	if ((int)pow(2,i) & in_v)
						data[in_count] = 1 ;
					else
						data[in_count] = 0 ;
					
					in_count++;
				}
			}
			if (in_count == kk_shorten) 
			{	in_codeword++ ;
				
				parallel_encode_bch() ;
				
				print_hex_low(kk_shorten, data, stdout);
				fprintf(stdout, "    ");
				print_hex_low(rr, bb, stdout);
				fprintf(stdout, "\n") ;
				
				in_count = 0;
			}
			in_char = getchar();
		
			// For last codeword
			if (in_char == EOF && in_count > 0) 
			{	in_codeword++ ;
				// Pad zeros
				for (i = in_count; i < kk_shorten; i++)
					data[i] = 0;
				
				parallel_encode_bch() ;
				
				print_hex_low(kk_shorten, data, stdout);
				fprintf(stdout, "    ");
				print_hex_low(rr, bb, stdout);
				fprintf(stdout, "\n") ;
				in_count = 0;
			}
		}
		fprintf(stdout, "\n{### %d words encoded.}\n", in_codeword) ;
	}
	
	return(0);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
777午夜精品免费视频| 波多野结衣中文字幕一区| 亚洲免费观看高清完整版在线观看熊| 精品精品欲导航| 亚洲精品在线免费播放| 久久先锋影音av鲁色资源| 欧美大片一区二区| 精品999在线播放| 国产日韩影视精品| 成人免费在线视频观看| 中文字幕制服丝袜一区二区三区| 成人欧美一区二区三区白人| 又紧又大又爽精品一区二区| 亚洲影院理伦片| 免费高清在线一区| 精品一区二区免费看| 高清国产一区二区| 不卡av在线免费观看| 欧美亚洲国产bt| 777亚洲妇女| 国产日产欧美精品一区二区三区| 中文幕一区二区三区久久蜜桃| 国产精品高潮呻吟| 午夜欧美一区二区三区在线播放| 蜜臀a∨国产成人精品| 国产大陆精品国产| 一本久久精品一区二区| 91精品国产高清一区二区三区蜜臀 | 欧美三级中文字幕| 欧美tickle裸体挠脚心vk| 国产精品网站在线播放| 一区二区高清在线| 国产一区视频导航| 日本韩国精品在线| 久久免费美女视频| 午夜精品在线看| 成人一级黄色片| 91精品欧美久久久久久动漫| 国产日韩v精品一区二区| 亚洲一区在线播放| 国产成人av一区二区三区在线| 色综合色狠狠天天综合色| 欧美一区二区三区在线视频| 国产精品欧美一级免费| 美脚の诱脚舐め脚责91| 91视频www| 久久久国际精品| 视频一区中文字幕国产| caoporn国产一区二区| 91精品国产综合久久福利| 亚洲视频1区2区| 国产美女视频一区| 日韩欧美一区二区久久婷婷| 亚洲黄网站在线观看| 成人动漫一区二区三区| 久久综合色综合88| 日韩影院精彩在线| 欧美在线观看视频一区二区 | 国产精品一品视频| 日韩精品一区二区三区中文精品| 有码一区二区三区| 99久久99久久久精品齐齐| 久久久精品黄色| 韩国在线一区二区| 日韩欧美国产麻豆| 美美哒免费高清在线观看视频一区二区| 91福利小视频| 一区二区国产盗摄色噜噜| 99久久精品国产导航| 国产精品久久久久影院老司 | 91色|porny| 亚洲免费看黄网站| 91一区二区在线| 亚洲人成在线播放网站岛国| 北岛玲一区二区三区四区| 中文字幕精品在线不卡| 国产v综合v亚洲欧| 日本一区二区成人| 91在线视频观看| 亚洲精品一二三| 色美美综合视频| 亚洲综合在线电影| 欧美日韩第一区日日骚| 午夜不卡av免费| 日韩视频免费观看高清完整版在线观看| 午夜久久久久久| 欧美一二三区在线观看| 国内欧美视频一区二区| 久久精品亚洲麻豆av一区二区| 国产成人综合在线播放| 国产精品亲子伦对白| 色香色香欲天天天影视综合网| 亚洲免费av高清| 欧美高清视频一二三区| 卡一卡二国产精品| 国产日韩欧美制服另类| 99v久久综合狠狠综合久久| 亚洲综合在线免费观看| 欧美电影影音先锋| 国产裸体歌舞团一区二区| 最好看的中文字幕久久| 7777精品伊人久久久大香线蕉的| 九九九精品视频| 亚洲欧美日本在线| 91精品国产91久久久久久一区二区 | 91国产免费看| 免费视频最近日韩| 中文字幕字幕中文在线中不卡视频| 日本电影欧美片| 精品一区二区三区不卡 | 另类人妖一区二区av| 中文字幕欧美国产| 欧美精品在线一区二区| 国产成人av一区二区| 午夜精品福利久久久| 国产精品美女久久久久高潮| 在线播放欧美女士性生活| 成人深夜福利app| 免费观看在线综合| 亚洲乱码中文字幕| 久久精品视频在线看| 欧美亚洲动漫另类| 成人国产精品免费观看| 日韩av一区二区三区| 亚洲精品网站在线观看| 久久久噜噜噜久噜久久综合| 欧美久久久久久久久久| 91啦中文在线观看| 高清beeg欧美| 久久99日本精品| 亚洲123区在线观看| 综合久久给合久久狠狠狠97色| 日韩欧美国产麻豆| 91麻豆精品国产91| 欧美天堂亚洲电影院在线播放| 成人精品一区二区三区四区 | 国产女人18水真多18精品一级做| 欧美这里有精品| 色综合婷婷久久| 欧美大片日本大片免费观看| 欧美亚洲免费在线一区| 色哟哟一区二区三区| 亚洲国产精品一区二区www| 日韩和欧美一区二区| 欧美精品一区二区久久久| 欧美精品1区2区3区| 在线日韩一区二区| 91麻豆国产自产在线观看| www.亚洲色图.com| 波多野结衣中文字幕一区| 国产白丝网站精品污在线入口| 激情av综合网| 国产永久精品大片wwwapp| 另类中文字幕网| 激情综合色播五月| 国产福利一区二区| 国产91精品欧美| 成人高清视频免费观看| 成人午夜免费av| 色综合久久六月婷婷中文字幕| 99国产欧美另类久久久精品| 成人国产精品视频| 在线中文字幕不卡| 欧美日韩日本视频| 91精品国产色综合久久不卡电影| 91精品久久久久久久久99蜜臂| 在线播放/欧美激情| 欧美大胆人体bbbb| 国产亚洲精品精华液| 亚洲欧洲精品一区二区三区 | 亚洲国产乱码最新视频| 日韩和欧美一区二区三区| 精品一区中文字幕| 成人激情动漫在线观看| 91国产成人在线| 日韩欧美美女一区二区三区| 国产欧美一区二区精品忘忧草 | 国产精品色哟哟| 亚洲一区在线免费观看| 日本亚洲欧美天堂免费| 韩国女主播成人在线| 91在线一区二区三区| 日韩无一区二区| 国产精品伦一区二区三级视频| 一区二区三区加勒比av| 蜜桃91丨九色丨蝌蚪91桃色| 国产成人精品免费网站| 日本韩国欧美一区二区三区| 欧美成人精品福利| 成人欧美一区二区三区| 蜜臀久久99精品久久久久久9| 粉嫩一区二区三区在线看| 欧美日韩另类一区| 国产蜜臀97一区二区三区 | 久久久久国产精品麻豆ai换脸| 一区二区国产盗摄色噜噜| 国产精品综合二区| 欧美日韩成人一区二区| 国产精品电影院| 久久国产精品99久久人人澡|