当前位置: 首页>>代码示例>>TypeScript>>正文


TypeScript encode_common.ts类代码示例

本文整理汇总了TypeScript中neuroglancer/sliceview/compressed_segmentation/encode_common.ts的典型用法代码示例。如果您正苦于以下问题:TypeScript ts类的具体用法?TypeScript ts怎么用?TypeScript ts使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了ts类的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。

示例1: encodeBlock

export function encodeBlock(
    rawData: Uint32Array, inputOffset: number, inputStrides: ArrayLike<number>,
    blockSize: ArrayLike<number>, actualSize: ArrayLike<number>, baseOffset: number,
    cache: Map<string, number>, output: Uint32ArrayBuilder): [number, number] {
  const ax = actualSize[0], ay = actualSize[1], az = actualSize[2];
  const bx = blockSize[0], by = blockSize[1], bz = blockSize[2];
  let sx = inputStrides[0], sy = inputStrides[1], sz = inputStrides[2];
  sz -= sy * ay;
  sy -= sx * ax;
  if (ax * ay * az === 0) {
    return [0, 0];
  }

  let numBlockElements = bx * by * bz + 31; // Add padding elements.
  if (tempEncodingBuffer === undefined || tempEncodingBuffer.length < numBlockElements) {
    tempEncodingBuffer = new Uint32Array(numBlockElements);
    tempValuesBuffer1 = new Uint32Array(numBlockElements * uint32sPerElement);
    tempValuesBuffer2 = new Uint32Array(numBlockElements * uint32sPerElement);
    tempIndexBuffer1 = new Uint32Array(numBlockElements);
    tempIndexBuffer2 = new Uint32Array(numBlockElements);
  }

  const encodingBuffer = tempEncodingBuffer.subarray(0, numBlockElements);
  encodingBuffer.fill(0);
  const valuesBuffer1 = tempValuesBuffer1;
  const valuesBuffer2 = tempValuesBuffer2;
  const indexBuffer1 = tempIndexBuffer1;
  const indexBuffer2 = tempIndexBuffer2;

  let noAdjacentDuplicateIndex = 0;
  {
    let prevLow = ((rawData[inputOffset] + 1) >>> 0);
    
    let prevHigh = 0;
    
    let curInputOff = inputOffset;
    let blockElementIndex = 0;
    let bsy = bx - ax;
    let bsz = bx * by - bx * ay;
    for (let z = 0; z < az; ++z, curInputOff += sz, blockElementIndex += bsz) {
      for (let y = 0; y < ay; ++y, curInputOff += sy, blockElementIndex += bsy) {
        for (let x = 0; x < ax; ++x, curInputOff += sx) {
          let valueLow = rawData[curInputOff];
          
          let valueHigh = rawData[curInputOff + 1];
          
          if (valueLow !== prevLow
              
              || valueHigh !== prevHigh
              
             ) {
            prevLow = valuesBuffer1[noAdjacentDuplicateIndex * 2] = valueLow;
            
            prevHigh = valuesBuffer1[noAdjacentDuplicateIndex * 2 + 1] = valueHigh;
            
            indexBuffer1[noAdjacentDuplicateIndex] = noAdjacentDuplicateIndex++;
          }
          encodingBuffer[blockElementIndex++] = noAdjacentDuplicateIndex;
        }
      }
    }
  }

  indexBuffer1.subarray(0, noAdjacentDuplicateIndex).sort((a, b) => {
    
    let aHigh = valuesBuffer1[2 * a + 1];
    let bHigh = valuesBuffer1[2 * b + 1];
    let aLow = valuesBuffer1[2 * a];
    let bLow = valuesBuffer1[2 * b];
    return (aHigh - bHigh) || (aLow - bLow);
    
  });

  let numUniqueValues = -1;
  {
    let prevLow = (valuesBuffer1[indexBuffer1[0] * uint32sPerElement] + 1) >>> 0;
    
    let prevHigh = 0;
    
    for (let i = 0; i < noAdjacentDuplicateIndex; ++i) {
      let index = indexBuffer1[i];
      let valueIndex = index * uint32sPerElement;
      let valueLow = valuesBuffer1[valueIndex];
      
      let valueHigh = valuesBuffer1[valueIndex + 1];
      
      if (valueLow !== prevLow
          
          || valueHigh !== prevHigh
          
         ) {
        ++numUniqueValues;
        let outputIndex2 = numUniqueValues * uint32sPerElement;
        prevLow = valuesBuffer2[outputIndex2] = valueLow;
        
        prevHigh = valuesBuffer2[outputIndex2 + 1] = valueHigh;
        
      }
      indexBuffer2[index + 1] = numUniqueValues;
    }
//.........这里部分代码省略.........
开发者ID:j6k4m8,项目名称:neuroglancer,代码行数:101,代码来源:encode_uint64.ts

示例2: encodeChannels

export function encodeChannels(
    output: Uint32ArrayBuilder, blockSize: ArrayLike<number>, rawData: Uint32Array,
    volumeSize: ArrayLike<number>, baseInputOffset: number = 0,
    inputStrides = getFortranOrderStrides(volumeSize, 2)) {
  return encodeChannelsCommon(
      output, blockSize, rawData, volumeSize, baseInputOffset, inputStrides, encodeBlock);
}
开发者ID:j6k4m8,项目名称:neuroglancer,代码行数:7,代码来源:encode_uint64.ts


注:本文中的neuroglancer/sliceview/compressed_segmentation/encode_common.ts类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。