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

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

?? pktdecoder.java

?? jpeg2000算法實現
?? JAVA
?? 第 1 頁 / 共 4 頁
字號:
                            intArraySet(lblock[c][r][s][i],                                        INIT_LBLOCK);                    }                }                // Collect code-blocks and precinct coordinates                buildCBlkPrecCoord(c,r);            } // End loop on resolution levels        } // End loop on components                return cbI;    }        /**      * Get the number of precinct in given component and resolution.     *     * @param c Component index     *     * @param r Resolution index     * */    public int getNumPrecinct(int c,int r){	return maxNumPrecincts[c][r].x*maxNumPrecincts[c][r].y;    }        /**      * Read specified packet head and found length of each code-block's piece     * of codewords as well as number of skipped most significant bit-planes.     *     * @param l layer index     *     * @param r Resolution level index     *     * @param c Component index     *     * @param p Precinct index     *     * @param cbI CBlkInfo array of relevant component and resolution     * level.     *     * @param nb The number of bytes to read in each tile before reaching     * output rate (used by truncation mode)     *     * @return True if output rate is reached      * */    public boolean readPktHead(int l,int r,int c,int p,CBlkInfo[][][] cbI,                               int[] nb) throws IOException{        CBlkInfo ccb;        Coord curCB,firstCB;        int nSeg;                   // number of segment to read        int cbLen;                  // Length of cblk's code-words        int ltp;                    // last truncation point index        int passtype;               // coding pass type        TagTreeDecoder tdIncl,tdBD;        int tmp,tmp2,totnewtp,lblockCur,tpidx;        int sumtotnewtp = 0;        CBlkCoordInfo ccbCoord;	int startPktHead = ehs.getPos();	int tIdx = src.getTileIdx();        PktHeaderBitReader bin;        // If packed packet headers was used, use separate stream for reading        // of packet headers	if(pph){            bin = new PktHeaderBitReader(pphbais);        }        else{            bin = this.bin;        }        boolean precFound = false;        for(int s=subRange[c][r][0];s<=subRange[c][r][1];s++){            if(p<precCoord[c][r][s].length){                precFound = true;            }        }        if(!precFound) {            return false;        }        // Synchronize for bit reading        bin.sync();                // If packet is empty there is no info in it (i.e. no code-blocks)        int firstBit = bin.readBit();        if(firstBit == 0){            // No code-block is included            cblks = new Vector[subRange[c][r][1]+1];            for(int s=subRange[c][r][0];s<=subRange[c][r][1];s++){                cblks[s] = new Vector();            }	    pktIdx++;	    	    // If truncation mode, checks if output rate is reached	    if(isTruncMode){		tmp = ehs.getPos()-startPktHead;		if(tmp>nb[tIdx]){		    nb[tIdx] = 0;		    return true;		}		else		    nb[tIdx] -= tmp;	    }            // Read EPH marker if needed            if(ephUsed) {                readEPHMarker(bin);            }	    return false;        }        // Packet is not empty => decode info        // Loop on each subband in this resolution level        cblks = new Vector[subRange[c][r][1]+1];        for(int s=subRange[c][r][0];s<=subRange[c][r][1];s++){	    cblks[s] = getCBlkInPrecinct(c,r,s,p);	              // No code-block in this precinct            if(cblks[s].size()==1){                // Go to next subband                cblks[s].removeAllElements();                continue;            }            curCB = (Coord)cblks[s].elementAt(0);            tdIncl = tdInclA[c][r][s][p];            tdBD = tdBDA[c][r][s][p];            if(tdIncl==null){                tdIncl = tdInclA[c][r][s][p] =                    new TagTreeDecoder(curCB.y,curCB.x);            }            if(tdBD==null){                tdBD = tdBDA[c][r][s][p] =                    new TagTreeDecoder(curCB.y,curCB.x);            }            firstCB = (Coord)cblks[s].elementAt(1);            for(int numCB=1; numCB<cblks[s].size();){                curCB = (Coord)cblks[s].elementAt(numCB);                ccb = cbI[s][curCB.x][curCB.y];		try{		    // If code-block not included in previous layer(s)		    if(ccb==null || ccb.ctp==0){ 			if(ccb==null){			    ccbCoord = cbCoord[c][r][s][curCB.x][curCB.y];			    ccb = cbI[s][curCB.x][curCB.y] = 				new CBlkInfo(ccbCoord.ulx,ccbCoord.uly,					     ccbCoord.w,ccbCoord.h,nl);			}			ccb.pktIdx[l] = pktIdx;						// Read inclusion using tag-tree			tmp = tdIncl.update(curCB.x-firstCB.x,					    curCB.y-firstCB.y,l+1,bin);			if(tmp>l){ // Not included			    cblks[s].removeElementAt(numCB);			    continue;			}			// Read bitdepth using tag-tree			tmp = 1;// initialization			for(tmp2=1; tmp>=tmp2; tmp2++){			    tmp = tdBD.update(curCB.x-firstCB.x,					      curCB.y-firstCB.y,tmp2,bin);			}			ccb.msbSkipped = tmp2-2;			// New code-block => at least one truncation point			totnewtp = 1;			ccb.addNTP(l,0);		    }		    else{// If code-block already included in one of			// the previous layers.						ccb.pktIdx[l] = pktIdx;						// If not inclused			if(bin.readBit()!=1){			    cblks[s].removeElementAt(numCB);			    continue;			}						// At least 1 more truncation point than prev. packet			totnewtp = 1;		    }		    		    // Read new truncation points		    if(bin.readBit()==1){// if bit is 1			totnewtp++;						// if next bit is 0 do nothing			if(bin.readBit()==1){//if is 1			    totnewtp++;			    			    tmp = bin.readBits(2);			    totnewtp += tmp;			    			    // If next 2 bits are not 11 do nothing			    if(tmp==0x3){ //if 11				tmp = bin.readBits(5);				totnewtp += tmp;								// If next 5 bits are not 11111 do nothing				if(tmp==0x1F){//if 11111				    totnewtp +=					bin.readBits(7);				}			    }			}		    }		    ccb.addNTP(l,totnewtp);                    sumtotnewtp += totnewtp;		    // Code-block length		    // -- Compute the number of bit to read to obtain		    // code-block length.                      // numBits = betaLamda + log2(totnewtp);		    		    // The length is signalled for each segment in addition to		    // the final one. The total length is the sum of all		    // segment lengths.		    		    // If regular termination in use, then there is one		    // segment per truncation point present. Otherwise, if		    // selective arithmetic bypass coding mode is present,                    // then there is one termination per bypass/MQ 		    // and MQ/bypass transition. Otherwise the only termination		    // is at the end of the code-block.		    int options = 			((Integer)decSpec.ecopts.getTileCompVal(tIdx,c)).			intValue();		    		    if( (options & OPT_REG_TERM) != 0) {			// Regular termination in use, one segment per new			// pass (i.e. truncation point)			nSeg = totnewtp;		    }		    else if( (options & OPT_BYPASS) != 0) {			// Selective arithmetic coding bypass coding mode in			// use, but no regular termination 1 segment up to the			// end of the last pass of the 4th most significant			// bit-plane, and, in each following bit-plane, one			// segment upto the end of the 2nd pass and one upto			// the end of the 3rd pass.						if(ccb.ctp <= FIRST_BYPASS_PASS_IDX) {			    nSeg = 1;			}			else {			    nSeg = 1; // One at least for last pass			    // And one for each other terminated pass			    for(tpidx = ccb.ctp-totnewtp;				tpidx < ccb.ctp-1; tpidx++) {				if(tpidx >= FIRST_BYPASS_PASS_IDX-1) {				    passtype =					(tpidx+NUM_EMPTY_PASSES_IN_MS_BP)%					NUM_PASSES;				    if (passtype == 1 || passtype == 2) {					// bypass coding just before MQ pass					// or MQ pass just before bypass					// coding => terminated					nSeg++;				    }				}			    }			}		    }		    else {			// Nothing special in use, just one segment			nSeg = 1;		    }		                        // Reads lblock increment (common to all segments)                    while(bin.readBit()!=0){  			lblock[c][r][s][curCB.x][curCB.y]++;                    }		    if(nSeg == 1){ // Only one segment in packet		      cbLen = bin.readBits(lblock[c][r][s]                                           [curCB.x][curCB.y]+					   MathUtil.log2(totnewtp));		    }		    else {			// We must read one length per segment			ccb.segLen[l] = new int[nSeg];			cbLen = 0;			int j;			if((options & OPT_REG_TERM) != 0){			    // Regular termination: each pass is terminated			    for(tpidx=ccb.ctp-totnewtp, j=0;				tpidx<ccb.ctp;tpidx++,j++){			      lblockCur = 				lblock[c][r][s][curCB.x][curCB.y];                                                            tmp = bin.readBits(lblockCur);                              ccb.segLen[l][j] = tmp;                              cbLen += tmp;			    }			}			else {			    // Bypass coding: only some passes are terminated			    ltp = ccb.ctp-totnewtp-1;			    for(tpidx = ccb.ctp-totnewtp, j=0;				tpidx<ccb.ctp-1;tpidx++){				if(tpidx >= FIRST_BYPASS_PASS_IDX-1) {				    passtype = 					(tpidx+NUM_EMPTY_PASSES_IN_MS_BP)%					NUM_PASSES;				    if (passtype == 0) continue;				    lblockCur = 				      lblock[c][r][s][curCB.x][curCB.y];				    tmp =					bin.readBits(lblockCur+						     MathUtil.log2(tpidx-ltp));				    ccb.segLen[l][j] = tmp;				    cbLen += tmp;				    ltp = tpidx;				    j++;				}			    }			    // Last pass has always the length sent			    lblockCur = 			      lblock[c][r][s][curCB.x][curCB.y];			    tmp = bin.readBits(lblockCur+					       MathUtil.log2(tpidx-ltp));			    cbLen += tmp;			    ccb.segLen[l][j] = tmp;			}		    }		    ccb.len[l] = cbLen;		    		    // If truncation mode, checks if output rate is reached		    if(isTruncMode){			tmp = ehs.getPos()-startPktHead;			if(tmp>nb[tIdx]){			    nb[tIdx] = 0;			    // Remove found information in this code-block			    if(l==0)				cbI[s][curCB.x][curCB.y] = null;			    else{				ccb.off[l]=ccb.len[l]=0;				ccb.ctp -= ccb.ntp[l];				ccb.ntp[l] = 0;				ccb.pktIdx[l] = -1;			    }			    return true;			}		    }		    		    numCB++;		}		catch(EOFException e){		    // Remove found information in this code-block		    if(l==0)			cbI[s][curCB.x][curCB.y] = null;		    else{			ccb.off[l]=ccb.len[l]=0;			ccb.ctp -= ccb.ntp[l];			ccb.ntp[l] = 0;			ccb.pktIdx[l] = -1;		    }		    throw new EOFException();		}            } // End loop on code-blocks            cblks[s].removeElementAt(0);        } // End loop on subbands        // Read EPH marker if needed        if(ephUsed)            readEPHMarker(bin);        pktIdx++;	// If truncation mode, checks if output rate is reached	if(isTruncMode){	    tmp = ehs.getPos()-startPktHead;	    if(tmp>nb[tIdx]){		nb[tIdx] = 0;		return true;	    }	    else		nb[tIdx] -= tmp;	}	return false;    }    /**      * Reads specificied packet body in order to find offset of each     * code-block's piece of codeword. This use the list of found code-blocks     * in previous red packet head.     *     * @param l layer index     *     * @param r Resolution level index     *     * @param c Component index     *

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
懂色av一区二区夜夜嗨| 国产精品不卡在线观看| 日韩va亚洲va欧美va久久| 欧美婷婷六月丁香综合色| 一个色妞综合视频在线观看| 91福利社在线观看| 香蕉成人伊视频在线观看| 国产精品久久久久影院色老大 | 93久久精品日日躁夜夜躁欧美| 亚洲图片激情小说| 91久久国产综合久久| 亚洲v日本v欧美v久久精品| 69成人精品免费视频| 九一九一国产精品| 国产欧美日韩在线视频| 91亚洲大成网污www| 五月天国产精品| 久久亚洲欧美国产精品乐播| 成人av网站在线| 亚洲一区二区三区自拍| 日韩精品在线一区| 成人亚洲精品久久久久软件| 亚洲一区在线观看网站| 91精品国产高清一区二区三区| 国产精品综合一区二区| 亚洲久草在线视频| 日韩三级免费观看| 成人精品在线视频观看| 亚洲午夜免费电影| 精品国产不卡一区二区三区| 99re这里只有精品6| 日韩电影免费在线| 中文字幕 久热精品 视频在线| 在线视频亚洲一区| 韩国av一区二区三区| 国产精品嫩草99a| 欧美最新大片在线看 | 久久机这里只有精品| 国产精品久久久久婷婷二区次| 色婷婷av一区二区三区gif | 亚瑟在线精品视频| 精品国产乱码久久| 色噜噜狠狠一区二区三区果冻| 美女一区二区久久| ...xxx性欧美| 精品乱码亚洲一区二区不卡| 一本色道久久加勒比精品| 久久国产夜色精品鲁鲁99| 亚洲欧美另类综合偷拍| 日韩一区二区视频在线观看| 97精品国产97久久久久久久久久久久| 日韩不卡一二三区| 亚洲欧美激情小说另类| 2023国产精品| 欧美日韩国产一级片| 国产超碰在线一区| 琪琪久久久久日韩精品| 亚洲欧美国产毛片在线| wwww国产精品欧美| 91精品国产黑色紧身裤美女| 色综合久久88色综合天天| 国产一区二区三区综合| 亚洲va欧美va天堂v国产综合| 国产精品久线观看视频| 日韩精品一区二区三区视频在线观看| 色猫猫国产区一区二在线视频| 国产精品12区| 蜜臀av性久久久久蜜臀aⅴ| 一卡二卡三卡日韩欧美| 国产精品欧美久久久久一区二区| 日韩欧美国产电影| 欧美日韩免费观看一区三区| av日韩在线网站| 精品亚洲国内自在自线福利| 香港成人在线视频| 一区二区三区影院| 国产精品久久福利| 国产视频911| 精品久久久三级丝袜| 亚洲欧美偷拍三级| 在线观看一区日韩| av中文字幕在线不卡| 国产精品羞羞答答xxdd| 免费看欧美女人艹b| 亚洲福利一区二区| 亚洲精品视频观看| ...xxx性欧美| 亚洲欧洲美洲综合色网| 国产蜜臀av在线一区二区三区| 精品盗摄一区二区三区| 日韩一区二区三区观看| 欧美日韩高清不卡| 欧美日韩在线播放三区四区| 色综合 综合色| 91丨九色丨蝌蚪富婆spa| 不卡的av在线播放| 成人美女视频在线看| 成人午夜视频在线| 丰满放荡岳乱妇91ww| 国产黄色精品视频| 国产精品一区二区在线观看网站 | 91福利社在线观看| 色哟哟一区二区三区| 成人av电影免费在线播放| 国产iv一区二区三区| 高清视频一区二区| 成人午夜又粗又硬又大| 99久久久久久| 色综合久久99| 欧美在线免费视屏| 欧美日韩国产一级| 日韩一级免费观看| 精品国产一区久久| 久久色成人在线| 久久精品亚洲国产奇米99| 国产视频在线观看一区二区三区| 国产日产欧美一区二区视频| 国产亚洲婷婷免费| 国产精品污www在线观看| 国产成人免费在线| 一区二区三区精品| 亚洲mv在线观看| 丝袜美腿亚洲色图| 六月丁香婷婷色狠狠久久| 国产一区二区中文字幕| 国产91综合一区在线观看| 成人91在线观看| 91欧美激情一区二区三区成人| 91久久人澡人人添人人爽欧美| 欧美视频在线不卡| 宅男在线国产精品| 亚洲精品在线观| 国产精品天天摸av网| 亚洲六月丁香色婷婷综合久久 | 亚洲欧美在线视频| 亚洲在线免费播放| 日韩精品五月天| 久久精工是国产品牌吗| 国产成人啪免费观看软件| 91在线视频播放| 欧美另类z0zxhd电影| 精品三级在线观看| 国产精品免费av| 一区二区三区小说| 亚洲1区2区3区视频| 国产美女娇喘av呻吟久久| av电影在线不卡| 欧美军同video69gay| 精品国产人成亚洲区| 国产精品福利影院| 亚洲亚洲人成综合网络| 久久www免费人成看片高清| 成人毛片视频在线观看| 欧美日韩一二三| 欧美精品一区二区三区很污很色的 | 婷婷激情综合网| 色综合激情久久| 色婷婷久久综合| 欧美一区二区黄| 国产精品乱码妇女bbbb| 亚洲国产精品久久久男人的天堂| 老司机精品视频导航| 99久久婷婷国产精品综合| 欧美伦理电影网| 欧美激情综合五月色丁香| 亚洲一二三区视频在线观看| 国产露脸91国语对白| 99精品1区2区| 日韩欧美中文字幕公布| 日韩一区有码在线| 美女视频免费一区| 91偷拍与自偷拍精品| 欧美电影免费提供在线观看| 亚洲欧洲日韩一区二区三区| 日韩高清在线电影| www.在线欧美| 精品免费日韩av| 一区二区免费看| 国产一区二区三区黄视频| 欧美中文字幕一区| 欧美激情一区在线| 青娱乐精品视频在线| 99国产精品久久久久久久久久| 日韩欧美激情四射| 亚洲激情图片qvod| 国产精品99久久久久| 678五月天丁香亚洲综合网| 中文字幕一区二区三区蜜月| 久久99热国产| 欧美日韩三级一区| 国产精品乱人伦中文| 韩国女主播一区| 在线电影院国产精品| 亚洲视频每日更新| 国产精品一区在线| 日韩欧美国产午夜精品| 五月开心婷婷久久| 色综合久久综合中文综合网| 精品日韩在线一区| 日韩中文字幕不卡|